<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">

    <!--
        This version of confluence-webdriver-pageobjects is compatible with Confluence versions:
         * 6.0.x
    -->

    <parent>
        <groupId>com.atlassian.pom</groupId>
        <artifactId>public-pom</artifactId>
        <version>3.0.92</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <name>Confluence WebDriver PageObjects</name>
    <groupId>com.atlassian.confluence</groupId>
    <artifactId>confluence-webdriver-pageobjects</artifactId>
    <version>4.0.18</version>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.9</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.3.2</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${hamcrest.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>13.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.selenium</groupId>
                <artifactId>atlassian-pageobjects-elements</artifactId>
                <version>${atlassian.selenium.and.webdriver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20090211</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.fugue</groupId>
                <artifactId>fugue</artifactId>
                <version>2.2.0</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit-dep</artifactId>
                <version>4.10</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>1.11</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.annotations</groupId>
                <artifactId>atlassian-annotations</artifactId>
                <version>0.11</version>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.htmlunit</groupId>
                <artifactId>htmlunit</artifactId>
                <version>2.14</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.3.6</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.util.concurrent</groupId>
                <artifactId>atlassian-util-concurrent</artifactId>
                <version>2.4.2</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.7</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>3.0-rc2</version>
            </dependency>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>1.4-full</version>
            </dependency>
            <dependency>
                <groupId>com.atlassian.sal</groupId>
                <artifactId>sal-api</artifactId>
                <version>2.13.3</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>1.4.01</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>com.atlassian.confluence</groupId>
            <artifactId>confluence-test-utils</artifactId>
            <version>${confluence-test-utils.version}</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.confluence</groupId>
            <artifactId>confluence-java-api</artifactId>
            <version>${confluence.version}</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins</groupId>
            <artifactId>atlassian-plugins-api</artifactId>
            <version>4.0.0-m015</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.bundles</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit-dep</artifactId>
            <version>${junit-dep.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>${hamcrest.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>${hamcrest.version}</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.selenium</groupId>
            <artifactId>atlassian-webdriver-core</artifactId>
            <version>${atlassian.selenium.and.webdriver.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.collections</groupId>
                    <artifactId>google-collections</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.bundles</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.selenium</groupId>
            <artifactId>atlassian-pageobjects-elements</artifactId>
            <version>${atlassian.selenium.and.webdriver.version}</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.upm</groupId>
            <artifactId>atlassian-universal-plugin-manager-pageobjects</artifactId>
            <version>${upm.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.collections</groupId>
                    <artifactId>google-collections</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.bundles</groupId>
                    <artifactId>google-collections</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.selenium</groupId>
                    <artifactId>atlassian-pageobjects-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <!-- Need this one to run tests which use UPM PageObjects -->
            <groupId>com.atlassian.upm</groupId>
            <artifactId>atlassian-universal-plugin-manager-javascript-tests</artifactId>
            <version>${upm.version}</version>
        </dependency>
        <dependency>
            <!-- Technically this artifact is deprecated, but not going anywhere. Agreed with Ben Wong that we can use it -->
            <groupId>com.atlassian.aui</groupId>
            <artifactId>atlassian-aui-pageobjects</artifactId>
            <version>${aui.version}</version>
        </dependency>

        <!--
            We went exclude crazy elsewhere to make sure commons-lang < 2.6 isn't transitively included anywhere. Now we explicitly include it here. We have to do this - sometimes 2.4 will get picked due to arbitrary (and crazy) Maven rules - the end result is certain code paths in WebDriver code need 2.5+... -->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <scope>runtime</scope>
        </dependency>


        <!-- interim solution until JSErrorCollector is updated to use JUnit 4.11, and newer selenium FF -->
        <dependency>
            <groupId>net.jsourcerer.webdriver</groupId>
            <artifactId>JSErrorCollector</artifactId>
            <version>0.5-atlassian-2</version>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-firefox-driver</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- interim solution until JSErrorCollector is updated to use JUnit 4.11, and newer selenium FF -->
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <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.selenium:atlassian-pageobjects-elements</exclude>
                                            <exclude>com.atlassian.selenium:atlassian-webdriver-core</exclude>
                                            <exclude>com.atlassian.plugins:atlassian-plugins-api</exclude>
                                        </excludes>
                                    </banVersionDeps>
                                </rules>
                            </configuration>
                        </execution>
                        <execution>
                            <id>enforce-dependency-convergence</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <dependencyConvergence />
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <properties>
        <confluence.version>5.7</confluence.version>
        <atlassian.selenium.and.webdriver.version>2.3-m6</atlassian.selenium.and.webdriver.version>

        <!-- Please don't use version ranges here: if we do, any consumers of confluence-stateless-test-runner
             who want a reproducible dependency tree will have to declare and version all of its transitive dependencies.
             See CONFDEV-33989. -->
        <confluence-test-utils.version>2.0.0</confluence-test-utils.version>

        <aui.version>5.7.20</aui.version>
        <upm.version>2.18.4</upm.version>
        <junit-dep.version>4.10</junit-dep.version>
        <hamcrest.version>1.3</hamcrest.version>

        <jdkLevel>1.8</jdkLevel>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <!-- Enforcer rule for release profile -->
        <requireJavaVersion>1.8.0</requireJavaVersion>
    </properties>

    <scm>
        <connection>scm:git:ssh://git@stash.atlassian.com:7997/conf/confluence-webdriver-pageobjects.git</connection>
        <developerConnection>scm:git:ssh://git@stash.atlassian.com:7997/conf/confluence-webdriver-pageobjects.git</developerConnection>
        <tag>confluence-webdriver-pageobjects-4.0.18</tag>
    </scm>

</project>
