<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~ Copyright 2019-2020 Dennis Fischer <dennis.fischer@tngtech.com>
  ~
  ~ SPDX-License-Identifier: Apache-2.0
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.tngtech.atlassian</groupId>
    <artifactId>base-pom</artifactId>
    <version>5.2.3</version>
    <packaging>pom</packaging>
    <licenses>
        <license>
            <name>Apache-2.0</name>
        </license>
    </licenses>

    <url>https://bitbucket.org/tngtech-act/poms</url>
    <organization>
        <name>TNG Technology Consulting</name>
        <url>https://www.tngtech.com/atlassian</url>
    </organization>

    <name>TNG's Atlassian Base POM</name>
    <description>POM contains TNG's Atlassian specific configuration like Maven repositories and standard maven plugins.
    </description>

    <scm>
        <developerConnection>${scm.developerConnection}</developerConnection>
        <connection>${scm.developerConnection}</connection>
        <url>${scm.url}</url>
        <tag>HEAD</tag>
    </scm>

    <developers>
        <developer>
            <id>dennisfischer</id>
            <name>Dennis Fischer</name>
            <email>dennis.fischer@tngtech.com</email>
        </developer>
    </developers>

    <modules>
        <module>jira</module>
        <module>confluence</module>
        <module>refapp</module>
    </modules>

    <properties>
        <!-- Java properties -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>

        <!-- Product properties -->
        <jvm.args>-Xms1g -Xmx2g</jvm.args>

        <!-- Plugins -->
        <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
        <maven-surefire-report-plugin.version>${maven-surefire-plugin.version}</maven-surefire-report-plugin.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
        <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
        <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>

        <!-- configuration for PMD -->
        <maven-pmd-plugin.version>3.15.0</maven-pmd-plugin.version>
        <pmd.version>6.42.0</pmd.version>

        <maven-project-info-reports-plugin.version>3.1.2</maven-project-info-reports-plugin.version>
        <l10n-maven-plugin.version>1.0-alpha-2</l10n-maven-plugin.version>
        <maven-dependency-plugin.version>3.2.0</maven-dependency-plugin.version>
        <maven-site-plugin.version>3.9.1</maven-site-plugin.version>
        <spotbugs-maven-plugin.version>4.4.2.2</spotbugs-maven-plugin.version>
        <spotbugs.version>4.2.2</spotbugs.version>
        <maven-failsafe-plugin.version>3.0.0-M5</maven-failsafe-plugin.version>
        <maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version>
        <maven-jxr-plugin.version>3.1.1</maven-jxr-plugin.version>
        <frontend-maven-plugin.version>1.11.3</frontend-maven-plugin.version>
        <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
        <gitflow-maven-plugin.version>1.16.0</gitflow-maven-plugin.version>
        <nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
        <maven-source-plugin.version>3.2.1</maven-source-plugin.version>
        <maven-gpg-plugin.version>3.0.1</maven-gpg-plugin.version>
        <docker-maven-plugin.version>0.42.0</docker-maven-plugin.version>
        <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
        <maven-install-plugin.version>3.0.0-M1</maven-install-plugin.version>
        <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
        <sql-maven-plugin.version>1.5</sql-maven-plugin.version>

        <!-- Maven Enforcer -->
        <maven.version>3.5.4</maven.version>

        <!-- Atlassian Build properties -->
        <allow.google.tracking>false</allow.google.tracking>
        <skip.amps.pom.check>true</skip.amps.pom.check>
        <skipAllPrompts>true</skipAllPrompts>

        <!-- Atlassian properties -->
        <atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key>
        <amps.version>8.2.3</amps.version>
        <javax.inject.version>1</javax.inject.version>
        <lombok.version>1.18.22</lombok.version>
        <atlassian-plugins-osgi-javaconfig.version>0.5.0</atlassian-plugins-osgi-javaconfig.version>
        <upm.version>4.3.5</upm.version>

        <!-- JavaScript environment -->
        <node.version>v16.15.0</node.version>
        <yarn.version>v1.22.10</yarn.version>

        <!-- Build mode for JS -->
        <build.mode>production</build.mode>

        <!-- SCM deploy settings -->
        <scm.developerConnection>NOT SET</scm.developerConnection>
        <scm.url>NOT SET</scm.url>

        <!-- Versions for Docker database images -->
        <postgres.docker.image.version>9.6</postgres.docker.image.version>
        <mysql.docker.image.version>5.7</mysql.docker.image.version>
        <sqlserver.docker.image.version>2019-latest</sqlserver.docker.image.version>
        <oracle.docker.image.version>19.3.0.0</oracle.docker.image.version>

        <!-- Swagger / OpenAPI -->
        <openapi-generator-maven-plugin.version>5.3.0</openapi-generator-maven-plugin.version>
        <swagger-annotations.version>2.1.11</swagger-annotations.version>
        <swagger-maven-plugin.version>2.1.11</swagger-maven-plugin.version>

        <!-- Pattern for AO tests -->
        <includeAOsPattern>%regex[com[/\\].*]</includeAOsPattern>

        <!-- Configuration for Dependency Checker -->
        <owasp.denendency-checker.version>7.4.4</owasp.denendency-checker.version>

        <!-- Configuration for License Checker -->
        <license-maven-plugin.version>2.0.0</license-maven-plugin.version>
        <license-maven-plugin.phase>generate-resources</license-maven-plugin.phase>

        <suppressionFile>file:///${project.build.directory}${file.separator}dependency-suppression-list.xml</suppressionFile>
        <includedLicenses>file:///${project.build.directory}${file.separator}server-backend-license-allowlist.txt</includedLicenses>
        <includedLicenses.internal>file:///${project.build.directory}${file.separator}server-backend-license-allowlist-internal.txt</includedLicenses.internal>
        <overrideUrl>file:///${project.build.directory}${file.separator}override-THIRD-PARTY.properties</overrideUrl>
        <licenseMerge>file:///${project.build.directory}${file.separator}server-backend-license-merge.txt</licenseMerge>

        <!-- Additional CI variables -->
        <ci.tests.skipAfterFailureCount>10</ci.tests.skipAfterFailureCount>
        <ci.tests.rerunFailingTestsCount>2</ci.tests.rerunFailingTestsCount>

        <!-- Version overrides for common transitive test dependencies that have vulnerabilities -->
        <jetty.version>9.4.51.v20230217</jetty.version>
        <htmlunit.version>2.70.0</htmlunit.version>
    </properties>

    <!-- Override common transitive test dependencies that have vulnerabilities. -->
    <dependencies>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20230227</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlets</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-io</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-http</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-client</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-security</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util-ajax</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-continuation</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-client</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.websocket</groupId>
            <artifactId>websocket-common</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-xml</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-alpn-server</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-alpn-java-server</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-alpn-openjdk8-server</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-proxy</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-alpn-java-client</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-alpn-client</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-alpn-openjdk8-client</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.http2</groupId>
            <artifactId>http2-common</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.http2</groupId>
            <artifactId>http2-server</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.12.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>neko-htmlunit</artifactId>
            <version>${htmlunit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>htmlunit</artifactId>
            <version>${htmlunit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.htmlunit</groupId>
            <artifactId>htmlunit-core-js</artifactId>
            <version>${htmlunit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <profiles>
        <!-- Profile for JS watch mode building -->
        <profile>
            <id>watch-mode</id>
            <properties>
                <build.mode>watch</build.mode>
            </properties>
        </profile>
        <profile>
            <id>sonatype-release</id>
            <properties>
                <scm.developerConnection>scm:git:git@bitbucket.org:tngtech-act/poms.git
                </scm.developerConnection>
                <scm.url>https://bitbucket.org/tngtech-act/poms</scm.url>
            </properties>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
            </distributionManagement>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>ao-tests</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.eirslett</groupId>
                        <artifactId>frontend-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>step-1-set-up-environment</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>step-2-install-frontend-dependencies</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>step-3-compile-the-ui</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>step-4-lint</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>step-5-execute-tests</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>io.swagger.core.v3</groupId>
                        <artifactId>swagger-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>swagger-resolve</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>postgres</id>
            <properties>
                <docker.image>postgres:${postgres.docker.image.version}</docker.image>
                <docker.wait.log>PostgreSQL init process complete</docker.wait.log>
                <db.url>jdbc:postgresql://localhost:${db.port}/${db.name}</db.url>
                <db.schema>public</db.schema>
                <db.name>ao_test</db.name>
                <db.username>ao_user</db.username>
                <db.password>ao_password</db.password>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.fabric8</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <version>${docker-maven-plugin.version}</version>
                        <configuration>
                            <skip>false</skip>
                            <images>
                                <image>
                                    <name>${docker.image}</name>
                                    <run>
                                        <ports>
                                            <port>db.port:5432</port>
                                        </ports>
                                        <env>
                                            <POSTGRES_DB>${db.name}</POSTGRES_DB>
                                            <POSTGRES_USER>${db.username}</POSTGRES_USER>
                                            <POSTGRES_PASSWORD>${db.password}</POSTGRES_PASSWORD>
                                        </env>
                                        <wait>
                                            <log>${docker.wait.log}</log>
                                            <time>120000</time>
                                        </wait>
                                        <log>
                                            <prefix>postgres</prefix>
                                        </log>
                                    </run>
                                </image>
                            </images>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>mysql</id>
            <properties>
                <docker.image>mysql:${mysql.docker.image.version}</docker.image>
                <docker.wait.log>starting as process 1</docker.wait.log>
                <db.url>jdbc:mysql://localhost:${db.port}/${db.name}?autoReconnect=true</db.url>
                <db.schema>ao_schema</db.schema>
                <db.name>ao_test</db.name>
                <db.username>ao_user</db.username>
                <db.password>ao_password</db.password>
                <jdbc.version>8.0.21</jdbc.version>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>${jdbc.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.fabric8</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <configuration>
                            <skip>false</skip>
                            <images>
                                <image>
                                    <name>${docker.image}</name>
                                    <run>
                                        <ports>
                                            <port>db.port:3306</port>
                                        </ports>
                                        <env>
                                            <MYSQL_DATABASE>${db.name}</MYSQL_DATABASE>
                                            <MYSQL_USER>${db.username}</MYSQL_USER>
                                            <MYSQL_PASSWORD>${db.password}</MYSQL_PASSWORD>
                                            <MYSQL_ROOT_PASSWORD>root</MYSQL_ROOT_PASSWORD>
                                        </env>
                                        <wait>
                                            <log>${docker.wait.log}</log>
                                            <time>120000</time>
                                        </wait>
                                        <log>
                                            <prefix>mysql</prefix>
                                        </log>
                                    </run>
                                </image>
                            </images>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>sqlserver</id>
            <properties>
                <docker.image>mcr.microsoft.com/mssql/server:${sqlserver.docker.image.version}</docker.image>
                <docker.wait.log>.*Service Broker manager has started.</docker.wait.log>
                <db.url.no.database>jdbc:sqlserver://localhost:${db.port}</db.url.no.database>
                <db.url>${db.url.no.database};databaseName=${db.name}</db.url>
                <db.schema>ao_schema</db.schema>
                <db.name>ao_test</db.name>
                <db.username>sa</db.username>
                <db.password>AO_password12</db.password>
                <jdbc.version>7.4.1.jre8</jdbc.version>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>com.microsoft.sqlserver</groupId>
                    <artifactId>mssql-jdbc</artifactId>
                    <version>${jdbc.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.fabric8</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <configuration>
                            <skip>false</skip>
                            <images>
                                <image>
                                    <name>${docker.image}</name>
                                    <run>
                                        <ports>
                                            <port>db.port:1433</port>
                                        </ports>
                                        <env>
                                            <SA_PASSWORD>${db.password}</SA_PASSWORD>
                                            <ACCEPT_EULA>Y</ACCEPT_EULA>
                                            <MSSQL_PID>Standard</MSSQL_PID>
                                        </env>
                                        <wait>
                                            <log>${docker.wait.log}</log>
                                            <time>120000</time>
                                        </wait>
                                        <log>
                                            <prefix>sqlserver</prefix>
                                        </log>
                                    </run>
                                </image>
                            </images>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>sql-maven-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>com.microsoft.sqlserver</groupId>
                                <artifactId>mssql-jdbc</artifactId>
                                <version>${jdbc.version}</version>
                            </dependency>
                        </dependencies>
                        <configuration>
                            <username>${db.username}</username>
                            <password>${db.password}</password>
                            <url>${db.url.no.database}</url>
                            <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
                        </configuration>
                        <executions>
                            <execution>
                                <id>create-db</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <configuration>
                                    <autocommit>true</autocommit>
                                    <sqlCommand>
                                        CREATE DATABASE ${db.name};
                                        USE ${db.name};
                                        CREATE SCHEMA ${db.schema};
                                    </sqlCommand>
                                    <onError>abort</onError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>sqlserverexpress</id>
            <properties>
                <docker.image>mcr.microsoft.com/mssql/server:${sqlserver.docker.image.version}</docker.image>
                <docker.wait.log>.*Service Broker manager has started.</docker.wait.log>
                <db.url.no.database>jdbc:sqlserver://localhost:${db.port}</db.url.no.database>
                <db.url>${db.url.no.database};databaseName=${db.name}</db.url>
                <db.schema>ao_schema</db.schema>
                <db.name>ao_test</db.name>
                <db.username>sa</db.username>
                <db.password>AO_password12</db.password>
                <jdbc.version>7.4.1.jre8</jdbc.version>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>com.microsoft.sqlserver</groupId>
                    <artifactId>mssql-jdbc</artifactId>
                    <version>${jdbc.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.fabric8</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <configuration>
                            <skip>false</skip>
                            <images>
                                <image>
                                    <name>${docker.image}</name>
                                    <run>
                                        <ports>
                                            <port>db.port:1433</port>
                                        </ports>
                                        <env>
                                            <SA_PASSWORD>${db.password}</SA_PASSWORD>
                                            <ACCEPT_EULA>Y</ACCEPT_EULA>
                                            <MSSQL_PID>Express</MSSQL_PID>
                                        </env>
                                        <wait>
                                            <log>${docker.wait.log}</log>
                                            <time>120000</time>
                                        </wait>
                                        <log>
                                            <prefix>sqlserver</prefix>
                                        </log>
                                    </run>
                                </image>
                            </images>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>sql-maven-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>com.microsoft.sqlserver</groupId>
                                <artifactId>mssql-jdbc</artifactId>
                                <version>${jdbc.version}</version>
                            </dependency>
                        </dependencies>
                        <configuration>
                            <username>${db.username}</username>
                            <password>${db.password}</password>
                            <url>${db.url.no.database}</url>
                            <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
                        </configuration>
                        <executions>
                            <execution>
                                <id>create-db</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <configuration>
                                    <autocommit>true</autocommit>
                                    <sqlCommand>
                                        CREATE DATABASE ${db.name};
                                        USE ${db.name};
                                        CREATE SCHEMA ${db.schema};
                                    </sqlCommand>
                                    <onError>abort</onError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>oracle</id>
            <properties>
                <!-- NOTE: This image is not publicly available. -->
                <docker.image>container-registry.oracle.com/database/enterprise:${oracle.docker.image.version}</docker.image>
                <docker.wait.log>(?s).*DATABASE IS READY TO USE.*</docker.wait.log>
                <db.url>jdbc:oracle:thin:@localhost:${db.port}:${db.name}</db.url>
                <db.schema>C##ao_user</db.schema>
                <db.name>ORCLCDB</db.name>
                <db.username>C##ao_user</db.username>
                <db.password>ao_password</db.password>
                <jdbc.version>19.3.0.0</jdbc.version>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>com.oracle.ojdbc</groupId>
                    <artifactId>ojdbc8</artifactId>
                    <version>${jdbc.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.fabric8</groupId>
                        <artifactId>docker-maven-plugin</artifactId>
                        <configuration>
                            <skip>false</skip>
                            <images>
                                <image>
                                    <name>${docker.image}</name>
                                    <alias>oracle</alias>
                                    <run>
                                        <ports>
                                            <port>db.port:1521</port>
                                        </ports>
                                        <env>
                                            <ORACLE_SID>${db.name}</ORACLE_SID>
                                            <ORACLE_PWD>YHDHZZnF/J0=1</ORACLE_PWD>
                                        </env>
                                        <wait>
                                            <log>${docker.wait.log}</log>
                                            <time>1500000</time>
                                        </wait>
                                        <log>
                                            <prefix>oracle</prefix>
                                        </log>
                                    </run>
                                </image>
                            </images>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>sql-maven-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>com.oracle.ojdbc</groupId>
                                <artifactId>ojdbc8</artifactId>
                                <version>${jdbc.version}</version>
                            </dependency>
                        </dependencies>
                        <configuration>
                            <username>SYS AS SYSDBA</username>
                            <password>YHDHZZnF/J0=1</password>
                            <url>${db.url}</url>
                            <driver>oracle.jdbc.OracleDriver</driver>
                        </configuration>
                        <executions>
                            <execution>
                                <id>create-db</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <configuration>
                                    <driverProperties>oracle.net.disableOob=true</driverProperties>
                                    <autocommit>true</autocommit>
                                    <sqlCommand>
                                        CREATE USER ${db.username} IDENTIFIED BY ${db.password};
                                        GRANT ALL PRIVILEGES TO ${db.username} WITH ADMIN OPTION;
                                        GRANT CONNECT TO ${db.username};
                                    </sqlCommand>
                                    <onError>abort</onError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>tests</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.eirslett</groupId>
                        <artifactId>frontend-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>step-3-compile-the-ui</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
                <version>${javax.inject.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>atlassian-plugins-osgi-javaconfig</artifactId>
                <version>${atlassian-plugins-osgi-javaconfig.version}</version>
                <scope>compile</scope>
            </dependency>

            <!-- UPM Dependencies -->
            <dependency>
                <groupId>com.atlassian.upm</groupId>
                <artifactId>upm-api</artifactId>
                <version>${upm.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.upm</groupId>
                <artifactId>licensing-api</artifactId>
                <version>${upm.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.upm</groupId>
                <artifactId>atlassian-universal-plugin-manager-javascript-tests</artifactId>
                <version>${upm.version}</version>
            </dependency>

            <!-- Swagger/OpenAPI -->
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger-annotations.version}</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>1.8</target>
                        <release>8</release>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>3.1.0</version>
                    <configuration>
                        <executable>aws</executable>
                    </configuration>
                    <executions>
                        <execution>
                            <id>download-license-allowlist</id>
                            <phase>generate-resources</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <arguments>
                                    <argument>s3</argument>
                                    <argument>cp</argument>
                                    <argument>--profile</argument>
                                    <argument>${env.APPS_AWS_PROFILE}</argument>
                                    <argument>--only-show-errors</argument>
                                    <argument>s3://atlassian-apps-configuration-main/server-backend-license-allowlist.txt</argument>
                                    <argument>target${file.separator}</argument>
                                </arguments>
                            </configuration>
                        </execution>
                        <execution>
                            <id>download-license-allowlist-internal</id>
                            <phase>generate-resources</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <arguments>
                                    <argument>s3</argument>
                                    <argument>cp</argument>
                                    <argument>--profile</argument>
                                    <argument>${env.APPS_AWS_PROFILE}</argument>
                                    <argument>--only-show-errors</argument>
                                    <argument>s3://atlassian-apps-configuration-main/server-backend-license-allowlist-internal.txt</argument>
                                    <argument>target${file.separator}</argument>
                                </arguments>
                            </configuration>
                        </execution>
                        <execution>
                            <id>download-override-THIRD-PARTY.properties</id>
                            <phase>generate-resources</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <arguments>
                                    <argument>s3</argument>
                                    <argument>cp</argument>
                                    <argument>--profile</argument>
                                    <argument>${env.APPS_AWS_PROFILE}</argument>
                                    <argument>--only-show-errors</argument>
                                    <argument>s3://atlassian-apps-configuration-main/override-THIRD-PARTY.properties</argument>
                                    <argument>target${file.separator}</argument>
                                </arguments>
                            </configuration>
                        </execution>
                        <execution>
                            <id>download-dependency-suppression-list</id>
                            <phase>generate-resources</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <arguments>
                                    <argument>s3</argument>
                                    <argument>cp</argument>
                                    <argument>--profile</argument>
                                    <argument>${env.APPS_AWS_PROFILE}</argument>
                                    <argument>--only-show-errors</argument>
                                    <argument>s3://atlassian-apps-configuration-main/dependency-suppression-list.xml</argument>
                                    <argument>target${file.separator}</argument>
                                </arguments>
                            </configuration>
                        </execution>
                        <execution>
                            <id>download-server-backend-license-merge</id>
                            <phase>generate-resources</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <arguments>
                                    <argument>s3</argument>
                                    <argument>cp</argument>
                                    <argument>--profile</argument>
                                    <argument>${env.APPS_AWS_PROFILE}</argument>
                                    <argument>--only-show-errors</argument>
                                    <argument>s3://atlassian-apps-configuration-main/server-backend-license-merge.txt</argument>
                                    <argument>target${file.separator}</argument>
                                </arguments>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <version>${frontend-maven-plugin.version}</version>
                    <configuration>
                        <installDirectory>${project.build.directory}</installDirectory>
                        <nodeVersion>${node.version}</nodeVersion>
                        <yarnVersion>${yarn.version}</yarnVersion>
                    </configuration>
                    <executions>
                        <execution>
                            <id>step-1-set-up-environment</id>
                            <goals>
                                <goal>install-node-and-yarn</goal>
                            </goals>
                            <phase>initialize</phase>
                        </execution>
                        <execution>
                            <id>step-2-install-frontend-dependencies</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <configuration>
                                <arguments>install</arguments>
                            </configuration>
                            <phase>initialize</phase>
                        </execution>
                        <execution>
                            <id>step-3-compile-the-ui</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <configuration>
                                <arguments>build:${build.mode}</arguments>
                            </configuration>
                            <phase>process-classes</phase>
                        </execution>
                        <execution>
                            <id>step-4-lint</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <configuration>
                                <arguments>lint</arguments>
                            </configuration>
                            <phase>test</phase>
                        </execution>
                        <execution>
                            <id>step-5-execute-tests</id>
                            <goals>
                                <goal>yarn</goal>
                            </goals>
                            <configuration>
                                <arguments>test</arguments>
                            </configuration>
                            <phase>test</phase>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>${docker-maven-plugin.version}</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                    <executions>
                        <execution>
                            <id>start</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>start</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>stop</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>stop</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>${maven-enforcer-plugin.version}</version>
                    <executions>
                        <execution>
                            <configuration>
                                <rules>
                                    <requireMavenVersion>
                                        <version>[${maven.version},)</version>
                                    </requireMavenVersion>
                                    <requireJavaVersion>
                                        <version>${java.version}</version>
                                    </requireJavaVersion>
                                    <banDistributionManagement/>
                                    <banDuplicatePomDependencyVersions/>
                                    <bannedDependencies>
                                        <excludes>
                                            <exclude>org.projectlombok:lombok:*:jar:compile</exclude>
                                            <exclude>org.projectlombok:lombok:*:jar:test</exclude>
                                            <exclude>org.projectlombok:lombok:*:jar:system</exclude>
                                            <exclude>org.projectlombok:lombok:*:jar:runtime</exclude>
                                        </excludes>
                                    </bannedDependencies>
                                </rules>
                            </configuration>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${maven-deploy-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>${maven-pmd-plugin.version}</version>
                    <configuration>
                        <linkXRef>true</linkXRef>
                        <includeTests>true</includeTests>
                        <minimumTokens>100</minimumTokens>
                        <targetJdk>${java.version}</targetJdk>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-core</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-java</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-javascript</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>net.sourceforge.pmd</groupId>
                            <artifactId>pmd-jsp</artifactId>
                            <version>${pmd.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>${maven-project-info-reports-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>l10n-maven-plugin</artifactId>
                    <version>${l10n-maven-plugin.version}</version>
                    <configuration>
                        <locales>
                            <locale>de</locale>
                        </locales>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${maven-dependency-plugin.version}</version>
                    <configuration>
                        <usedDependencies>
                            <dependency>org.projectlombok:lombok</dependency>
                        </usedDependencies>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>${license-maven-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>license</id>
                            <phase>
                                ${license-maven-plugin.phase}
                            </phase>
                            <goals>
                                <goal>add-third-party</goal>
                            </goals>
                            <configuration>
                                <excludedScopes>provided,test</excludedScopes>
                                <generateBundle>true</generateBundle>
                                <includedLicenses>${includedLicenses}</includedLicenses>
                                <excludedGroups>com.tngtech.*</excludedGroups>
                                <licenseMergesUrl>${licenseMerge}</licenseMergesUrl>
                                <overrideUrl>${overrideUrl}</overrideUrl>
                                <failOnBlacklist>true</failOnBlacklist>
                                <failOnMissing>true</failOnMissing>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${maven-site-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>com.github.spotbugs</groupId>
                    <artifactId>spotbugs-maven-plugin</artifactId>
                    <version>${spotbugs-maven-plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.github.spotbugs</groupId>
                            <artifactId>spotbugs</artifactId>
                            <version>${spotbugs.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>${maven-surefire-report-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${maven-failsafe-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven-javadoc-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>${maven-jxr-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${maven-checkstyle-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>com.amashchenko.maven.plugin</groupId>
                    <artifactId>gitflow-maven-plugin</artifactId>
                    <version>${gitflow-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-staging-maven-plugin</artifactId>
                    <version>${nexus-staging-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${maven-source-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>${maven-gpg-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${maven-clean-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${maven-install-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${maven-resources-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>io.swagger.core.v3</groupId>
                    <artifactId>swagger-maven-plugin</artifactId>
                    <version>${swagger-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>${sql-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.openapitools</groupId>
                    <artifactId>openapi-generator-maven-plugin</artifactId>
                    <version>${openapi-generator-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>${owasp.denendency-checker.version}</version>
                    <configuration>
                        <skipProvidedScope>true</skipProvidedScope>
                        <skipSystemScope>true</skipSystemScope>
                        <skipTestScope>false</skipTestScope>
                        <failBuildOnCVSS>5</failBuildOnCVSS>
                        <suppressionFiles>
                            <suppressionFile>${suppressionFile}</suppressionFile>
                        </suppressionFiles>
                        <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
                    </configuration>
                    <executions>
                        <execution>
                            <id>owasp-validate</id>
                            <phase>package</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skipAfterFailureCount>${ci.tests.skipAfterFailureCount}</skipAfterFailureCount>
                    <rerunFailingTestsCount>${ci.tests.rerunFailingTestsCount}</rerunFailingTestsCount>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.amashchenko.maven.plugin</groupId>
                <artifactId>gitflow-maven-plugin</artifactId>
                <configuration>
                    <verbose>true</verbose>
                    <gitFlowConfig>
                        <productionBranch>main</productionBranch>
                        <developmentBranch>develop</developmentBranch>
                        <featureBranchPrefix>feature/</featureBranchPrefix>
                        <releaseBranchPrefix>release/</releaseBranchPrefix>
                        <hotfixBranchPrefix>hotfix/</hotfixBranchPrefix>
                        <supportBranchPrefix>support/</supportBranchPrefix>
                        <versionTagPrefix/>
                        <origin>origin</origin>
                    </gitFlowConfig>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.owasp</groupId>
                <artifactId>dependency-check-maven</artifactId>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                    <skipEmptyReport>false</skipEmptyReport>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>l10n-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>

    <repositories>
        <repository>
            <id>atlassian-public</id>
            <url>https://packages.atlassian.com/mvn/maven-external/</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>atlassian-public</id>
            <url>https://packages.atlassian.com/mvn/maven-external/</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
        </pluginRepository>
    </pluginRepositories>
</project>
