<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>

    <parent>
        <groupId>com.atlassian.pom</groupId>
        <artifactId>closedsource-pom</artifactId>
        <version>6.2.2</version>
        <relativePath />
    </parent>

    <groupId>com.atlassian.crowd</groupId>
    <artifactId>atlassian-crowd</artifactId>

    <name>Atlassian Crowd</name>
    <url>http://www.atlassian.com/software/crowd/</url>

    <issueManagement>
        <system>JIRA</system>
        <url>https://jira.atlassian.com/browse/CWD</url>
    </issueManagement>

    <ciManagement>
        <system>Bamboo</system>
        <url>https://extranet-bamboo.internal.atlassian.com/browse/CWD</url>
    </ciManagement>

    <packaging>pom</packaging>
    <version>5.1.6</version>

    <properties>
        <!-- Use this instead of the "arguments" property of maven-release-plugin -->
        <crowd.license>SERVER</crowd.license>
        <crowd.license.upgradedc>false</crowd.license.upgradedc>
        <test.listener>org.junit.runner.notification.RunListener</test.listener>
        <release.extra.arguments />
        <buildNumber>1895</buildNumber>
        <jdkLevel>1.8</jdkLevel>
        <maven.compiler.source>${jdkLevel}</maven.compiler.source>
        <maven.compiler.target>${jdkLevel}</maven.compiler.target>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
        <third.party.licensing.licenses.dir>${user.dir}/third-party-licensing/licenses</third.party.licensing.licenses.dir>

        <!-- Regarding the additional Javadoc parameters below:
            - The first two options are inherited from the base pom
            - The -Xdoclint:-reference option is currently necessary because we have broken references in our Javadoc, see CWD-4528
            - The -tag * options are necessary because of WADL-related tags in crowd-rest-plugin, see CWD-4527
        -->
        <javadoc.additional.params>-Xdoclint:all -Xdoclint:-missing -Xdoclint:-reference
            -tag request.representation.qname:X
            -tag request.representation.doc:X
            -tag request.representation.example:X
            -tag response.representation.200.qname:X
            -tag response.representation.200.mediaType:X
            -tag response.representation.200.doc:X
            -tag response.representation.200.example:X

            -tag response.representation.201.qname:X
            -tag response.representation.201.mediaType:X
            -tag response.representation.201.doc:X
            -tag response.representation.201.example:X

            -tag response.representation.204.qname:X
            -tag response.representation.204.mediaType:X
            -tag response.representation.204.doc:X
            -tag response.representation.204.example:X

            -tag response.representation.303.qname:X
            -tag response.representation.303.mediaType:X
            -tag response.representation.303.doc:X
            -tag response.representation.303.example:X

            -tag response.representation.400.example:X
            -tag response.representation.400.qname:X
            -tag response.representation.400.mediaType:X
            -tag response.representation.400.doc:X

            -tag response.representation.401.example:X
            -tag response.representation.401.qname:X
            -tag response.representation.401.mediaType:X
            -tag response.representation.401.doc:X

            -tag response.representation.403.example:X
            -tag response.representation.403.qname:X
            -tag response.representation.403.mediaType:X
            -tag response.representation.403.doc:X

            -tag response.representation.404.example:X
            -tag response.representation.404.qname:X
            -tag response.representation.404.mediaType:X
            -tag response.representation.404.doc:X

            -tag response.representation.409.example:X
            -tag response.representation.409.qname:X
            -tag response.representation.409.mediaType:X
            -tag response.representation.409.doc:X

            -tag response.representation.412.example:X
            -tag response.representation.412.qname:X
            -tag response.representation.412.mediaType:X
            -tag response.representation.412.doc:X

            -tag response.representation.500.example:X
            -tag response.representation.500.qname:X
            -tag response.representation.500.mediaType:X
            -tag response.representation.500.doc:X
        </javadoc.additional.params>

        <!-- Versioning info for common infrastructure -->
        <!-- sal.version should be consistent with the version in com.atlassian.platform:platform -->
        <sal.version>5.0.3</sal.version>
        <!-- Spring versions should be consistent with the version in com.atlassian.platform:third-party -->
        <spring.version>5.3.26</spring.version>
        <springsecurity.version>5.5.8</springsecurity.version>
        <atlassian.aui.version>8.0.2</atlassian.aui.version>
        <atlassian.crowd.scala.rest.client.version>1.0.1</atlassian.crowd.scala.rest.client.version>

        <atlassian.analytics.version>8.0.0</atlassian.analytics.version>
        <atlassian.analytics.whitelist.version>3.91</atlassian.analytics.whitelist.version>
        <atlassian.nps.version>3.1.21</atlassian.nps.version>
        <atlassian.mail.version>5.1.3</atlassian.mail.version>
        <atlassian.atst.version>1.39.0</atlassian.atst.version>
        <atlassian.config.version>2.0.0-249826e</atlassian.config.version>
        <hibernate.version>5.4.32.Final</hibernate.version>

        <!-- tomcat.artifact.version version should be consistent with the version in tomcat.version -->
        <!-- for more details see: http://go/renovate-nested-properties -->
        <tomcat.version>8.5.95</tomcat.version>
        <tomcat.artifact.version>8.5.95-atlassian-hosted</tomcat.artifact.version>

        <cargo.containerid>tomcat8x</cargo.containerid>
        <openid4java.version>1.0.0</openid4java.version>
        <bouncycastle.version>1.69</bouncycastle.version>
        <atlassian-json-api.version>0.9</atlassian-json-api.version>
        <commons.codec.version>1.14</commons.codec.version>
        <commons.fileupload.version>1.5</commons.fileupload.version>
        <akka.version>2.3.7</akka.version>
        <specs2.version>3.3.1</specs2.version>
        <!-- spray-testkit relies on classes not present in Specs2 v3.x (Specs2 v2.x uses different artifactIds too) -->
        <specs2.version.spray>2.4.17</specs2.version.spray>
        <!-- specs2 we are using is based on scalaz-stream:0.5a that have been deprecated and removed from artifactory -->
        <!-- hence we are overriding it to stable version -->
        <specs2.scalaz-stream.version>0.8.6</specs2.scalaz-stream.version>
        <spray.version>1.3.4</spray.version>

        <!-- struts-atlassian.version version should be consistent with the version in struts.version -->
        <!-- for more details see: http://go/renovate-nested-properties -->
        <!-- KRAK-844: the Atlassian version of Struts is necessary to support runtime plugin reloading via UPM -->
        <struts.version>2.5.31</struts.version>
        <struts-atlassian.version>2.5.31-atlassian-1</struts-atlassian.version>
        <!-- struts version for OpenID component (deprecated). Should be removed in KRAK-5353 -->
        <struts.openid.version>2.5.30</struts.openid.version>
        <struts-atlassian.openid.version>2.5.30-atlassian-1</struts-atlassian.openid.version>

        <findbugs.version>3.0.1</findbugs.version>
        <atlassian.dark.features.version>0.9.4</atlassian.dark.features.version>
        <atlassian.selenium.version>3.3.2</atlassian.selenium.version>
        <!-- plugins.spring.classifier version should be consistent with the spring version in platform-poms -->
        <plugins.spring.classifier>spring53x</plugins.spring.classifier>
        <fasterxml.jackson.version>2.13.4</fasterxml.jackson.version>
        <fasterxml.jackson.databind.version>2.13.4.2</fasterxml.jackson.databind.version>

        <!-- The OSGi version to import -->
        <guava.osgi.version>31.0</guava.osgi.version>
        <slf4j.osgi.version>1.6</slf4j.osgi.version>
        <jackson.osgi.version>1.9</jackson.osgi.version>
        <servlet-api.osgi.import.version>[2.5,5.0)</servlet-api.osgi.import.version>

        <jtds.version>1.3.1</jtds.version>

        <!-- javax.activation version should be consistent with the version in platform-poms -->
        <javax.activation.version>1.2.0</javax.activation.version>
        <javax.mail.version>1.6.2</javax.mail.version>
        <jaxb.version>2.3.1</jaxb.version>

        <scala.version>2.11.6</scala.version>
        <scala.major.version>2.11</scala.major.version>

        <gatling.version>3.4.2</gatling.version>
        <gatling.maven.plugin.version>3.1.0</gatling.maven.plugin.version>
        <gatling.scala.version>2.12.13</gatling.scala.version>
        <gatling.scala.major.version>2.12</gatling.scala.major.version>
        <logback.version>1.3.0-alpha5</logback.version>

        <el.api.version>2.2.5</el.api.version>
        <jsp.api.version>2.2</jsp.api.version>

        <api.baseline.version>3.1.1</api.baseline.version>

        <atlassian.extras.version>3.4.6</atlassian.extras.version>
        <atlassian-security.version>3.2.10</atlassian-security.version>
        <!-- atlassian.spring.scanner.version should be consistent with the version in platform-poms -->
        <atlassian.spring.scanner.version>3.0.2</atlassian.spring.scanner.version>
        <atlassian.sdk.version>8.0.4</atlassian.sdk.version>
        <atlassian.plugins.less-transformer.version>5.0.1</atlassian.plugins.less-transformer.version>
        <platform.version>6.0.30</platform.version>
        <!-- these are coupled with atlassian-rest which comes from platform - make sure it's the same version as the one in rest -->
        <jersey.version>1.19.4</jersey.version>

        <!-- needs to be in sync with version defined in atlassian-rest parent -->
        <jackson.version>1.9.14-atlassian-6</jackson.version>

        <ojdbc.version>12.2.0.1-atlassian-hosted</ojdbc.version>

        <password.cipher.version>1.3.0</password.cipher.version>

        <!-- test settings -->
        <cargo.timeout>120000</cargo.timeout>
        <skipTests>false</skipTests>
        <skipUTs>${skipTests}</skipUTs>

        <!-- used by the 'checkstyle' profile inherited from the parent pom -->
        <atlassian.codestyle>platform:1.0.1</atlassian.codestyle>

        <cluster.monitoring.version>1.0.2</cluster.monitoring.version>

        <xerces.version>2.12.2</xerces.version>

        <testcontainers.version>1.15.1</testcontainers.version>

        <crowd.cargo.goal>start</crowd.cargo.goal>
        <opensaml.version>3.4.6</opensaml.version>

        <node.version>v8.12.0</node.version>
        <yarn.version>v1.10.1</yarn.version>
        <upm.version>6.0.0</upm.version>
        <fugue.version>2.2.1</fugue.version>
        <jsr305.version>3.0.0</jsr305.version>

        <hsqldb.version>1.8.0.10</hsqldb.version>
        <postgresql.version>42.2.26</postgresql.version>

        <cloud.compatible.email.validation.version>1.0.2</cloud.compatible.email.validation.version>

        <junit.version>4.13.2</junit.version>
        <hamcrest.version>2.2</hamcrest.version>
        <hamcrest.junit.version>2.0.0.0</hamcrest.junit.version>
        <mockito.version>3.9.0</mockito.version>
        <assertj.version>3.18.1</assertj.version>
        <mockserver.version>5.11.2</mockserver.version>
        <netty.version>4.1.62.Final</netty.version>
        <asynchttpclient.version>2.12.2</asynchttpclient.version>
        <easyrandom.version>4.3.0</easyrandom.version>
        <oauth2.version>2.0.9</oauth2.version>

        <log4j.version>1.2.17-atlassian-16</log4j.version>

        <crowd.home>${project.build.directory}/crowd-home</crowd.home>
        <argLine>-Xmx1024m -Dcrowd.home=${crowd.home}</argLine>

        <!-- SonarQube -->
        <sonar.maven.plugin.version>3.6.0.1746</sonar.maven.plugin.version>
        <jacoco.maven.plugin.version>0.8.10</jacoco.maven.plugin.version>
        <sonar.exclusions>
            **/*Test.java,
            **/tests/**,
            **/acceptance/**,
            **/crowd-integration-tests/**,
            **/crowd-pageobjects/**,
            **/crowd-test-runner/**,
            **/components/crowd-acceptance-test/**,
            **/components/crowd-bundled-plugins/**,
            **/components/crowd-openid-spray-acceptance-test/**,
            **/components/crowd-test-utils/**
        </sonar.exclusions>
        <sonar.test.exclusions>
            **/test/**
        </sonar.test.exclusions>
        <sonar.coverage.jacoco.xmlReportPaths>
            ${user.dir}/crowd-test-runner/crowd-jacoco-report/target/site/jacoco-aggregate/jacoco.xml
        </sonar.coverage.jacoco.xmlReportPaths>
        <jacoco.ut.argLine />

        <!-- BEGIN.AMPS.CONTAINER.PROPERTIES -->
        <!-- Properties for AMPS to decide which tomcat version use when starting Crowd. For visit go/amps-autocontainer -->
        <!-- windows-x64 works on both Linux-like and Windows systems - it contains extra binaries for Windows x64 - https://apache.mirrors.tworzy.net/tomcat/tomcat-8/v8.5.61/README.html -->
        <amps.product.specific.container>org.apache.tomcat:apache-tomcat:${tomcat.artifact.version}:windows-x64</amps.product.specific.container>
        <!-- List of containers supported by cargo-maven-plugin: https://codehaus-cargo.github.io/cargo/Containers.html -->
        <amps.product.specific.cargo.container>${cargo.containerid}</amps.product.specific.cargo.container>
        <!-- END.AMPS.CONTAINER.PROPERTIES -->
        <commons-text.version>1.10.0</commons-text.version>
    </properties>

    <prerequisites>
        <maven>3.3.9</maven>
    </prerequisites>

    <scm>
        <connection>scm:git:ssh://git@stash.atlassian.com:7997/CWD/crowd.git</connection>
        <developerConnection>scm:git:ssh://git@stash.atlassian.com:7997/CWD/crowd.git</developerConnection>
        <url>https://stash.atlassian.com/projects/CWD/repos/crowd/</url>
        <tag>atlassian-crowd-5.1.6</tag>
    </scm>

    <modules>
        <module>components</module>
        <module>crowd-integration-tests</module>
        <module>crowd-test-runner</module>
        <module>crowd-pageobjects</module>
    </modules>

    <profiles>
        <profile>
            <id>distribution</id>
            <modules>
                <module>distribution</module>
            </modules>
        </profile>
        <profile>
            <id>end-to-end</id>
            <modules>
                <!-- E2E tests depend on docker image build by distribution module -->
                <module>distribution</module>
            </modules>
        </profile>
        <profile>
            <id>release</id>
            <modules>
                <module>distribution</module>
            </modules>
            <properties>
                <release.extra.arguments>-DskipTests</release.extra.arguments>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.atlassian.maven.plugins</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>deploy-sources</id>
                                <phase>deploy</phase>
                                <goals>
                                    <goal>open-source-distro</goal>
                                </goals>
                                <configuration>
                                    <deploySources>true</deploySources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>maven-cargo-wait</id>
            <activation>
                <property>
                    <name>cargo.wait</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
                <crowd.cargo.goal>run</crowd.cargo.goal>
            </properties>
        </profile>
        <profile>
            <id>jacoco</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${jacoco.maven.plugin.version}</version>
                        <configuration>
                            <includes>
                                <include>com/atlassian/crowd/**/*</include>
                                <include>com/atlassian/**/crowd/**/*</include>
                            </includes>
                        </configuration>
                        <executions>
                            <!-- Unit Tests Coverage -->
                            <execution>
                                <id>pre-unit-test</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <configuration>
                                    <destFile>${project.build.directory}/jacoco-ut.exec</destFile>
                                    <propertyName>jacoco.ut.argLine</propertyName>
                                </configuration>
                            </execution>
                            <execution>
                                <id>post-unit-test</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                                <configuration>
                                    <dataFile>${project.build.directory}/jacoco-ut.exec</dataFile>
                                    <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>aws-quick-starts</id>
            <modules>
                <module>crowd-aws-quick-starts</module>
            </modules>
        </profile>
    </profiles>


    <dependencyManagement>

        <dependencies>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${commons.fileupload.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>${jsr305.version}</version>
            </dependency>
            <!-- Module dependencies -->
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-core</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-db-config-password-cipher-encryptors</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-web-app</artifactId>
                <type>war</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-server</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-ldap</artifactId>
                <version>${project.version}</version>
                <type>jar</type>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-synchronisation</artifactId>
                <version>${project.version}</version>
                <type>jar</type>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-persistence</artifactId>
                <version>${project.version}</version>
                <type>jar</type>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-persistence-hibernate5</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-language</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-api</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-password-encoders</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-decorator-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-openid-server</artifactId>
                <type>war</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-openid-spray-core</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-openid-spray-acceptance-test</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-openid-client</artifactId>
                <type>war</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-events</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-rest-application-management</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-rest-admin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-rest-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-rest-common</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-common</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-rest-test</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-rest-test-api</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-test-utils</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-xwork</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-web-app-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-pageobjects</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-beehive-compat</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd.client</groupId>
                <artifactId>crowd-scala-rest-client_${scala.major.version}</artifactId>
                <version>${atlassian.crowd.scala.rest.client.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd.client</groupId>
                <artifactId>crowd-scala-client-model_${scala.major.version}</artifactId>
                <version>${atlassian.crowd.scala.rest.client.version}</version>
            </dependency>

            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2_${scala.major.version}</artifactId>
                <version>${specs2.version.spray}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.scalaz.stream</groupId>
                <artifactId>scalaz-stream_2.11</artifactId>
                <version>${specs2.scalaz-stream.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-query-language</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-directory-pruning-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-apacheds-server</artifactId>
                <type>war</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-monitoring-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-sso-saml</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- analytics/nps -->
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-analytics-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.analytics</groupId>
                <artifactId>analytics-client</artifactId>
                <version>${atlassian.analytics.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.atlassian.analytics</groupId>
                <artifactId>analytics-whitelist</artifactId>
                <version>${atlassian.analytics.whitelist.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>atlassian-nps-plugin</artifactId>
                <version>${atlassian.nps.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.mail</groupId>
                <artifactId>atlassian-mail</artifactId>
                <version>${atlassian.mail.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.troubleshooting</groupId>
                <artifactId>plugin-crowd</artifactId>
                <version>${atlassian.atst.version}</version>
            </dependency>

            <!-- Integration Modules -->

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-test-helper</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-api</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-client-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-client-rest</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-client</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-saml</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-seraph</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-springsecurity</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-integration-springsecurity-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-remote</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-azure-ad</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-server-api</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-server-common</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-server-shared</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-sync-feedback</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Crowd Embedded Modules -->
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>embedded-crowd-spi</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>embedded-crowd-api</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>embedded-crowd-core</artifactId>
                <type>jar</type>
                <version>${project.version}</version>
            </dependency>

            <!-- Atlassian dependencies -->

            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>panopticon-api</artifactId>
                <version>1.1.4</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.security</groupId>
                <artifactId>atlassian-password-encoder</artifactId>
                <version>${atlassian-security.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.security</groupId>
                <artifactId>atlassian-secure-random</artifactId>
                <version>${atlassian-security.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.security</groupId>
                <artifactId>atlassian-secure-xml</artifactId>
                <version>${atlassian-security.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.security</groupId>
                <artifactId>atlassian-secure-utils</artifactId>
                <version>${atlassian-security.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.extras</groupId>
                <artifactId>atlassian-extras</artifactId>
                <version>${atlassian.extras.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.extras</groupId>
                <artifactId>atlassian-extras-api</artifactId>
                <version>${atlassian.extras.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.util</groupId>
                <artifactId>product-license-util</artifactId>
                <version>2.0.0</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-core-tiny</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.config</groupId>
                <artifactId>atlassian-config</artifactId>
                <version>${atlassian.config.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.atlassian.johnson</groupId>
                        <artifactId>atlassian-johnson</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.spring</groupId>
                <artifactId>atlassian-spring</artifactId>
                <version>2.0.8</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-hibernate2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>hibernate</groupId>
                        <artifactId>hibernate</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.ip</groupId>
                <artifactId>atlassian-ip</artifactId>
                <version>3.1</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.profiling</groupId>
                <artifactId>atlassian-profiling</artifactId>
                <version>4.4.0</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.johnson</groupId>
                <artifactId>atlassian-johnson-core</artifactId>
                <version>2.1.0</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-testkit-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.util.concurrent</groupId>
                <artifactId>atlassian-util-concurrent</artifactId>
                <version>3.0.0</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>less-transformer-plugin</artifactId>
                <version>${atlassian.plugins.less-transformer.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.aui</groupId>
                <artifactId>auiplugin</artifactId>
                <version>${atlassian.aui.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.aui</groupId>
                <artifactId>aui-flat-pack</artifactId>
                <version>${atlassian.aui.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>jquery</artifactId>
                <version>2.2.4.11</version>
            </dependency>
            <!-- END: Plugin Framework Specific Dependencies -->

            <!-- Other dependencies -->
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.json</groupId>
                <artifactId>atlassian-json-api</artifactId>
                <version>${atlassian-json-api.version}</version>
            </dependency>

            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>3.18.1-GA</version>
            </dependency>

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.dom4j</groupId>
                        <artifactId>dom4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-c3p0</artifactId>
                <version>${hibernate.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.hibernate</groupId>
                <artifactId>atlassian-hibernate5.2-extras</artifactId>
                <version>6.1.1</version>
            </dependency>

            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.5.4</version>
            </dependency>

            <dependency>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-core</artifactId>
                <version>4.16.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.yaml</groupId>
                        <artifactId>snakeyaml</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-classic</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.6.1</version>
            </dependency>

            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.2</version>
            </dependency>

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons.codec.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>2.7.0</version>
            </dependency>

            <dependency>
                <groupId>commons-validator</groupId>
                <artifactId>commons-validator</artifactId>
                <version>1.7</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
                <version>1</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.4</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.mail</groupId>
                        <artifactId>mail</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>javax.activation-api</artifactId>
                <version>${javax.activation.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>javax.mail-api</artifactId>
                <version>${javax.mail.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>javax.mail</artifactId>
                <version>${javax.mail.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${jaxb.version}</version>
            </dependency>

            <dependency>
                <groupId>opensymphony</groupId>
                <artifactId>oscore</artifactId>
                <version>2.3.0-atlassian-1</version>
            </dependency>

            <dependency>
                <groupId>opensymphony</groupId>
                <artifactId>propertyset</artifactId>
                <version>1.3-21Nov03</version>
            </dependency>

            <dependency>
                <groupId>opensymphony</groupId>
                <artifactId>sitemesh</artifactId>
                <version>2.3</version>
            </dependency>

            <dependency>
                <groupId>javax.el</groupId>
                <artifactId>javax.el-api</artifactId>
                <version>${el.api.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp.api.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>1.4.01</version>
            </dependency>

            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>

            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>postgresql</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>

            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>mysql</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>

            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>selenium</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>${struts-atlassian.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-spring-plugin</artifactId>
                <version>${struts.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-sitemesh-plugin</artifactId>
                <version>${struts.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.transaction</groupId>
                <artifactId>jta</artifactId>
                <version>1.1</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <artifactId>joda-time</artifactId>
                <groupId>joda-time</groupId>
                <version>2.6</version>
            </dependency>

            <dependency>
                <artifactId>joda-convert</artifactId>
                <groupId>org.joda</groupId>
                <version>1.7</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.csv</groupId>
                <artifactId>atlassian-csv</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.ldap</groupId>
                <artifactId>spring-ldap-core</artifactId>
                <version>2.3.2.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache</artifactId>
                <version>2.9.0</version>
            </dependency>

            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>1.6</version>
            </dependency>

            <!--
            commons-lang is expected by plugins, explicit dependency guards us from a case where dropping the source
            of an implicit dependency would cause commons-lang to no longer be provided by us.
            -->
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>

            <!-- ANTLR dependencies -->
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr-runtime</artifactId>
                <version>3.5.2</version>
            </dependency>

            <!-- Beginning: Spring deps -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-core</artifactId>
                <version>${springsecurity.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-web</artifactId>
                <version>${springsecurity.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-config</artifactId>
                <version>${springsecurity.version}</version>
                <exclusions>
                    <!-- Spring Security 5.5 pulls in Kotlin, which is not needed in Crowd. -->
                    <exclusion>
                        <groupId>org.jetbrains.kotlin</groupId>
                        <artifactId>kotlin-stdlib-jdk8</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- End: Spring deps -->

            <dependency>
                <groupId>com.atlassian.fugue</groupId>
                <artifactId>fugue</artifactId>
                <version>${fugue.version}</version>
            </dependency>

            <!-- OpenID4Java -->
            <dependency>
                <groupId>org.openid4java</groupId>
                <artifactId>openid4java</artifactId>
                <version>${openid4java.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1-atlassian-2</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.openxri</groupId>
                <artifactId>openxri-syntax</artifactId>
                <version>1.2.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.ibm.icu</groupId>
                        <artifactId>icu4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-jcl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!--
              Overwrite the dependency
               of openxri-syntax-1.0.1
              as icu4j-3.4.1 not found in maven's central repository.
            -->
            <dependency>
                <groupId>com.ibm.icu</groupId>
                <artifactId>icu4j</artifactId>
                <version>4.8.1</version>
            </dependency>

            <dependency>
                <groupId>org.openxri</groupId>
                <artifactId>openxri-client</artifactId>
                <version>1.2.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.ibm.icu</groupId>
                        <artifactId>icu4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.sf.ehcache</groupId>
                        <artifactId>ehcache</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-jcl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>xml-security</groupId>
                <artifactId>xmlsec</artifactId>
                <version>1.4.2</version>
                <!-- used to be 1.3.0 -->
            </dependency>

            <dependency>
                <groupId>net.sourceforge.nekohtml</groupId>
                <artifactId>nekohtml</artifactId>
                <version>1.9.21</version>
            </dependency>

            <!-- end OpenID4Java -->

            <dependency>
                <groupId>org.tuckey</groupId>
                <artifactId>urlrewritefilter</artifactId>
                <version>4.0.3</version>
            </dependency>

            <!--SAL 4-->
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-sal</artifactId>
                <type>bundle</type>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.sal</groupId>
                <artifactId>sal-core</artifactId>
                <version>${sal.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.atlassian.seraph</groupId>
                        <artifactId>atlassian-seraph</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.jersey</groupId>
                <artifactId>atlassian-jersey-restdoc</artifactId>
                <version>1.0.0</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>findbugs-annotations</artifactId>
                <version>${findbugs.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>1.1.1</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${fasterxml.jackson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${fasterxml.jackson.databind.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>3.0</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.3.1</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-servlet_${scala.major.version}</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-http_${scala.major.version}</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-routing_${scala.major.version}</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-actor_${scala.major.version}</artifactId>
                <version>${akka.version}</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-slf4j_${scala.major.version}</artifactId>
                <version>${akka.version}</version>
            </dependency>

            <dependency>
                <groupId>net.databinder.dispatch</groupId>
                <artifactId>dispatch-core_${scala.major.version}</artifactId>
                <version>0.13.4</version>
            </dependency>

            <!-- Start Azure AD dependencies -->
            <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>msal4j</artifactId>
                <version>1.13.8</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.github.stephenc.jcip</groupId>
                        <artifactId>jcip-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>com.github.stephenc.jcip</groupId>
                        <artifactId>jcip-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>2.4.10</version>
            </dependency>

            <dependency>
                <groupId>net.jcip</groupId>
                <artifactId>com.springsource.net.jcip.annotations</artifactId>
                <version>1.0.0</version>
            </dependency>

            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity</artifactId>
                <version>1.6.4-atlassian-24</version>
            </dependency>

            <!-- Start Test Dependencies -->
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-testkit_${scala.major.version}</artifactId>
                <version>${spray.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-testkit_${scala.major.version}</artifactId>
                <version>${akka.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>0.9.10</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.jeasy</groupId>
                <artifactId>easy-random-core</artifactId>
                <version>${easyrandom.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.github.stefanbirkner</groupId>
                <artifactId>system-rules</artifactId>
                <version>1.18.0</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit-dep</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-core_${scala.major.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-scalacheck_${scala.major.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-junit_${scala.major.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.specs2</groupId>
                <artifactId>specs2-mock_${scala.major.version}</artifactId>
                <version>${specs2.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.scalacheck</groupId>
                <artifactId>scalacheck_${scala.major.version}</artifactId>
                <version>1.11.5</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>jmock</groupId>
                <artifactId>jmock</artifactId>
                <version>1.2.0</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${hamcrest.version}</version>
            </dependency>

            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>${assertj.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.dbunit</groupId>
                <artifactId>dbunit</artifactId>
                <version>2.7.2</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>4.4.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-osgi</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>org.apache.sling.javax.activation</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>jakarta.xml.bind-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-library</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-ext</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.asynchttpclient</groupId>
                <artifactId>async-http-client</artifactId>
		        <version>${asynchttpclient.version}</version>
            </dependency>

            <dependency>
                <groupId>org.mock-server</groupId>
                <artifactId>mockserver-netty</artifactId>
                <version>${mockserver.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-classic</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>javax.servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.mail</groupId>
                        <artifactId>mailapi</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>xerces</groupId>
                        <artifactId>xercesImpl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.skyscreamer</groupId>
                        <artifactId>jsonassert</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>jakarta.xml.bind-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.validation</groupId>
                        <artifactId>jakarta.validation-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-ext</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.mock-server</groupId>
                <artifactId>mockserver-junit-rule</artifactId>
                <version>${mockserver.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>2.3</version>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-socks</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler-proxy</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-resolver</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <classifier>linux-x86_64</classifier>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-unix-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-kqueue</artifactId>
                <classifier>osx-x86_64</classifier>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-resolver-dns</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-dns</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http2</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-server-jndi</artifactId>
                <version>1.5.7</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>bouncycastle</groupId>
                        <artifactId>lcrypto-jdk14</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>jaxen</groupId>
                <artifactId>jaxen</artifactId>
                <version>1.1.6</version>
                <exclusions>
                    <exclusion>
                        <groupId>xerces</groupId>
                        <artifactId>xercesImpl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>xerces</groupId>
                        <artifactId>xmlParserAPIs</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>xml-apis</groupId>
                        <artifactId>xml-apis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.jdom</groupId>
                <artifactId>jdom2</artifactId>
                <version>2.0.6.1</version>
            </dependency>

            <dependency>
                <groupId>net.sourceforge.jwebunit</groupId>
                <artifactId>jwebunit-core</artifactId>
                <version>3.4-atlassian-1-m02</version>
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit-dep</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.selenium</groupId>
                <artifactId>atlassian-pageobjects-elements</artifactId>
                <!-- TODO: Remove atlassian-browsers-auto override once the transitive dependency is upgraded in atlassian-pageobjects-elements -->
                <version>${atlassian.selenium.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.bundles</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- TODO: Remove atlassian-browsers-auto override once the transitive dependency is upgraded in atlassian-pageobjects-elements -->
            <dependency>
                <groupId>com.atlassian.browsers</groupId>
                <artifactId>atlassian-browsers-auto</artifactId>
                <version>3.2.0</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>stax</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.stream</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>2.1_3</version>
            </dependency>

            <dependency>
                <groupId>xmlunit</groupId>
                <artifactId>xmlunit</artifactId>
                <version>1.5</version>
            </dependency>

            <dependency>
                <groupId>com.github.springtestdbunit</groupId>
                <artifactId>spring-test-dbunit</artifactId>
                <version>1.2.0</version>
            </dependency>

            <dependency>
                <groupId>com.icegreen</groupId>
                <artifactId>greenmail</artifactId>
                <version>1.4.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.mail</groupId>
                        <artifactId>javax.mail</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- End Test Dependencies -->

            <!-- Start Distribution Dependencies -->

            <dependency>
                <groupId>com.oopsconsultancy</groupId>
                <artifactId>xmltask</artifactId>
                <version>1.16</version>
            </dependency>

            <!-- JDBC Drivers -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>1.4.200</version>
            </dependency>

            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>${hsqldb.version}</version>
            </dependency>

            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgresql.version}</version>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.26</version>
            </dependency>

            <dependency>
                <groupId>com.oracle.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>${ojdbc.version}</version>
            </dependency>

            <dependency>
                <groupId>net.sourceforge.jtds</groupId>
                <artifactId>jtds</artifactId>
                <version>${jtds.version}</version>
            </dependency>
            <!-- End Distribution Dependencies -->

            <dependency>
                <groupId>com.atlassian.plugin</groupId>
                <artifactId>atlassian-spring-scanner-annotation</artifactId>
                <version>${atlassian.spring.scanner.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.analytics</groupId>
                <artifactId>analytics-api</artifactId>
                <version>${atlassian.analytics.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugin</groupId>
                <artifactId>atlassian-spring-scanner-runtime</artifactId>
                <version>${atlassian.spring.scanner.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.upm</groupId>
                <artifactId>atlassian-universal-plugin-manager-plugin</artifactId>
                <version>${upm.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.atlassian.extras</groupId>
                        <artifactId>atlassian-extras-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.extras</groupId>
                        <artifactId>atlassian-extras-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.extras</groupId>
                        <artifactId>atlassian-extras-decoder-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.extras</groupId>
                        <artifactId>atlassian-extras-legacy</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.felix</groupId>
                        <artifactId>org.apache.felix.bundlerepository</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.felix</groupId>
                        <artifactId>org.osgi.core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Platform dependencies -->
            <dependency>
                <groupId>com.atlassian.platform</groupId>
                <artifactId>platform</artifactId>
                <version>${platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.platform</groupId>
                <artifactId>third-party</artifactId>
                <version>${platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.mockito</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.functest</groupId>
                <artifactId>functest-plugin</artifactId>
                <version>1.0.2</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.atlassian.labs.plugins</groupId>
                <artifactId>quickreload</artifactId>
                <version>3.1.0</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.cluster.monitoring</groupId>
                <artifactId>cluster-monitoring-plugin</artifactId>
                <version>${cluster.monitoring.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.cluster.monitoring</groupId>
                <artifactId>cluster-monitoring-spi</artifactId>
                <version>${cluster.monitoring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-saml-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-saml-impl</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.collectors</groupId>
                <artifactId>atlassian-collectors-util</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-to-slf4j</artifactId>
                <version>2.10.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${commons-text.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-frontend-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.crowd</groupId>
                <artifactId>crowd-hibernate5-dialects</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.db.config</groupId>
                <artifactId>password-cipher-api</artifactId>
                <version>${password.cipher.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.db.config</groupId>
                <artifactId>password-cipher-base</artifactId>
                <version>${password.cipher.version}</version>
            </dependency>

            <dependency>
                <groupId>xalan</groupId>
                <artifactId>xalan</artifactId>
                <version>2.7.2</version>
            </dependency>

            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>${xerces.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.testutils</groupId>
                <artifactId>atlassian-test-annotations</artifactId>
                <version>2.5</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.ccev</groupId>
                <artifactId>cloud-compatible-email-validation</artifactId>
                <version>${cloud.compatible.email.validation.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.oauth2</groupId>
                <artifactId>oauth2-client-api</artifactId>
                <version>${oauth2.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.oauth2</groupId>
                <artifactId>oauth2-provider-api</artifactId>
                <version>${oauth2.version}</version>
            </dependency>

            <dependency>
                <groupId>com.rometools</groupId>
                <artifactId>rome</artifactId>
                <version>1.18.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <extensions>true</extensions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.cargo</groupId>
                    <artifactId>cargo-maven2-plugin</artifactId>
                    <version>1.6.3</version>
                    <configuration>
                        <container>
                            <containerId>${cargo.containerid}</containerId>
                            <artifactInstaller>
                                <groupId>org.apache.tomcat</groupId>
                                <artifactId>apache-tomcat</artifactId>
                                <type>zip</type>
                                <version>${tomcat.artifact.version}</version>
                                <extractDir>${basedir}/target/cargo-installs</extractDir>
                            </artifactInstaller>
                            <timeout>${cargo.timeout}</timeout>
                        </container>
                        <properties>
                            <cargo.logging>medium</cargo.logging>
                        </properties>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.7</version>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-repository-bundle-plugin</artifactId>
                    <version>0.1</version>
                </plugin>
                <plugin>
                    <groupId>net.sf.alchim</groupId>
                    <artifactId>yuicompressor-maven-plugin</artifactId>
                    <version>0.7.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.3.2</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-idea-plugin</artifactId>
                    <version>2.3-atlassian-10</version>
                </plugin>
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>3.2.1</version>
                    <configuration>
                        <recompileMode>incremental</recompileMode>
                        <useZincServer>true</useZincServer>
                        <args> <!-- for Scala compilation -->
                            <arg>-target:jvm-${jdkLevel}</arg>
                            <arg>-Xlint</arg>
                            <arg>-Xfatal-warnings</arg>
                            <arg>-deprecation</arg>
                            <arg>-feature</arg>
                            <!--
                            Maximum file name length in an ecryptfs is 143 characters
                            See https://bugs.launchpad.net/ecryptfs/+bug/344878.
                            -->
                            <arg>-Xmax-classfile-name</arg>
                            <arg>143</arg>
                        </args>
                        <sendJavaToScalac>false</sendJavaToScalac>
                        <!-- Can't fail on multiple Scala versions because we use different versions of 2.10 -->
                        <failOnMultipleScalaVersions>false</failOnMultipleScalaVersions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>io.gatling</groupId>
                    <artifactId>gatling-maven-plugin</artifactId>
                    <version>${gatling.maven.plugin.version}</version>
                    <configuration>
                        <runMultipleSimulations>true</runMultipleSimulations>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>ch.qos.logback</groupId>
                            <artifactId>logback-classic</artifactId>
                            <version>${logback.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>ch.qos.logback</groupId>
                            <artifactId>logback-core</artifactId>
                            <version>${logback.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-licensing-bom-processor-plugin</artifactId>
                    <version>0.4</version>
                </plugin>
                <plugin>
                    <groupId>com.sun.jersey.contribs</groupId>
                    <artifactId>maven-wadl-plugin</artifactId>
                    <version>1.19</version>

                    <dependencies>
                        <dependency>
                            <groupId>xerces</groupId>
                            <artifactId>xercesImpl</artifactId>
                            <version>${xerces.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xml-maven-plugin</artifactId>
                    <version>1.0</version>

                    <dependencies>
                        <dependency>
                            <groupId>net.sf.saxon</groupId>
                            <artifactId>saxon</artifactId>
                            <version>8.7</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.plugin</groupId>
                    <artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
                    <version>${atlassian.spring.scanner.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>atlassian-spring-scanner</goal>
                            </goals>
                            <phase>process-classes</phase>
                        </execution>
                    </executions>
                    <configuration>
                        <verbose>false</verbose>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>clirr-maven-plugin</artifactId>
                    <version>2.7</version>
                    <dependencies>
                        <!-- workaround https://github.com/mojohaus/clirr-maven-plugin/issues/3 -->
                        <dependency>
                            <groupId>com.google.code.findbugs</groupId>
                            <artifactId>bcel-findbugs</artifactId>
                            <version>6.0</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <comparisonArtifacts>
                            <comparisonArtifact>
                                <groupId>${project.groupId}</groupId>
                                <artifactId>${project.artifactId}</artifactId>
                                <version>${api.baseline.version}</version>
                            </comparisonArtifact>
                        </comparisonArtifacts>

                        <minSeverity>info</minSeverity>
                        <failOnWarning>true</failOnWarning>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.21.0</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>groovy-maven-plugin</artifactId>
                    <version>2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>3.0.0-M5</version>
                    <configuration>
                        <trimStackTrace>false</trimStackTrace>
                        <properties>
                            <property>
                                <name>listener</name>
                                <value>${test.listener}</value>
                            </property>
                        </properties>
                        <systemPropertyVariables>
                            <crowd.license>${crowd.license}</crowd.license>
                            <crowd.license.upgradedc>${crowd.license.upgradedc}</crowd.license.upgradedc>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <nonMavenDependenciesFile>third-party-licensing/missing-non-maven-dependencies.properties</nonMavenDependenciesFile>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <configuration>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <version>1.12.1</version>
                    <configuration>
                        <nodeVersion>${node.version}</nodeVersion>
                        <yarnVersion>${yarn.version}</yarnVersion>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>${sonar.maven.plugin.version}</version>
                </plugin>
                <plugin>
                    <!-- https://hello.atlassian.net/browse/BUILDENG-17711 -->
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>artifactory-staging-maven-plugin</artifactId>
                    <version>2.0.0</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <inherited>false</inherited>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>setup-idea</id>
                        <configuration>
                            <tasks>
                                <echo>Copying `resources/runConfigurations' to `.idea/runConfigurations'</echo>
                                <mkdir dir=".idea/runConfigurations" />
                                <touch>
                                    <fileset dir=".idea/runConfigurations" />
                                </touch>
                                <copy todir=".idea/runConfigurations" overwrite="false">
                                    <fileset dir="resources/runConfigurations" />
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>amps-maven-plugin</artifactId>
                <version>${atlassian.sdk.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <compressResources>false</compressResources>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.3.1</version>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <id>enforce-java</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireJavaVersion>
                                    <version>${jdkLevel}</version>
                                </requireJavaVersion>
                                <requirePluginVersions>
                                    <message>Best Practice is to always define plugin versions!</message>
                                </requirePluginVersions>
                            </rules>
                        </configuration>
                    </execution>

                    <!-- Ensure Crowd releases have Maven 3 -->
                    <execution>
                        <id>enforce-build-environment</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>[3.3.9, 3.7)</version>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>enforce-no-obsolete-files</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireFilesDontExist>
                                    <message>Generated files should not be present in src/ directories.</message>
                                    <files>
                                        <file>components/crowd-web-app/src/main/resources/atlassian-bundled-plugins-dev.zip</file>
                                        <file>components/crowd-web-app/src/main/resources/atlassian-bundled-plugins.zip</file>
                                        <file>components/crowd-integration-api/src/main/java/com/atlassian/crowd/util/build/BuildUtils.java</file>
                                    </files>
                                </requireFilesDontExist>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-plugin</artifactId>
                <configuration>
                    <connectionType>connection</connectionType>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-idea-plugin</artifactId>
                <configuration>
                    <downloadSources>false</downloadSources>
                    <!--<downloadJavadocs>false</downloadJavadocs>-->
                    <useFullNames>false</useFullNames>
                    <dependenciesAsLibraries>true</dependenciesAsLibraries>
                    <jdkName>${jdkLevel}</jdkName>
                    <jdkLevel>${jdkLevel}</jdkLevel>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>${skipUTs}</skipTests>
                    <excludes>
                        <exclude>**/*$*</exclude>
                    </excludes>
                    <trimStackTrace>false</trimStackTrace>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>${test.listener}</value>
                        </property>
                    </properties>
                    <systemPropertyVariables>
                        <crowd.license>${crowd.license}</crowd.license>
                    </systemPropertyVariables>
                    <argLine>@{jacoco.ut.argLine}</argLine>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <!-- All release builds are for the whole distribution -->
                    <arguments>-Pdistribution ${release.extra.arguments}</arguments>

                    <preparationGoals>clean verify javadoc:aggregate-jar</preparationGoals>
                    <goals>clean install javadoc:aggregate-jar deploy</goals>

                    <!-- release:perform also sets -Prelease -->
                    <releaseProfiles>release</releaseProfiles>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>javadoc</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
</project>
