<?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

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

    <groupId>com.atlassian.bonfire</groupId>
    <artifactId>atlassian-bonfire</artifactId>
    <!--
    When releasing a new version of Bonfire, don't forget to update the version related properties as well
    -->
    <version>2.9.1.48</version>
    <packaging>pom</packaging>

    <name>JIRA Capture Parent</name>
    <description>JIRA Capture allows for Agile Testing.</description>

    <modules>
        <module>browser</module>
        <module>jira-capture-desktop</module>
        <module>plugin-jira5</module>
        <module>plugin</module>
        <module>plugin-func-tests</module>
        <module>jira-capture-to-jira-bridge-parent</module>
        <module>jira-capture-od-acceptance-tests</module>
    </modules>

    <scm>
        <connection>scm:git:ssh://ssh://git@stash.atlassian.com:7997/jcap/jira-capture.git</connection>
        <developerConnection>scm:git:ssh://git@stash.atlassian.com:7997/jcap/jira-capture.git</developerConnection>
        <url>git:ssh://git@stash.atlassian.com:7997/jcap/jira-capture.git</url>
    </scm>

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

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

    <properties>
        <!-- specify in Bamboo build-->
        <ci.dev.channel/>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>

        <!-- 6.0 -->
        <jira60.version>6.0.8</jira60.version>
        <jira60.data.version>6.0.8</jira60.data.version>

        <!-- 6.1 -->
        <jira61.version>6.1.7</jira61.version>
        <jira61.data.version>6.1.7</jira61.data.version>

        <!-- 6.2 -->
        <jira62.version>6.2.5</jira62.version>
        <jira62.data.version>6.2.5</jira62.data.version>

        <!-- 6.3 -->
        <jira63.version>6.3.3.</jira63.version>
        <jira63.data.version>6.3.3</jira63.data.version>

        <!-- 6.4 -->
        <jira64.version>6.4-20150218.020637</jira64.version>
        <jira64.data.version>${jira64.version}</jira64.data.version>

        <jira65.version>6.5-20150218.030011</jira65.version>
        <jira65.data.version>${jira65.version}</jira65.data.version>

        <!-- master version -->
        <!--<jiraMaster.version>6.4-SNAPSHOT</jiraMaster.version>-->
        <jiraMaster.version>${jira64.version}</jiraMaster.version>
        <jiraMaster.data.version>${jiraMaster.version}</jiraMaster.data.version>

        <!-- compile against versions -->
        <jira.version>${jira60.version}</jira.version>
        <jira.compile.version>${jira.version}</jira.compile.version>
        <jira.data.version>${jira.version}</jira.data.version>
        <jira.pageobjects.version>${jira.version}</jira.pageobjects.version>
        <jira.rest.version>2.4.0</jira.rest.version>

        <!--<jira.ondemand.version>6.4-SNAPSHOT</jira.ondemand.version>-->
        <jira.ondemand.version>${jiraMaster.version}</jira.ondemand.version>

        <ao.version>0.19.7</ao.version>

        <amps.version>4.2.18</amps.version>
        <sal.version>2.10.23</sal.version>

        <analytics.version>2.28</analytics.version>
        <testkit.version>6.0.25</testkit.version>
        <junit.version>4.11</junit.version>

        <guava.version>10.0</guava.version>

        <atlassian.keystore.version>1.4</atlassian.keystore.version>

        <pocketknife.version>0.26</pocketknife.version>

        <!-- ####################################################################################### -->
        <!--
                NOTE: JIRA Capture can be build with Debug profile, which has some neat features:
                * loading changes in HTML / JavaScript from external (or shared) folder (see EchoProtocol.cs for #if blocks)

                In order to assembly such debug build, override the capture.build.config property (i.e. -Dcapture.build.config=Debug)
                Available options: Release, Debug, ShellDebug, RegistryDebug
        -->
        <!-- ####################################################################################### -->
        <capture.build.config>Release</capture.build.config>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.atlassian.analytics</groupId>
                <artifactId>analytics-api</artifactId>
                <version>${analytics.version}</version>
                <scope>provided</scope> <!-- https://jira.atlassian.com/browse/AA-68  -->
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-api</artifactId>
                <version>${jira.compile.version}</version> <!-- Compile against JIRA 6.0, the minimum supported JIRA version -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-core</artifactId>
                <version>${jira.compile.version}</version> <!-- Compile against JIRA 6.0, the minimum supported JIRA version -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-rest-plugin</artifactId>
                <version>${jira.compile.version}</version> <!-- Compile against JIRA 6.0, the minimum supported JIRA version -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugins.rest</groupId>
                <artifactId>com.atlassian.jersey-library</artifactId>
                <version>${jira.rest.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-func-tests</artifactId>
                <version>${jira.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.collections</groupId>
                        <artifactId>google-collections</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-tests</artifactId>
                <version>${jira.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.sal</groupId>
                <artifactId>sal-core</artifactId>
                <version>${sal.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.sal</groupId>
                <artifactId>sal-api</artifactId>
                <version>${sal.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <!-- Old JIRA Dependencies are requiring 1.1.3.4-RC8 which breaks enforcer rules. Overriding here -->
                <groupId>xpp3</groupId>
                <artifactId>xpp3</artifactId>
                <version>1.1.4c</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <!--
                This plugin will generate the versionMajor / versionMinor build numbers based on the current project.version.

                This allows us to turn 1.2.3-SNAPSHOT into a real number like 1.2.3.{build.number}
                -->
                <plugin>
                    <groupId>org.codehaus.groovy.maven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>validate</phase>
                            <goals>
                                <goal>execute</goal>
                            </goals>
                            <configuration>
                                <source>
                                    /**
                                     * This is the main maven groovy script that is invoked to setup variables and the link to make other scripts easier to write
                                     */

                                    def isBlank(String s) {
                                        return s == null || s.trim().length() == 0;
                                    }


                                    def mvnVersion = project.version;
                                    def snapShotIndex = project.version.indexOf('-SNAPSHOT');
                                    if (snapShotIndex != -1)
                                    {
                                        mvnVersion = mvnVersion.substring(0, snapShotIndex);
                                    }
                                    def versions = mvnVersion.split('\\.');
                                    def versionMajor = versions[0];
                                    def versionMinor = versions[1];
                                    def versionBugFix = '';
                                    def versionBuild = '';

                                    if (versions.length > 2)
                                    {
                                        versionBugFix = versions[2];
                                    }

                                    def ciBuilderNumber = System.getProperty('ci.build.number');
                                    if (ciBuilderNumber != null)
                                    {
                                        versionBuild = ciBuilderNumber;
                                    }
                                    else if (snapShotIndex > 0)
                                    {
                                        versionBuild = "9999";
                                    } else {
                                        // If version has 4 digits, like 2.7.2.2 - use last version number
                                        if (versions.length > 3)
                                        {
                                            versionBuild = versions[3];
                                        }
                                        else
                                        {
                                            versionBuild = "0";
                                        }

                                    }

                                    project.properties.setProperty('versionMajor', versionMajor);
                                    project.properties.setProperty('versionMinor', versionMinor);
                                    project.properties.setProperty('versionBugFix', versionBugFix);
                                    project.properties.setProperty('versionBuild', versionBuild);

                                    // gets replaced a lot in files via @@build.version @@
                                    def buildVersion = versionMajor + "." + versionMinor;
                                    if (versionBugFix)
                                    {
                                        buildVersion += "." + versionBugFix;
                                    }
                                    if (versionBuild)
                                    {
                                        buildVersion += "." + versionBuild;
                                    }
                                    project.properties.setProperty('build.version', buildVersion);
                                    project.properties.setProperty('extension.version.directory', "${versionMajor}.${versionMinor}");

                                    /*
                                    If we have a pfx certificate password passed in then all good, otherwise you need to have
                                    defined it in your local environment so we can know how to sign
                                    */


                                    def ciPfxPassword = project.properties.getProperty('ci.pfx.password');

                                    log.info("ciPfxPassword=${ciPfxPassword}")
                                    if (isBlank(ciPfxPassword))
                                    {
                                        ciPfxPassword = System.getProperty('ci.pfx.password');
                                        if (isBlank(ciPfxPassword))
                                        {
                                            ciPfxPassword = System.getenv('CI_PFX_PASSWORD');
                                            if (isBlank(ciPfxPassword))
                                            {
                                                //fail('You must have CI_PFX_PASSWORD set or specified is via -Dci.pfx.password to build Bonfire');
                                                ciPfxPassword = "";
                                            }
                                        }
                                        project.properties.setProperty('ci.pfx.password', ciPfxPassword);
                                    }




                                    log.info("Maven properties in play");
                                    log.info("------------------------");
                                    def mvnProperties = new TreeMap(project.properties);
                                    mvnProperties.put('project.version', project.version);
                                    for (x in mvnProperties)
                                    {
                                        def val = mvnProperties.get(x.key);
                                        if (x.key.contains("password"))
                                        {
                                            val = "xxxxx";
                                        }
                                        log.info("\t${x.key} : ${val}");
                                    }
                                    log.info("------------------------");
                                </source>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-jira-plugin</artifactId>
                    <version>5.0.4</version>
                    <extensions>true</extensions>
                    <configuration>
                        <productVersion>${jira.version}</productVersion>
                        <productDataVersion>${jira.data.version}</productDataVersion>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>1.0</version>
                    <executions>
                        <execution>
                            <phase>validate</phase>
                            <goals>
                                <goal>create</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <revisionOnScmFailure>unknown</revisionOnScmFailure>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                    <dependencies>
                        <dependency>
                            <groupId>ant-contrib</groupId>
                            <artifactId>ant-contrib</artifactId>
                            <version>20020829</version>
                        </dependency>
                    </dependencies>
                </plugin>
				<plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>0.26</version>
                    <configuration>
                        <licensesDirectory>${user.dir}/third-party-licensing/licenses</licensesDirectory>
                        <bomFile>${user.dir}/third-party-licensing/bom.csv</bomFile>
                        <nonMavenDependenciesFile>${user.dir}/third-party-licensing/missing-non-maven-dependencies.properties</nonMavenDependenciesFile>
                        <ignoredArtifactsTrees>com.atlassian.jira:atlassian-jira-pageobjects,com.atlassian.jira.plugins:jira-plugin-test-resources,com.atlassian.jira:jira-func-tests</ignoredArtifactsTrees>
                        <ignoredMavenScopes>test,provided</ignoredMavenScopes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>maven-amps-dispatcher-plugin</artifactId>
                    <version>${amps.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.groovy.maven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <version>1.0-rc-5</version>
            </plugin>
        </plugins>
    </build>

</project>
