<?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.bitbucket.server</groupId>
        <artifactId>bitbucket-parent</artifactId>
        <version>9.4.4</version>
    </parent>

    <artifactId>bitbucket-it-parent</artifactId>
    <packaging>pom</packaging>

    <name>Bitbucket Server - Integration Test Parent</name>

    <modules>
        <module>common</module>
        <module>page-objects</module>
        <module>git-lfs-common</module>
        <module>hosting-test-util</module>
        <module>dcm</module>
        <module>javascript-tests</module>
        <module>licensed-plugin</module>
        <module>mirror</module>
        <module>test-support-plugin</module>
        <module>test-external-plugin</module>
    </modules>

    <properties>
        <license.scope>test</license.scope>
        <atlassian.org.osgi.framework.bootdelegation>
            jdk.*,
            weblogic,weblogic.*,
            META-INF.services,
            com.yourkit,com.yourkit.*,
            com.chronon,com.chronon.*,
            com.jprofiler,com.jprofiler.*,
            org.apache.xerces,org.apache.xerces.*,
            org.apache.xalan,org.apache.xalan.*,
            sun.*,
            com.sun.xml.bind.v2,
            com.icl.saxon,
            com_atlassian_clover,
            org.openclover,org.openclover.*
        </atlassian.org.osgi.framework.bootdelegation>
        <!-- Give func tests Stash instances more time to get the AO models registered. Slow or memory-constrained
             VMs can cause AO to give up too soon -->
        <activeobjects.servicefactory.config.timeout>60000</activeobjects.servicefactory.config.timeout>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.atlassian.integration.jira</groupId>
                <artifactId>page-objects</artifactId>
                <version>${jira.integration.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.atlassian.maven.plugins</groupId>
                    <artifactId>bitbucket-maven-plugin</artifactId>
                    <configuration>
                        <skipITs>${skipITs}</skipITs>
                        <skipTests>${skipITs}</skipTests>
                        <systemPropertyVariables>
                            <!-- As of Applinks 9.1.4, localhost URLs are not allowed to be used as applinks (see VULN-940591) -->
                            <applinks.allow.all.hosts>true</applinks.allow.all.hosts>

                            <!-- Enable features that are disabled by default, so they can actually be tested -->
                            <feature.public.access>true</feature.public.access>
                            <feature.hook.scripts>true</feature.hook.scripts>
                        </systemPropertyVariables>
                        <enableDevToolbox>false</enableDevToolbox>
                    </configuration>
                    <executions>
                        <execution>
                            <id>js-enforcement</id>
                            <phase>none</phase>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <!-- There are no unit tests below this module, only integration tests. Surefire is used to run
                             the unit tests, and Failsafe is used to run the integration tests. So we can fully disable
                             the Surefire plugin below here; it's not necessary. -->
                        <excludes>
                            <exclude>it/**/*.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <!-- Bind skipping integration tests to skipITs instead of skipTests. This needs to be configured
                         in addition to skipITs on bitbucekt-maven-plugin to keep AMPS and Failsafe in sync on whether
                         integration tests should be run or not. -->
                    <skipTests>${skipITs}</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- enables tracking flaky tests in JIRA -->
            <id>track-flaky-tests</id>
            <properties>
                <!--default tracking flaky tests disabled-->
                <flakyTracking.enableFlakyTracking>false</flakyTracking.enableFlakyTracking>
                <flakyTracking.flakyTestRerunCount>0</flakyTracking.flakyTestRerunCount>
                <flakyTracking.moduleFrom>${project.artifactId}</flakyTracking.moduleFrom>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>com.atlassian</groupId>
                    <artifactId>flaky-test-reporter</artifactId>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>jakarta.inject</groupId>
                    <artifactId>jakarta.inject-api</artifactId>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-resources-plugin</artifactId>
                            <executions>
                                <execution>
                                    <id>copy-flaky-issuecreator-config</id>
                                    <phase>generate-test-sources</phase>
                                    <goals>
                                        <goal>copy-resources</goal>
                                    </goals>
                                    <configuration>
                                        <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
                                        <resources>
                                            <resource>
                                                <directory>${maven.multiModuleProjectDirectory}/etc</directory>
                                                <includes>
                                                    <include>flaky_issuecreator_config.json</include>
                                                </includes>
                                            </resource>
                                        </resources>
                                    </configuration>
                                </execution>
                            </executions>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-failsafe-plugin</artifactId>
                            <configuration>
                                <properties>
                                    <property>
                                        <name>listener</name>
                                        <value>com.atlassian.test.reporting.JUnitFlakyTestListener</value>
                                    </property>
                                </properties>
                                <rerunFailingTestsCount>${flakyTracking.flakyTestRerunCount}</rerunFailingTestsCount>
                                <systemPropertyVariables>
                                    <module>${flakyTracking.moduleFrom}</module>
                                    <junitflakylistener.runnerId>${env.bamboo_buildResultKey}</junitflakylistener.runnerId>
                                    <junitflakylistener.branchName>${env.bamboo_planRepository_branchName}</junitflakylistener.branchName>
                                    <junitflakylistener.trackFlakyTest>${flakyTracking.enableFlakyTracking}</junitflakylistener.trackFlakyTest>
                                    <junitflakylistener.trackFlakyTestOnBranchesRegExp>master</junitflakylistener.trackFlakyTestOnBranchesRegExp>
                                    <junitflakylistener.failBranchWithNewFlakes>false</junitflakylistener.failBranchWithNewFlakes>
                                    <junitflakylistener.jiraUserName>${bamboo_dc_bot_username}</junitflakylistener.jiraUserName>
                                    <junitflakylistener.jiraPassword>${bamboo_dc_bot_password}</junitflakylistener.jiraPassword>
                                    <junitflakylistener.jiraProjectConfigPath>flaky_issuecreator_config.json</junitflakylistener.jiraProjectConfigPath>
                                </systemPropertyVariables>
                                <skipAfterFailureCount>20</skipAfterFailureCount>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <!-- builds all artifacts required for amps. The amps.prepare profile activated by the
                 release plugin (see maven-release-plugin) -->
            <id>amps.prepare</id>
            <modules>
                <module>plugin-test-resources</module>
            </modules>
        </profile>

        <!-- mvn install -Pit runs the integration tests -->
        <profile>
            <id>it</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
                <module>browser</module>
                <module>mesh</module>
                <module>rest</module>
                <module>hosting</module>
                <module>migration</module>
                <module>setup</module>
                <module>license-setup</module>
            </modules>
        </profile>
        <profile>
            <id>it.smoke</id>
            <modules>
                <module>smoke</module>
            </modules>
        </profile>
        <profile>
            <id>it.dcm</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
            </modules>
        </profile>
        <!-- During a release, make sure we transform all the poms -->
        <profile>
            <id>release-pom-transform</id>
            <modules>
                <module>installer</module>
                <module>pact</module>
                <module>smoke</module>
                <module>dev-resources</module>
                <module>kubernetes</module>
                <module>license-setup</module>
                <module>git-lfs-client</module>
                <module>git-lfs-s3</module>
                <module>bundled-search</module>
            </modules>
        </profile>
        <profile>
            <id>it.browser</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                     generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
                <module>browser</module>
            </modules>
        </profile>
        <profile>
            <id>it.dev-resources</id>
            <modules>
                <module>dev-resources</module>
            </modules>
        </profile>
        <profile>
            <id>it.rest</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                     generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
                <module>rest</module>
            </modules>
        </profile>
        <profile>
            <id>it.hosting</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                     generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
                <module>hosting</module>
            </modules>
        </profile>
        <profile>
            <id>it.setup</id>
            <modules>
                <module>setup</module>
            </modules>
        </profile>
        <profile>
            <id>it.migration</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                     generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
                <module>migration</module>
            </modules>
        </profile>
        <profile>
            <id>it.mirror</id>
            <modules>
                <module>plugin-test-resources</module>
            </modules>
        </profile>
        <profile>
            <id>it.mirror.browser</id>
            <modules>
                <module>plugin-test-resources</module>
            </modules>
        </profile>
        <profile>
            <id>it.mirror.setup</id>
            <modules>
                <module>plugin-test-resources</module>
            </modules>
        </profile>
        <profile>
            <id>it.clover</id>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>com.atlassian.maven.plugins</groupId>
                            <artifactId>clover-maven-plugin</artifactId>
                            <version>${clover.libversion}</version>
                            <configuration>
                                <distributedCoverage />
                            </configuration>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-failsafe-plugin</artifactId>
                            <configuration>
                                <systemProperties>
                                    <clover.server>true</clover.server>
                                    <clover.distributed.coverage>ON</clover.distributed.coverage>
                                </systemProperties>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>it.clustered</id>
            <activation>
                <property>
                    <name>it.clustered</name>
                </property>
            </activation>
            <properties>
                <search.port>9200</search.port>
                <haproxy.http.admin.port>7890</haproxy.http.admin.port>
                <haproxy.http.port>7990</haproxy.http.port>
                <haproxy.network.mode>host</haproxy.network.mode>
                <haproxy.proxy.host>localhost</haproxy.proxy.host>
                <haproxy.ssh.port>7999</haproxy.ssh.port>
                <node2.version>${project.version}</node2.version>
                <plugin.search.config.baseurl>http://localhost:${search.port}</plugin.search.config.baseurl>
                <zdu.enable.upgrade.mode>true</zdu.enable.upgrade.mode>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>validate</phase>
                                <id>parse-version</id>
                                <goals>
                                    <goal>parse-version</goal>
                                </goals>
                                <configuration>
                                    <propertyPrefix>parsedVersion</propertyPrefix>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>set-node-1-version</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <exportAntProperties>true</exportAntProperties>
                                    <target name="Set node1.version property">
                                        <condition property="baseVersion" value="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.0" else="${project.version}">
                                            <not>
                                                <equals arg1="${parsedVersion.incrementalVersion}" arg2="0" />
                                            </not>
                                        </condition>
                                        <condition property="node1.version" value="${baseVersion}">
                                            <not>
                                                <isset property="node1.version" />
                                            </not>
                                        </condition>
                                        <echo>node1.version: ${node1.version}</echo>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>io.fabric8</groupId>
                            <artifactId>docker-maven-plugin</artifactId>
                            <configuration>
                                <removeVolumes>true</removeVolumes>
                                <showLogs>true</showLogs>
                                <imagesMap>
                                    <search>
                                        <name>opensearchproject/opensearch:${opensearch.version}</name>
                                        <run>
                                            <ports>
                                                <port>${search.port}:9200</port>
                                            </ports>
                                            <env>
                                                <discovery.type>single-node</discovery.type>
                                                <DISABLE_SECURITY_PLUGIN>true</DISABLE_SECURITY_PLUGIN>
                                            </env>
                                        </run>
                                    </search>
                                    <haproxy>
                                        <name>haproxytech/haproxy-alpine:2.0</name>
                                        <run>
                                            <network>
                                                <mode>${haproxy.network.mode}</mode>
                                            </network>
                                            <volumes>
                                                <bind>
                                                    <volume>${project.basedir}:${project.basedir}</volume>
                                                </bind>
                                            </volumes>
                                            <entrypoint>
                                                <exec>
                                                    <arg>/bin/sh</arg>
                                                    <arg>-c</arg>
                                                    <!-- Intentionally not using CDATA here as there's a bug in
                                                         maven-release-plugin 2.5.3, a regex to replace whitespace in
                                                         AbstractRewritePomsPhase -->
                                                    <arg>
cat &gt;/usr/local/etc/haproxy/haproxy.cfg &lt;&lt;'CONFIG'
global
log /dev/log local0
maxconn     4000
daemon

defaults
log                     global
option                  dontlognull
option                  redispatch
retries                 3
timeout http-request    10s
timeout queue           1m
timeout connect         10s
timeout client          1m
timeout server          1m
timeout http-keep-alive 10s
timeout check           10s
maxconn                 3000
errorfile               408 /dev/null

frontend bitbucket_http_frontend
bind *:${haproxy.http.port}
default_backend bitbucket_http_backend

backend bitbucket_http_backend
mode http
cookie SRVNAME insert
option httpchk GET /bitbucket/status
option forwardfor
option http-server-close
balance roundrobin
server node1 ${haproxy.proxy.host}:7991 cookie node1 check inter 10000 rise 2 fall 5
server node2 ${haproxy.proxy.host}:7992 cookie node2 check inter 10000 rise 2 fall 5
# The following "backup" servers are just here to show the startup page when all nodes are starting up
server backup1 ${haproxy.proxy.host}:7991 backup
http-response set-header X-Server %s

frontend bitbucket_ssh_frontend
bind *:${haproxy.ssh.port}
default_backend bitbucket_ssh_backend
timeout client 15m
maxconn 50

backend bitbucket_ssh_backend
mode tcp
balance roundrobin
server node1 ${haproxy.proxy.host}:7997 check port 7997
server node2 ${haproxy.proxy.host}:7998 check port 7998
timeout server 15m

listen admin
mode http
bind *:${haproxy.http.admin.port}
stats enable
stats uri /
CONFIG
exec /docker-entrypoint.sh "haproxy" "-f" "/usr/local/etc/haproxy/haproxy.cfg"
                                                    </arg>
                                                    <arg>--</arg>
                                                </exec>
                                            </entrypoint>
                                            <wait>
                                                <http>
                                                    <method>GET</method>
                                                    <url>http://localhost:${haproxy.http.admin.port}/</url>
                                                </http>
                                                <time>60000</time>
                                            </wait>
                                        </run>
                                    </haproxy>
                                </imagesMap>
                            </configuration>
                            <executions>
                                <execution>
                                    <id>start</id>
                                    <phase>pre-integration-test</phase>
                                    <goals>
                                        <goal>build</goal>
                                        <goal>start</goal>
                                    </goals>
                                </execution>
                                <execution>
                                    <id>stop</id>
                                    <phase>post-integration-test</phase>
                                    <goals>
                                        <goal>stop</goal>
                                    </goals>
                                </execution>
                                <execution>
                                    <id>stop-clean</id>
                                    <phase>pre-clean</phase>
                                    <goals>
                                        <goal>stop</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>it.clustered.local</id>
            <activation>
                <property>
                    <name>it.clustered</name>
                    <value>local</value>
                </property>
            </activation>
            <properties>
                <jdbc.driver>org.postgresql.Driver</jdbc.driver>
                <jdbc.url>jdbc:postgresql:bitbucket</jdbc.url>
                <jdbc.user>bitbucket</jdbc.user>
                <jdbc.password>bitbucket</jdbc.password>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-dependency-plugin</artifactId>
                            <executions>
                                <execution>
                                    <id>copy-postgres-zip</id>
                                    <phase>package</phase>
                                    <goals>
                                        <goal>unpack</goal>
                                    </goals>
                                    <configuration>
                                        <artifactItems>
                                            <artifactItem>
                                                <groupId>com.atlassian.bitbucket.server</groupId>
                                                <artifactId>bitbucket-it-resources</artifactId>
                                                <classifier>postgres</classifier>
                                                <version>${project.version}</version>
                                                <type>zip</type>
                                                <includes>**/*</includes>
                                            </artifactItem>
                                        </artifactItems>
                                        <outputDirectory>${project.build.directory}</outputDirectory>
                                    </configuration>
                                </execution>
                            </executions>
                        </plugin>
                        <plugin>
                            <groupId>io.fabric8</groupId>
                            <artifactId>docker-maven-plugin</artifactId>
                            <configuration>
                                <imagesMap>
                                    <postgres>
                                        <!-- This should one of the supported versions, please refer to PostgresSqlSupportLevel -->
                                        <name>postgres:16</name>
                                        <run>
                                            <ports>
                                                <port>5432:5432</port>
                                            </ports>
                                            <env>
                                                <POSTGRES_USER>${jdbc.user}</POSTGRES_USER>
                                                <POSTGRES_PASSWORD>${jdbc.password}</POSTGRES_PASSWORD>
                                            </env>
                                            <volumes>
                                                <bind>
                                                    <volume>
                                                        ${project.build.directory}/postgres_data:/var/lib/postgresql/data
                                                    </volume>
                                                </bind>
                                            </volumes>
                                            <wait>
                                                <time>90000</time>
                                                <log>
                                                    (?s)(PostgreSQL init process complete|PostgreSQL Database directory appears to contain a database).*database system is ready to accept connections
                                                </log>
                                            </wait>
                                        </run>
                                    </postgres>
                                </imagesMap>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>it.clustered.notlinux</id>
            <activation>
                <os>
                    <name>!linux</name>
                </os>
                <property>
                    <name>it.clustered</name>
                </property>
            </activation>
            <properties>
                <!-- Host networking on platforms other than Linux means the container will use the networking of the
                     VM that is running Docker and not 'localhost'. Fall back to regular port mapping and start an extra
                     'proxy' container to forward requests to localhost inside the Selenium container to the host -->
                <haproxy.network.mode>bridge</haproxy.network.mode>
                <!-- 'host.docker.internal' is available on Docker for Windows and Mac only. -->
                <haproxy.proxy.host>host.docker.internal</haproxy.proxy.host>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>io.fabric8</groupId>
                            <artifactId>docker-maven-plugin</artifactId>
                            <configuration>
                                <imagesMap>
                                    <haproxy>
                                        <run>
                                            <ports combine.children="append">
                                                <port>${haproxy.http.admin.port}:${haproxy.http.admin.port}</port>
                                                <port>${haproxy.http.port}:${haproxy.http.port}</port>
                                                <port>${haproxy.ssh.port}:${haproxy.ssh.port}</port>
                                            </ports>
                                        </run>
                                    </haproxy>
                                </imagesMap>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>it.installer</id>
            <activation>
                <property>
                    <!-- This should have the same activation as the installer -->
                    <name>install4j.home</name>
                </property>
            </activation>
            <modules>
                <module>installer</module>
            </modules>
        </profile>
        <profile>
            <id>it.pact</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                     generates the initial home for the tests. -->
                <module>plugin-test-resources</module>
                <module>pact</module>
            </modules>
        </profile>
        <profile>
            <id>it.git-lfs-client</id>
            <modules>
                <module>plugin-test-resources</module>
                <module>git-lfs-client</module>
            </modules>
        </profile>
        <profile>
            <id>it.git-lfs-s3</id>
            <modules>
                <module>git-lfs-s3</module>
            </modules>
        </profile>
        <profile>
            <id>it.kubernetes</id>
            <modules>
                <module>kubernetes</module>
            </modules>
        </profile>
        <profile>
            <id>build-test-jar</id>
            <modules>
                <!-- plugin-test-resources needs to be before func-tests, because it
                generates the initial home for the tests. -->
                <module>browser</module>
                <module>rest</module>
                <module>hosting</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>test-jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>it.license.setup</id>
            <modules>
                <module>license-setup</module>
            </modules>
        </profile>
        <profile>
            <id>real-database</id>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>com.atlassian.maven.plugins</groupId>
                            <artifactId>bitbucket-maven-plugin</artifactId>
                            <configuration>
                                <libArtifacts>
                                    <libArtifact>
                                        <groupId>com.microsoft.sqlserver</groupId>
                                        <artifactId>mssql-jdbc</artifactId>
                                    </libArtifact>
                                    <libArtifact>
                                        <groupId>com.oracle.database.jdbc</groupId>
                                        <artifactId>ojdbc11</artifactId>
                                    </libArtifact>
                                    <libArtifact>
                                        <groupId>org.postgresql</groupId>
                                        <artifactId>postgresql</artifactId>
                                    </libArtifact>
                                </libArtifacts>
                            </configuration>
                            <executions>
                                <execution>
                                    <id>js-enforcement</id>
                                    <phase>none</phase>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    </profiles>
</project>
