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

    <!--

    When releasing a new version of Bonfire, don't forget to update the version related properties as well

    -->
    <version>2.7.0.1</version>

    <properties>

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

        <maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>

        <!-- 5.0.X test version -->
        <jira50.version>5.0</jira50.version>
        <jira50.data.version>5.0</jira50.data.version>

        <!-- 5.1.X test version -->
        <jira51.version>5.1</jira51.version>
        <jira51.data.version>5.1</jira51.data.version>

        <!-- 5.2.X test version -->
        <jira52.version>5.2</jira52.version>
        <jira52.data.version>5.2</jira52.data.version>
        
        <!-- 6.0 -->
        <jira60.version>6.0</jira60.version>
        <jira60.data.version>6.0</jira60.data.version>

        <!-- 6.1 master -->
        <jiraMaster.version>6.1-SNAPSHOT</jiraMaster.version>
        <jiraMaster.data.version>6.1-SNAPSHOT</jiraMaster.data.version>

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

        <jira.ondemand.version>6.0</jira.ondemand.version>

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

    </properties>


    <modelVersion>4.0.0</modelVersion>

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

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

    <organization>
        <name>Atlassian</name>
        <url>http://www.atlassian.com/</url>
    </organization>

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

    <scm>
        <connection>scm:hg:ssh://hg@bitbucket.org/atlassian/bonfire/</connection>
        <developerConnection>scm:hg:ssh://hg@bitbucket.org/atlassian/bonfire/</developerConnection>
        <url>ssh://hg@bitbucket.org/atlassian/bonfire/</url>
    </scm>

    <modules>
        <module>browser</module>
        <module>plugin-jira5</module>
        <module>plugin</module>
        <module>plugin-func-tests</module>
  </modules>

    <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 {
                                        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>3.9.1</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>hgchangeset</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <revisionOnScmFailure>unknown</revisionOnScmFailure>
                    </configuration>
                </plugin>

                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.6</version>
                    <dependencies>
                        <dependency>
                            <groupId>ant-contrib</groupId>
                            <artifactId>ant-contrib</artifactId>
                            <version>20020829</version>
                        </dependency>
                    </dependencies>
                </plugin>


    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>1.3-atlassian-1.11</version>
        <configuration>
            <acceptPomPackaging>true</acceptPomPackaging>
            <missingFile>${basedir}/third-party-licensing/missing-license-maven-dependencies.properties</missingFile>
            <excludedGroups>com.atlassian.browsers</excludedGroups>
            <excludedLicenses>GNU General Public License 2|GNU General Public License 3</excludedLicenses>
            <outputDirectory>third-party-licensing</outputDirectory>
            <thirdPartyFilename>bom.csv</thirdPartyFilename>
            <useMissingFile>true</useMissingFile>
            <useRepositoryMissingFiles>false</useRepositoryMissingFiles>
            <force>true</force>
            <deployMissingFile>false</deployMissingFile>
            <failIfWarning>true</failIfWarning>
            <aggregatorOnlyMode>true</aggregatorOnlyMode>
            <nonMavenDependenciesFile>third-party-licensing/missing-non-maven-dependencies.properties</nonMavenDependenciesFile>
            <licensesDirectory>licenses</licensesDirectory>  <!-- or your license directory -->
            <excludedScopes>provided</excludedScopes> 
            <ignoredArtifactsTrees>com.atlassian.jira:atlassian-jira-pageobjects,com.atlassian.jira.plugins:jira-plugin-test-resources,com.atlassian.jira:jira-func-tests</ignoredArtifactsTrees>
            <licenseMerges>
                <licenseMerge>Apache License 2.0|Apache License, version 2.0|Apache Software License - Version 2.0|Apache License|Apache 2.0|Apache 2.0 License|Apache License Version 2.0|Apache 2|Apache v2|The Apache License|Apache Software Licenses|The Apache Software License, Version 2.0|Apache License, Version 2.0|ASF 2.0</licenseMerge>
                <licenseMerge>Apache License 1.1|Apache Software License, Version 1.1</licenseMerge>
                <licenseMerge>Creative Commons Attribution License 2.5|Creative Commons Attribution 2.5</licenseMerge>
                <licenseMerge>Atlassian 3.0 End User License Agreement|Atlassian End User License</licenseMerge>
                <licenseMerge>BSD License|BSD|BSD-like|BSD Licence|New BSD License|BSD Style|BSD style|The BSD License|BSD license|BSD licence</licenseMerge>
                <licenseMerge>GNU Lesser General Public License|GNU LESSER GENERAL PUBLIC LICENSE|LGPL|lgpl</licenseMerge>
                <licenseMerge>GNU Lesser General Public License 2.1|GNU Lesser General Public License (LGPL), Version 2.1|LGPL 2.1 License|GNU General Public Library|LGPL 2.1|GNU Lesser General Public License, version 2.1|GNU Lesser General Public License, Version 2.1|LGPL, version 2.1</licenseMerge>
                <licenseMerge>Eclipse Public License 1.0|Eclipse Public License|Eclipse Public License, Version 1.0|Eclipse Public License - v 1.0</licenseMerge>
                <licenseMerge>Common Public License 1.0|Common Public License Version 1.0</licenseMerge>
                <licenseMerge>Common Public License 1.1|CDDL 1.1</licenseMerge>
                <licenseMerge>MIT License| MIT license|The MIT license|The MIT License</licenseMerge>
                <licenseMerge>GNU General Public License 2|The GNU General Public License, Version 2</licenseMerge>
                <licenseMerge>GNU General Public License 3|The GNU General Public License, Version 3</licenseMerge>
                <licenseMerge>Mozilla Public License 1.1|Mozilla Public License version 1.1|Mozilla Public License 1.1 (MPL 1.1)|MPL 1.1</licenseMerge>
                <licenseMerge>GNU General Public License 2 - classpath exception|GPLv2 with classpath exception|GPLv2+CE|GPL2 w/ CPE</licenseMerge>
                <licenseMerge>Common Development and Distribution License 1.0|CDDL 1.0|CDDL + GPLv2 with classpath exception|CDDL License|CDDL|cddl|Common Development and Distribution License (CDDL) v1.0|COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</licenseMerge>
            </licenseMerges>
        </configuration>
    </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.groovy.maven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <version>1.0-rc-5</version>
            </plugin>
        </plugins>

    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>atlassian-jira</artifactId>
                <version>5.0</version>  <!-- we compile against older version to ensure compatibility and avoid runtime exceptions -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-rest-plugin</artifactId>
                <version>5.0</version>  <!-- we compile against older version to ensure compatibility and avoid runtime exceptions -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.plugins.rest</groupId>
                <artifactId>com.atlassian.jersey-library</artifactId>
                <version>2.4.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-func-tests</artifactId>
                <version>5.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.8.1</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
