<?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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.atlassian.analytics</groupId>
        <artifactId>analytics-project</artifactId>
        <version>9.2.2</version>
    </parent>

    <artifactId>analytics-client</artifactId>
    <packaging>atlassian-plugin</packaging>

    <name>Analytics Client Plugin</name>
    <description>Plugin to send analytics events</description>

    <properties>
        <refapp.test.version>${platform.version}</refapp.test.version>
        <confluence.version>9.0.3</confluence.version>
        <confluence.test.version>${confluence.version}</confluence.test.version>
        <confluence.data.version>${confluence.test.version}</confluence.data.version>
        <http.confluence.port>1990</http.confluence.port>
        <context.confluence.path>confluence</context.confluence.path>
        <it.includes.confluence>it/**/confluence/*Test.java</it.includes.confluence>
        <amps.username>admin</amps.username>
        <amps.password>admin</amps.password>
        <jira.test.version>${jira.version}</jira.test.version>
        <jira.data.version>${jira.test.version}</jira.data.version>
        <context.jira.path>jira</context.jira.path>
        <http.jira.port>2990</http.jira.port>
        <fecru.version>4.7.0-20190214100246</fecru.version>
        <fecru.test.version>${fecru.version}</fecru.test.version>
        <fecru.data.version>${fecru.test.version}</fecru.data.version>
        <bamboo.version>6.10.6</bamboo.version>
        <bamboo.test.version>${bamboo.version}</bamboo.test.version>
        <bamboo.data.version>7.2.3-license-2023</bamboo.data.version>
        <bitbucket.version>8.4.1</bitbucket.version>
        <bitbucket.test.version>${bitbucket.version}</bitbucket.test.version>
        <bitbucket.data.version>${bitbucket.test.version}</bitbucket.data.version>
        <http.bitbucket.port>7990</http.bitbucket.port>
        <context.bitbucket.path>bitbucket</context.bitbucket.path>
        <xvfb.enable>true</xvfb.enable>

        <crowd.version>4.4.3</crowd.version>
        <crowd.test.version>${crowd.version}</crowd.test.version>
        <crowd.data.version>${crowd.test.version}</crowd.data.version>
        <sonar.coverage.jacoco.xmlReportPaths>
            ${project.basedir}/../${jacoco.report.file}
        </sonar.coverage.jacoco.xmlReportPaths>
        <config.version>2.0.0-m03</config.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.atlassian.analytics</groupId>
            <artifactId>analytics-client-exported</artifactId>
            <scope>compile</scope>
            <!-- dependencies required by API should be provided for plugin -->
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.analytics</groupId>
            <artifactId>analytics-client-lib</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.analytics</groupId>
            <artifactId>analytics-events</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.analytics</groupId>
            <artifactId>analytics-client-s3</artifactId>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.amazonaws</groupId>
                    <artifactId>aws-java-sdk</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.scheduler</groupId>
            <artifactId>atlassian-scheduler-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.analytics</groupId>
            <artifactId>analytics-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.confluence</groupId>
            <artifactId>confluence</artifactId>
            <version>${confluence.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.bitbucket.server</groupId>
            <artifactId>bitbucket-api</artifactId>
            <version>${bitbucket.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.bitbucket.server</groupId>
            <artifactId>bitbucket-mirroring-mirror</artifactId>
            <version>${bitbucket.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>${jira.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.google.protobuf</groupId>
                    <artifactId>protobuf-java</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>${jira.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>hsqldb</groupId>
                    <artifactId>hsqldb</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-beanutils</groupId>
                    <artifactId>commons-beanutils</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-compress</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jcl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk15on</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.thoughtworks.xstream</groupId>
                    <artifactId>xstream</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.jdom</groupId>
                    <artifactId>jdom</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.thoughtworks.xstream</groupId>
                    <artifactId>xstream</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>jdom</groupId>
                    <artifactId>jdom</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.fisheye</groupId>
            <artifactId>atlassian-fisheye-api</artifactId>
            <version>${fecru.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.atlassian.plugins.rest</groupId>
                    <artifactId>atlassian-rest-common</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.crowd</groupId>
            <artifactId>crowd-server-api</artifactId>
            <version>${crowd.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.bamboo</groupId>
            <artifactId>atlassian-bamboo-api</artifactId>
            <version>${bamboo.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.atlassian.user</groupId>
                    <artifactId>atlassian-user-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.user</groupId>
                    <artifactId>atlassian-user-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-beanutils</groupId>
                    <artifactId>commons-beanutils</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.struts</groupId>
                    <artifactId>struts2-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.sal</groupId>
            <artifactId>sal-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.user</groupId>
            <artifactId>atlassian-user</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- REST API -->
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins.rest</groupId>
            <artifactId>atlassian-rest-v2-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.templaterenderer</groupId>
            <artifactId>atlassian-template-renderer-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.config</groupId>
            <artifactId>atlassian-config</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.core</groupId>
            <artifactId>atlassian-core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.extras</groupId>
            <artifactId>atlassian-extras-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <!-- enforcing older version of atlassian-event as confluence still relies on com.atlassian.event.Event -->
            <groupId>com.atlassian.event</groupId>
            <artifactId>atlassian-event</artifactId>
            <version>5.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-jcl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.osgi</groupId>
            <artifactId>spring-osgi-core</artifactId>
            <version>1.2.1</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>org.springframework.context</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- BundleContext hack to allow Stash to shutdown cleanly -->
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.framework</artifactId>
            <version>4.0.3</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>io.atlassian.util.concurrent</groupId>
            <artifactId>atlassian-util-concurrent</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-reload4j</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <!--Used for testing-->
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>5.4.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.cache</groupId>
            <artifactId>atlassian-cache-ehcache</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.selenium</groupId>
            <artifactId>atlassian-pageobjects-elements</artifactId>
            <version>${atlassian.webdriver.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.testutils</groupId>
            <artifactId>atlassian-test-annotations</artifactId>
            <version>2.5</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
        <dependency>
            <groupId>org.instancio</groupId>
            <artifactId>instancio-junit</artifactId>
            <version>${instancio.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins</groupId>
            <artifactId>atlassian-plugins-osgi-javaconfig</artifactId>
            <version>0.2.1</version>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-common</artifactId>
            <version>2.34</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>js/programmatic/**</exclude>
                </excludes>
            </resource>

        </resources>
        <plugins>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>amps-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <enableQuickReload>true</enableQuickReload>
                    <closureOptions>
                        <languageOut>ECMASCRIPT5</languageOut>
                    </closureOptions>
                    <banningExcludes>
                        <exclude>com.fasterxml.jackson.core:jackson-annotations</exclude>
                        <exclude>com.fasterxml.jackson.core:jackson-databind</exclude>
                        <exclude>com.google.code.gson:gson</exclude>
                        <exclude>com.atlassian.analytics:analytics-client-exported</exclude>
                    </banningExcludes>
                    <includedFeModuleManifests>
                        <includedFeModuleManifest>${project.basedir}/package.json</includedFeModuleManifest>
                        <includedFeModuleManifest>${project.basedir}/package-lock.json</includedFeModuleManifest>
                        <includedFeModuleManifest>${project.basedir}/event-checklist/package.json</includedFeModuleManifest>
                        <includedFeModuleManifest>${project.basedir}/event-checklist/package-lock.json</includedFeModuleManifest>
                        <includedFeModuleManifest>${project.basedir}/src/main/resources/js/programmatic/package.json</includedFeModuleManifest>
                        <includedFeModuleManifest>${project.basedir}/src/main/resources/js/programmatic/package-lock.json</includedFeModuleManifest>
                    </includedFeModuleManifests>
                    <feManifestAssociations>
                        <feManifestAssociation>
                            <packageName>@atlassian/dc.shared.atlassian-analytics.analytics-client</packageName>
                            <manuallyVerifiedEveryFileHasItsDependenciesDeclaredInTheManifest>
                                <outputDirectoryFiles>
                                    js/programmatic-analytics-init-min.js,
                                    js/programmatic-analytics-init.js,
                                    js/events-logged.js,
                                    js/events-logged-min.js,
                                    js/atlassian-analytics.js,
                                    js/atlassian-analytics-min.js,
                                    js/store-wrapper.js,
                                    js/store-wrapper-min.js,
                                    js/enable-analytics.js,
                                    js/enable-analytics-min.js,
                                    js/page-visibility.js,
                                    js/page-visibility-min.js,
                                    js/policy-update-init.js,
                                    js/policy-update-init-min.js,
                                    js/event-report.js,
                                    js/event-report-min.js,
                                    js/whitelist-report.js,
                                    js/whitelist-report-min.js,
                                    js/policy-update.js,
                                    js/policy-update-min.js,
                                    js/user-activity-xhr-header.js,
                                    js/user-activity-xhr-header-min.js
                                </outputDirectoryFiles>
                            </manuallyVerifiedEveryFileHasItsDependenciesDeclaredInTheManifest>
                        </feManifestAssociation>
                        <feManifestAssociation>
                            <packageName>@atlassian/dc.shared.atlassian-analytics.programmatic-analytics</packageName>
                            <manuallyVerifiedEveryFileHasItsDependenciesDeclaredInTheManifest>
                                <outputDirectoryFiles>
                                    js/programmatic-analytics-min.js,
                                    js/programmatic-analytics.js
                                </outputDirectoryFiles>
                            </manuallyVerifiedEveryFileHasItsDependenciesDeclaredInTheManifest>
                        </feManifestAssociation>
                        <feManifestAssociation>
                            <packageName>@atlassian/dc.shared.atlassian-analytics.event-checklist</packageName>
                            <manuallyVerifiedEveryFileHasItsDependenciesDeclaredInTheManifest>
                                <outputDirectoryFiles>
                                    lib/bundle.js,
                                    lib/bundle-min.js
                                </outputDirectoryFiles>
                            </manuallyVerifiedEveryFileHasItsDependenciesDeclaredInTheManifest>
                        </feManifestAssociation>
                    </feManifestAssociations>
                    <instructions>
                        <Atlassian-Plugin-Key>${project.groupId}.${project.artifactId}</Atlassian-Plugin-Key>
                        <Export-Package>
                            com.atlassian.analytics.client;version="${project.version}",
                            com.atlassian.analytics.client.api;version="${project.version}",
                            com.atlassian.analytics.client.api.*;version="${project.version}",
                        </Export-Package>
                        <Import-Package>
                            !com.conversantmedia.*,
                            !com.lmax.disruptor.*,
                            !com.fasterxml.jackson.dataformat.*,
                            !javax.jms.*,
                            !javax.mail.*,
                            !org.apache.commons.compress.*,
                            !org.apache.commons.csv.*,
                            !org.apache.kafka.*,
                            !org.codehaus.stax2.*,
                            !org.jctools.*,
                            !org.joda.convert.*,
                            !org.joda.time.*,
                            !org.fusesource.jansi.*,
                            !org.xerial.snappy.*,
                            !org.zeromq.*,
                            !sun.misc.*,
                            !scala.util,
                            org.apache.logging.log4j.util.internal.*;resolution:=optional,
                            !com.amazonaws.metrics.internal.cloudwatch,
                            !com.amazonaws.services.securitytoken.internal,
                            !com.sun.org.apache.xpath.internal,
                            !kotlin,
                            !org.bouncycastle.jce.provider,
                            com.atlassian.application.*;resolution:=optional,
                            com.atlassian.bamboo.*;resolution:=optional,
                            com.atlassian.bitbucket.*;resolution:=optional,
                            com.atlassian.bonnie.*;resolution:=optional,
                            com.atlassian.confluence.*;resolution:=optional,
                            com.atlassian.core.*;resolution:=optional,
                            com.atlassian.crowd.*;resolution:=optional,
                            com.atlassian.crucible.*;resolution:=optional,
                            com.atlassian.extras.*;resolution:=optional,
                            com.atlassian.fecru.*;resolution:=optional,
                            com.atlassian.jira.*;resolution:=optional,
                            com.atlassian.user.*;resolution:=optional,
                            org.ofbiz.*;resolution:=optional,
                            com.ctc.wstx.stax;resolution:=optional,
                            *
                        </Import-Package>
                    </instructions>
                    <products>
                        <product>
                            <id>refapp</id>
                            <instanceId>refapp</instanceId>
                            <version>${platform.version}</version>
                            <httpPort>5990</httpPort>
                            <ajpPort>8011</ajpPort>
                            <output>${project.build.directory}/refapp.log</output>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>refapp</context.path>
                            </systemPropertyVariables>
                            <libArtifacts>
                                <libArtifact>
                                    <groupId>com.atlassian.analytics</groupId>
                                    <artifactId>analytics-api</artifactId>
                                    <version>${project.version}</version>
                                </libArtifact>
                                <!-- until product won't provide, added atlassian-config-internal temporarily. It will be removed after platform 7 adoption.-->
                                <libArtifact>
                                    <groupId>com.atlassian.config</groupId>
                                    <artifactId>atlassian-config</artifactId>
                                    <version>${config.version}</version>
                                </libArtifact>
                            </libArtifacts>
                        </product>
                        <product>
                            <id>bamboo</id>
                            <version>${bamboo.test.version}</version>
                            <productDataVersion>${bamboo.data.version}</productDataVersion>
                            <httpPort>6990</httpPort>
                            <ajpPort>8005</ajpPort>
                            <output>${project.build.directory}/bamboo.log</output>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>bamboo</context.path>
                            </systemPropertyVariables>
                        </product>
                        <product>
                            <id>crowd</id>
                            <version>${crowd.test.version}</version>
                            <productDataVersion>${crowd.data.version}</productDataVersion>
                            <httpPort>4990</httpPort>
                            <ajpPort>8006</ajpPort>
                            <output>${project.build.directory}/crowd.log</output>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>crowd</context.path>
                            </systemPropertyVariables>
                            <libArtifacts>
                                <libArtifact>
                                    <groupId>com.atlassian.analytics</groupId>
                                    <artifactId>analytics-api</artifactId>
                                    <version>${project.version}</version>
                                </libArtifact>
                                <!-- until product won't provide, added atlassian-config-internal temporarily. It will be removed after platform 7 adoption.-->
                                <libArtifact>
                                    <groupId>com.atlassian.config</groupId>
                                    <artifactId>atlassian-config</artifactId>
                                    <version>${config.version}</version>
                                </libArtifact>
                            </libArtifacts>
                        </product>
                        <product>
                            <id>fecru</id>
                            <version>${fecru.test.version}</version>
                            <productDataVersion>${fecru.data.version}</productDataVersion>
                            <httpPort>3990</httpPort>
                            <ajpPort>8007</ajpPort>
                            <output>${project.build.directory}/fecru.log</output>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>fecru</context.path>
                            </systemPropertyVariables>
                            <libArtifacts>
                                <libArtifact>
                                    <groupId>com.atlassian.analytics</groupId>
                                    <artifactId>analytics-api</artifactId>
                                    <version>${project.version}</version>
                                </libArtifact>
                                <!-- until product won't provide, added atlassian-config-internal temporarily. It will be removed after platform 7 adoption.-->
                                <libArtifact>
                                    <groupId>com.atlassian.config</groupId>
                                    <artifactId>atlassian-config</artifactId>
                                    <version>${config.version}</version>
                                </libArtifact>
                            </libArtifacts>
                        </product>
                        <product>
                            <id>bitbucket</id>
                            <version>${bitbucket.test.version}</version>
                            <productDataVersion>${bitbucket.data.version}</productDataVersion>
                            <httpPort>${http.bitbucket.port}</httpPort>
                            <ajpPort>8008</ajpPort>
                            <output>${project.build.directory}/bitbucket.log</output>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>${context.bitbucket.path}</context.path>
                                <johnson.spring.lifecycle.synchronousStartup>
                                    true
                                </johnson.spring.lifecycle.synchronousStartup>
                            </systemPropertyVariables>
                            <libArtifacts>
                                <libArtifact>
                                    <groupId>com.atlassian.analytics</groupId>
                                    <artifactId>analytics-api</artifactId>
                                    <version>${project.version}</version>
                                </libArtifact>
                                <!-- until product won't provide, added atlassian-config-internal temporarily. It will be removed after platform 7 adoption.-->
                                <libArtifact>
                                    <groupId>com.atlassian.config</groupId>
                                    <artifactId>atlassian-config</artifactId>
                                    <version>${config.version}</version>
                                </libArtifact>
                            </libArtifacts>
                        </product>
                        <product>
                            <id>jira</id>
                            <version>${jira.test.version}</version>
                            <dataVersion>${jira.data.version}</dataVersion>
                            <productDataVersion>${jira.data.version}</productDataVersion>
                            <httpPort>${http.jira.port}</httpPort>
                            <output>${project.build.directory}/jira.log</output>
                            <jvmArgs>
                                -Dcom.atlassian.jira.startup.LauncherContextListener.SYNCHRONOUS=true -Xmx4g
                            </jvmArgs>
                            <ajpPort>8009</ajpPort>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>${context.jira.path}</context.path>
                                <!-- See https://docs.atlassian.com/jira/jadm-docs-082/__setting_mail.mime.decodeparameters -->
                                <mail.mime.decodeparameters>true</mail.mime.decodeparameters>
                                <!-- For Tomcat 8.5.40 -->
                                <org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER>true</org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER>
                            </systemPropertyVariables>
                            <libArtifacts>
                                <libArtifact>
                                    <groupId>com.atlassian.analytics</groupId>
                                    <artifactId>analytics-api</artifactId>
                                    <version>${project.version}</version>
                                </libArtifact>
                                <!-- until product won't provide, added atlassian-config-internal temporarily. It will be removed after platform 7 adoption.-->
                                <libArtifact>
                                    <groupId>com.atlassian.config</groupId>
                                    <artifactId>atlassian-config</artifactId>
                                    <version>${config.version}</version>
                                </libArtifact>
                            </libArtifacts>
                        </product>
                        <product>
                            <id>confluence</id>
                            <version>${confluence.test.version}</version>
                            <productDataVersion>${confluence.data.version}</productDataVersion>
                            <httpPort>${http.confluence.port}</httpPort>
                            <ajpPort>8010</ajpPort>
                            <output>${project.build.directory}/confluence.log</output>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <context.path>${context.confluence.path}</context.path>
                            </systemPropertyVariables>
                            <libArtifacts>
                                <libArtifact>
                                    <groupId>com.atlassian.analytics</groupId>
                                    <artifactId>analytics-api</artifactId>
                                    <version>${project.version}</version>
                                </libArtifact>
                                <libArtifact>
                                    <groupId>com.atlassian.config</groupId>
                                    <artifactId>atlassian-config</artifactId>
                                    <version>${config.version}</version>
                                </libArtifact>
                            </libArtifacts>
                        </product>
                    </products>
                    <testGroups>
                        <testGroup>
                            <id>bitbucket-integration</id>
                            <productIds>
                                <productId>bitbucket</productId>
                            </productIds>
                            <includes>
                                <include>it/**/bitbucket/*Test.java</include>
                            </includes>
                        </testGroup>
                        <testGroup>
                            <id>jira-integration</id>
                            <productIds>
                                <productId>jira</productId>
                            </productIds>
                            <includes>
                                <include>it/**/jira/*Test.java</include>
                            </includes>
                        </testGroup>
                        <testGroup>
                            <id>confluence-integration</id>
                            <productIds>
                                <productId>confluence</productId>
                            </productIds>
                            <includes>
                                <include>${it.includes.confluence}</include>
                            </includes>
                        </testGroup>
                        <testGroup>
                            <id>bamboo-integration</id>
                            <productIds>
                                <productId>bamboo</productId>
                            </productIds>
                            <includes>
                                <include>it/**/bamboo/*Test.java</include>
                            </includes>
                        </testGroup>
                        <testGroup>
                            <id>crowd-integration</id>
                            <productIds>
                                <productId>crowd</productId>
                            </productIds>
                            <includes>
                                <include>it/**/crowd/*Test.java</include>
                            </includes>
                        </testGroup>
                        <testGroup>
                            <id>fecru-integration</id>
                            <productIds>
                                <productId>fecru</productId>
                            </productIds>
                            <includes>
                                <include>it/**/fecru/*Test.java</include>
                            </includes>
                        </testGroup>
                        <testGroup>
                            <id>refapp-integration</id>
                            <productIds>
                                <productId>refapp</productId>
                            </productIds>
                            <includes>
                                <include>it/**/refapp/*Test.java</include>
                            </includes>
                        </testGroup>
                    </testGroups>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-banned-dependencies</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <banTransitiveDependencies>
                                    <excludes>
                                        <exclude>*:*:*:*:provided</exclude>
                                        <exclude>*:*:*:*:test</exclude>
                                        <exclude>com.atlassian.analytics:analytics-client-lib</exclude>
                                        <exclude>com.atlassian.analytics:analytics-events</exclude>
                                        <exclude>com.atlassian.analytics:analytics-client-s3</exclude>
                                    </excludes>
                                </banTransitiveDependencies>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>it/**/*.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>0.0.29</version>
                <configuration>
                    <installDirectory>${project.build.directory}</installDirectory>
                    <skip>${skipNpm}</skip>
                </configuration>

                <executions>
                    <execution>
                        <id>install-node-and-npm</id>
                        <goals>
                            <goal>install-node-and-npm</goal>
                        </goals>
                        <configuration>
                            <nodeVersion>v10.24.1</nodeVersion>
                            <npmVersion>6.14.12</npmVersion>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm-install-analytics-client</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>ci</arguments>
                            <workingDirectory>${project.basedir}</workingDirectory>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm-install-js-programmatic</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>ci</arguments>
                            <workingDirectory>src/main/resources/js/programmatic</workingDirectory>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm-install-event-checklist</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>ci</arguments>
                            <workingDirectory>event-checklist</workingDirectory>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm-build-js-programmatic</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>run build-dev</arguments>
                            <workingDirectory>src/main/resources/js/programmatic</workingDirectory>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm-build-event-checklist</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>run build-aa</arguments>
                            <workingDirectory>event-checklist</workingDirectory>
                        </configuration>
                    </execution>

                    <execution>
                        <id>npm-test-event-checklist</id>
                        <phase>test</phase>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>run test</arguments>
                            <workingDirectory>event-checklist</workingDirectory>
                            <skip>${skipTests}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
