<?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>7.0.4-c9d9c943</version>
    </parent>

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

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

    <properties>
        <confluence.version>7.0.5</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.8.3</bamboo.version>
        <bamboo.test.version>${bamboo.version}</bamboo.test.version>
        <bamboo.data.version>7.2.3-license-2023</bamboo.data.version>
        <bitbucket.version>6.7.5</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>false</xvfb.enable>
        <xvfb.display>:0</xvfb.display>

        <crowd.version>4.0.5</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>
    </properties>

    <dependencies>
        <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.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <scope>provided</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>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.confluence</groupId>
            <artifactId>confluence</artifactId>
            <version>${confluence.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.thrift</groupId>
                    <artifactId>libthrift</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.thoughtworks.xstream</groupId>
                    <artifactId>xstream</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-compress</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.github.kristofa</groupId>
                    <artifactId>brave-web-servlet-filter</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.quartz-scheduler</groupId>
                    <artifactId>quartz</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.postgresql</groupId>
                    <artifactId>postgresql</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</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>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.datatype</groupId>
                    <artifactId>jackson-datatype-joda</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk15on</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.jdom</groupId>
                    <artifactId>jdom</artifactId>
                </exclusion>
            </exclusions>
        </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>
            </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>
        </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>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.sal</groupId>
            <artifactId>sal-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins</groupId>
            <artifactId>atlassian-plugins-webresource-plugin</artifactId>
            <version>3.1.9</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.user</groupId>
            <artifactId>atlassian-user</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- REST API -->
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins.rest</groupId>
            <artifactId>atlassian-rest-common</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.templaterenderer</groupId>
            <artifactId>atlassian-template-renderer-api</artifactId>
            <version>1.0.5</version>
            <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>
            <groupId>com.atlassian.event</groupId>
            <artifactId>atlassian-event</artifactId>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>commons-lang</groupId>
                    <artifactId>commons-lang</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <scope>provided</scope>
        </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.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <!--Used for testing-->
            <groupId>com.jayway.restassured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>2.4.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.cache</groupId>
            <artifactId>atlassian-cache-ehcache</artifactId>
            <version>4.0.3</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>
    </dependencies>

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

        </resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <!-- Should be net.alchim31.maven -->
                    <groupId>net.sf.alchim</groupId>
                    <artifactId>yuicompressor-maven-plugin</artifactId>
                    <!-- Should be 1.1 -->
                    <version>0.7.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>amps-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <enableQuickReload>true</enableQuickReload>
                    <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.ibm.uvm.*,
                            !com.sun.jdmk.*,
                            !javax.jmdns.*,
                            !javax.jms.*,
                            !nu.xom.*,
                            !org.apache.commons.compress.*,
                            !org.xerial.snappy.*,
                            !sun.misc.*,
                            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,
                            *
                        </Import-Package>
                    </instructions>
                    <products>
                        <product>
                            <id>bamboo</id>
                            <version>${bamboo.test.version}</version>
                            <productDataVersion>${bamboo.data.version}</productDataVersion>
                            <httpPort>6990</httpPort>
                            <ajpPort>8005</ajpPort>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <xvfb.display>${xvfb.display}</xvfb.display>
                                <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>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <xvfb.display>${xvfb.display}</xvfb.display>
                                <context.path>crowd</context.path>
                            </systemPropertyVariables>
                        </product>
                        <product>
                            <id>fecru</id>
                            <version>${fecru.test.version}</version>
                            <productDataVersion>${fecru.data.version}</productDataVersion>
                            <httpPort>3990</httpPort>
                            <ajpPort>8007</ajpPort>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <xvfb.display>${xvfb.display}</xvfb.display>
                                <context.path>fecru</context.path>
                            </systemPropertyVariables>
                        </product>
                        <product>
                            <id>bitbucket</id>
                            <version>${bitbucket.test.version}</version>
                            <productDataVersion>${bitbucket.data.version}</productDataVersion>
                            <httpPort>${http.bitbucket.port}</httpPort>
                            <ajpPort>8008</ajpPort>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <xvfb.display>${xvfb.display}</xvfb.display>
                                <context.path>${context.bitbucket.path}</context.path>
                                <johnson.spring.lifecycle.synchronousStartup>
                                    true
                                </johnson.spring.lifecycle.synchronousStartup>
                            </systemPropertyVariables>
                        </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>
                            <jvmArgs>
                                -Dcom.atlassian.jira.startup.LauncherContextListener.SYNCHRONOUS=true -Xmx2g
                            </jvmArgs>
                            <ajpPort>8009</ajpPort>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <xvfb.display>${xvfb.display}</xvfb.display>
                                <context.path>${context.jira.path}</context.path>
                            </systemPropertyVariables>
                        </product>
                        <product>
                            <id>confluence</id>
                            <version>${confluence.test.version}</version>
                            <productDataVersion>${confluence.data.version}</productDataVersion>
                            <httpPort>${http.confluence.port}</httpPort>
                            <ajpPort>8010</ajpPort>
                            <systemPropertyVariables>
                                <xvfb.enable>${xvfb.enable}</xvfb.enable>
                                <xvfb.display>${xvfb.display}</xvfb.display>
                                <context.path>${context.confluence.path}</context.path>
                            </systemPropertyVariables>
                        </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>
                    </testGroups>
                    <libArtifacts>
                        <libArtifact>
                            <groupId>com.atlassian.analytics</groupId>
                            <artifactId>analytics-api</artifactId>
                            <version>${project.version}</version>
                        </libArtifact>
                    </libArtifacts>
                </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>
                </configuration>

                <executions>
                    <execution>
                        <id>install-node-and-npm</id>
                        <goals>
                            <goal>install-node-and-npm</goal>
                        </goals>
                        <configuration>
                            <nodeVersion>v10.13.0</nodeVersion>
                            <npmVersion>6.4.1</npmVersion>
                        </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>
