<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>public-pom</artifactId>
        <version>3.0.20</version>
    </parent>

    <groupId>com.atlassian.applinks</groupId>
    <artifactId>applinks-parent</artifactId>
    <version>4.3.10</version>
    <name>AppLinks Parent POM</name>
    <packaging>pom</packaging>

    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <modules>
        <module>applinks-api</module>
        <module>applinks-spi</module>
        <module>applinks-host</module>
        <module>applinks-plugin</module>
        <module>applinks-pageobjects</module>
        <module>func-test</module>
        <module>applinks-tests</module>
    </modules>

    <properties>
        <jdkLevel>1.6</jdkLevel>
        <dev.mode>true</dev.mode>
        <skip.integration.tests>true</skip.integration.tests>
        <skip.unit.tests>false</skip.unit.tests>

        <platform.version>2.22.5</platform.version>
        <refapp.version>2.22.1</refapp.version>
        <spring.version>2.5.6</spring.version>

        <amps.version>5.1.8</amps.version>
        <atlassian.analytics.version>3.21</atlassian.analytics.version>
        <atlassian.soy.version>1.1.6</atlassian.soy.version>

        <clover.Version>3.0.2</clover.Version>
        <org.json.version>20080701</org.json.version>

        <atlassian.webdriver.version>2.2.0</atlassian.webdriver.version>
        <junit.version>4.11</junit.version>
        <hamcrest.version>1.3</hamcrest.version>
        <reflections.version>0.9.10</reflections.version>
        <rest.assured.version>2.4.1</rest.assured.version>
        <slf4j.version>1.6.4</slf4j.version>
        <darkfeatures.rest.version>0.6</darkfeatures.rest.version>
        <http.components.test.version>4.3.2</http.components.test.version>
        <guava.test.version>14.0</guava.test.version>

        <!-- Product versions -->
        <jira.version>6.4.7</jira.version>
        <confluence.version>5.8.5</confluence.version>
        <!-- Use test resources 5.7, see APDLEV-335. Can be removed once we upgrade to 5.8.5+ APLDEV-335 -->
        <confluence.data.version>5.7.3</confluence.data.version>

        <surefire.version>2.4.2</surefire.version>
    </properties>

    <profiles>
        <!-- To run integration tests (ITs) -->
        <profile>
            <id>it</id>
            <properties>
                <skip.integration.tests>false</skip.integration.tests>
            </properties>
        </profile>

        <!-- Skip all tests when -DskipTests is on -->
        <profile>
            <id>skip-tests</id>
            <activation>
                <property>
                    <name>skipTests</name>
                </property>
            </activation>
            <properties>
                <skip.integration.tests>true</skip.integration.tests>
                <skip.unit.tests>true</skip.unit.tests>
            </properties>
        </profile>

        <!-- To disable dev mode -->
        <profile>
            <id>no-dev-mode</id>
            <properties>
                <dev.mode>false</dev.mode>
            </properties>
        </profile>

        <!-- This is for the CI build running integration tests. Disables dev mode and unit tests. -->
        <profile>
            <id>it.ci</id>
            <activation>
                <property>
                    <name>it.ci</name>
                </property>
            </activation>
            <properties>
                <skip.integration.tests>false</skip.integration.tests>
                <skip.unit.tests>true</skip.unit.tests>
                <dev.mode>false</dev.mode>
            </properties>
        </profile>

        <!-- This is for the CI build running smoke tests. It _should_ be just it.ci, but currently smoke tests
             need the dev mode flag on due to APLDEV-323. -->
        <profile>
            <id>it.ci.smoke</id>
            <activation>
                <property>
                    <name>it.ci.smoke</name>
                </property>
            </activation>
            <properties>
                <skip.integration.tests>false</skip.integration.tests>
                <skip.unit.tests>true</skip.unit.tests>
            </properties>
        </profile>

        <!-- Downgrade JIRA and Confluence to allow us to keep running builds in JDK 1.6/JDK 1.7 -->
        <!-- The most recent versions of JIRA and Confluence do not support either JDK 1.6, or both 1.6 and 1.7 -->
        <profile>
            <id>it.jdk6</id>
            <activation>
                <jdk>1.6</jdk>
            </activation>
            <properties>
                <confluence.version>5.7.3</confluence.version>
                <!-- can be removed once we upgrade to 5.8.5+ APLDEV-335 -->
                <confluence.data.version>${confluence.version}</confluence.data.version>
                <jira.version>6.3.3</jira.version>
            </properties>
        </profile>

        <profile>
            <id>it.jdk7</id>
            <activation>
                <jdk>1.7</jdk>
            </activation>
            <properties>
                <confluence.version>5.7.3</confluence.version>
                <!-- can be removed once we upgrade to 5.8.5+ APLDEV-335 -->
                <confluence.data.version>${confluence.version}</confluence.data.version>
            </properties>
        </profile>
    </profiles>

    <dependencyManagement>
        <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>
            </dependency>

            <dependency>
                <groupId>com.atlassian.applinks</groupId>
                <artifactId>applinks-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.applinks</groupId>
                <artifactId>applinks-spi</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.applinks</groupId>
                <artifactId>applinks-host</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.applinks</groupId>
                <artifactId>applinks-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.analytics</groupId>
                <artifactId>analytics-api</artifactId>
                <version>${atlassian.analytics.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.soy</groupId>
                <artifactId>soy-template-renderer-api</artifactId>
                <version>${atlassian.soy.version}</version>
            </dependency>

            <!-- Logging -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.7</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.bundles</groupId>
                <artifactId>jsr305</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>jsr250-api</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>1.1.1</version>
            </dependency>
            <!-- BUILDENG-1542 Resolve build problem with Jersey (coming via atlassian-rest) -->
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>1.8-atlassian-6</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>1.8-atlassian-6</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>1.8-atlassian-6</version>
            </dependency>

            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty</artifactId>
                <version>6.1.25</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
            </dependency>

            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>${org.json.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian</groupId>
                <artifactId>atlassian-localhost</artifactId>
                <version>1.1.0</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
                <version>1.3.5</version>
            </dependency>
            <dependency>
                <groupId>net.oauth.core</groupId>
                <artifactId>oauth</artifactId>
                <version>20090617</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.0</version>
            </dependency>

            <dependency>
                <groupId>com.atlassian.velocity.htmlsafe</groupId>
                <artifactId>velocity-htmlsafe</artifactId>
                <version>1.1.beta1</version>
                <!-- Working around http://jira.codehaus.org/browse/MNG-2742 - depends on version range [1.5,1.7) -->
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.velocity</groupId>
                        <artifactId>velocity</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.atlassian.refapp</groupId>
                <artifactId>atlassian-refapp-sal-plugin</artifactId>
                <version>${refapp.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.atlassian.sal</groupId>
                        <artifactId>sal-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.sal</groupId>
                        <artifactId>sal-spi</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.sal</groupId>
                        <artifactId>sal-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- This is here because of legacy Confluence action for space links. Entity links will die at some
                 point, and then this will disappear too.-->
            <dependency>
                <groupId>com.atlassian.confluence</groupId>
                <artifactId>confluence</artifactId>
                <version>${confluence.version}</version>
                <exclusions>
                    <!-- In order to be able to use slf4j-nop for tests, this must be excluded -->
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.octo.captcha</groupId>
                        <artifactId>jcaptcha-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.atlassian.sal</groupId>
                        <artifactId>sal-spi</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Test dependencies -->
            <dependency>
                <groupId>com.atlassian.applinks</groupId>
                <artifactId>applinks-pageobjects</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.applinks</groupId>
                <artifactId>applinks-func-test-rest-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit-dep</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.stefanbirkner</groupId>
                <artifactId>system-rules</artifactId>
                <version>1.5.0</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${hamcrest.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-library</artifactId>
                <version>${hamcrest.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>1.9.5</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-nop</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>${reflections.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.restassured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>${rest.assured.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>atlassian-dark-features-rest-plugin</artifactId>
                <version>${darkfeatures.rest.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugins</groupId>
                <artifactId>atlassian-dark-features-test-utils</artifactId>
                <version>${darkfeatures.rest.version}</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.selenium</groupId>
                <artifactId>atlassian-pageobjects-api</artifactId>
                <version>${atlassian.webdriver.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.collections</groupId>
                        <artifactId>google-collections</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit-dep</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.atlassian.selenium</groupId>
                <artifactId>atlassian-pageobjects-elements</artifactId>
                <version>${atlassian.webdriver.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.collections</groupId>
                        <artifactId>google-collections</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit-dep</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-amps-plugin</artifactId>
                    <version>${amps.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <skipAllPrompts>true</skipAllPrompts>
                        <systemPropertyVariables>
                            <upm.pac.disable>true</upm.pac.disable>
                            <atlassian.upm.server.data.disable>true</atlassian.upm.server.data.disable>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.version}</version>
                    <configuration>
                        <skipTests>${skip.unit.tests}</skipTests>
                        <includes>
                            <include>**/Test*.java</include>
                            <include>**/*Test.java</include>
                        </includes>
                        <excludes>
                            <exclude>it/**/*</exclude>
                            <exclude>selenium/**/*</exclude>
                            <exclude>**/*$*</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <!-- https://ecosystem.atlassian.net/browse/AMPS-927 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${surefire.version}</version>
                    <configuration>
                        <skipITs>${skip.integration.tests}</skipITs>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-amps-dispatcher-plugin</artifactId>
                    <version>${amps.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>ban-milestones-and-release-candidates</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <banVersionDeps>
                                        <excludes>
                                            <exclude>com.atlassian.jira:jira-rest-java-client-api:jar:2.0.0-m25</exclude>
                                            <exclude>com.google.inject:guice:jar:3.0-rc2</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-functest-rest-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-functest-http-validation-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-rpc-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence-upgrade:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.velocity.htmlsafe:velocity-htmlsafe:jar:1.2.1-m2</exclude>
                                            <exclude>com.atlassian.confluence:confluence-java-api:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence-testutils:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-functestxss-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-scriptsfinished-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-ondemand-crowd-proxy-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence-webdriver-test:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.selenium:atlassian-visual-comparison:jar:2.2-m01</exclude>
                                            <exclude>com.atlassian.confluence:confluence-not-shippable:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence-rest-api:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.selenium:atlassian-webdriver-core:jar:2.2-m01</exclude>
                                            <exclude>org.apache.mina:mina-core:jar:2.0.0-RC1</exclude>
                                            <exclude>com.octo.captcha:jcaptcha-all:jar:1.0-RC6</exclude>
                                            <exclude>com.atlassian.confluence:confluence-test-support:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.gadgets:atlassian-gadgets-pageobjects:jar:3.2.0-m4</exclude>
                                            <exclude>com.atlassian.confluence.plugins:confluence-functestrpc-plugin:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.selenium:atlassian-pageobjects-api:jar:2.2-m01</exclude>
                                            <exclude>com.atlassian.confluence:confluence-rest-client:jar:5.7-m1</exclude>
                                            <exclude>rhino:js:jar:1.5R4-RC3</exclude>
                                            <exclude>com.atlassian.confluence:atlassian-confluence-pageobjects:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.selenium:atlassian-pageobjects-elements:jar:2.2-m01</exclude>
                                            <exclude>com.atlassian.jira:jira-rest-java-client-core:jar:2.0.0-m25</exclude>
                                            <exclude>com.atlassian.confluence:confluence-webdriver-support:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence-bucket:jar:5.7-m1</exclude>
                                            <exclude>com.atlassian.confluence:confluence-rest-serialization:jar:5.7-m1</exclude>
                                        </excludes>
                                    </banVersionDeps>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <id>enforce-banned-dependencies</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes>
                                        <exclude>*:google-collections</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <issueManagement>
        <system>Jira</system>
        <url>https://ecosystem.atlassian.net/browse/APL</url>
    </issueManagement>
    <ciManagement>
        <system>Bamboo</system>
        <url>https://ecosystem-bamboo.internal.atlassian.com/browse/APL</url>
    </ciManagement>
    <scm>
        <connection>scm:git:git@bitbucket.org:atlassian/application-links.git</connection>
        <developerConnection>scm:git:git@bitbucket.org:atlassian/application-links.git</developerConnection>
        <url>https://bitbucket.org/atlassian/application-links</url>
        <tag>applinks-parent-4.3.10</tag>
    </scm>

</project>
