<?xml version="1.0" encoding="UTF-8"?>
<!--
  #%L
  Pom
  %%
  Copyright (C) 2017 - 2024 Ultreia.io
  %%
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation, either version 3 of the
  License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Lesser Public License for more details.
  You should have received a copy of the GNU General Lesser Public
  License along with this program.  If not, see
  <http://www.gnu.org/licenses/lgpl-3.0.html>.
  #L%
  -->
<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>
  <groupId>io.ultreia.maven</groupId>
  <artifactId>pom</artifactId>
  <version>2024.15</version>
  <packaging>pom</packaging>
  <name>Pom</name>
  <description>A common shared pom for our maven projects</description>
  <url>https://gitlab.com/ultreiaio/pom</url>
  <inceptionYear>2017</inceptionYear>
  <organization>
    <name>Ultreia.io</name>
    <url>http://ultreia.io/</url>
  </organization>
  <licenses>
    <license>
      <name>Lesser General Public License (LGPL) v 3.0</name>
      <url>http://www.gnu.org/licenses/lgpl-3.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <developers>
    <developer>
      <id>tchemit</id>
      <name>Tony Chemit</name>
      <email>dev@tchemit.fr</email>
      <organization>ultreia.io</organization>
      <organizationUrl>http://ultreia.io</organizationUrl>
      <roles>
        <role>lead</role>
        <role>developer</role>
      </roles>
      <timezone>Europe/Paris</timezone>
    </developer>
  </developers>
  <scm>
    <connection>scm:git:git@gitlab.com:${projectPath}.git</connection>
    <developerConnection>scm:ssh://git:git@gitlab.com:${projectPath}.git</developerConnection>
    <url>https://gitlab.com/${projectPath}</url>
  </scm>
  <issueManagement>
    <system>gitlab</system>
    <url>https://gitlab.com/${projectPath}/issues</url>
  </issueManagement>
  <ciManagement>
    <system>gitlab</system>
    <url>https://gitlab.com/${projectPath}/pipelines</url>
  </ciManagement>
  <distributionManagement>
    <repository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// Mandatory properties you need to define in your project  //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <organizationId />
    <projectId />
    <projectPath>${organizationId}/${projectId}</projectPath>
    <stageId>ioultreia</stageId>
    <maven.version>3.9.6</maven.version>
    <!-- default encoding -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// Plugins version                                          //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- apache maven plugins version -->
    <plugin.version.antRun>3.1.0</plugin.version.antRun>
    <plugin.version.assembly>3.7.1</plugin.version.assembly>
    <plugin.version.clean>3.3.2</plugin.version.clean>
    <plugin.version.compiler>3.13.0</plugin.version.compiler>
    <!--can't use plugin.version.dependency, break tidy plugin execution-->
    <!--See https://github.com/mojohaus/tidy-maven-plugin/issues/7-->
    <plugin.version.dependencies>3.6.1</plugin.version.dependencies>
    <plugin.version.deploy>3.1.1</plugin.version.deploy>
    <plugin.version.ear>3.3.0</plugin.version.ear>
    <plugin.version.ejb>3.2.1</plugin.version.ejb>
    <plugin.version.enforcer>3.4.1</plugin.version.enforcer>
    <plugin.version.gpg>3.2.1</plugin.version.gpg>
    <plugin.version.install>3.1.1</plugin.version.install>
    <plugin.version.invoker>3.6.0</plugin.version.invoker>
    <plugin.version.jar>3.3.0</plugin.version.jar>
    <plugin.version.jarSigner>3.0.0</plugin.version.jarSigner>
    <plugin.version.javadoc>3.6.3</plugin.version.javadoc>
    <!--can't use plugin.version.plugin, break tidy plugin execution-->
    <!--See https://github.com/mojohaus/tidy-maven-plugin/issues/7-->
    <plugin.version.plugins>3.11.0</plugin.version.plugins>
    <plugin.version.pmd>3.21.2</plugin.version.pmd>
    <plugin.version.release>3.0.1</plugin.version.release>
    <plugin.version.remoteResources>3.2.0</plugin.version.remoteResources>
    <plugin.version.resources>3.3.1</plugin.version.resources>
    <plugin.version.scm>3.2.1</plugin.version.scm>
    <plugin.version.shade>3.5.2</plugin.version.shade>
    <plugin.version.site>4.0.0-M13</plugin.version.site>
    <plugin.version.source>3.3.0</plugin.version.source>
    <plugin.version.surefire>3.2.5</plugin.version.surefire>
    <plugin.version.war>3.4.0</plugin.version.war>
    <!-- codehaus mojo plugins -->
    <plugin.version.buildHelper>3.5.0</plugin.version.buildHelper>
    <plugin.version.buildNumber>3.2.0</plugin.version.buildNumber>
    <plugin.version.animalSniffer>1.23</plugin.version.animalSniffer>
    <plugin.version.exec>3.2.0</plugin.version.exec>
    <plugin.version.l10n>1.0.0</plugin.version.l10n>
    <plugin.version.license>2.4.0</plugin.version.license>
    <plugin.version.tidy>1.2.0</plugin.version.tidy>
    <plugin.version.versions>2.16.2</plugin.version.versions>
    <plugin.version.wagon>2.0.2</plugin.version.wagon>
    <!-- codehaus plexus plugins -->
    <plugin.version.plexus>1.3.8</plugin.version.plexus>
    <plugin.version.plexusComponentMetadata>2.2.0</plugin.version.plexusComponentMetadata>
    <!-- nuiton plugins -->
    <plugin.version.helper>2.4.1</plugin.version.helper>
    <plugin.version.processor>1.3</plugin.version.processor>
    <!-- others plugins -->
    <plugin.version.jetty>11.0.20</plugin.version.jetty>
    <plugin.version.statScm>1.2.0</plugin.version.statScm>
    <plugin.version.tomcat>2.2</plugin.version.tomcat>
    <plugin.version.jgitflow>1.0.0-rc-1</plugin.version.jgitflow>
    <plugin.version.gitCommitId>4.9.10</plugin.version.gitCommitId>
    <plugin.version.nexusStaging>1.6.13</plugin.version.nexusStaging>
    <plugin.version.launch4J>2.5.0</plugin.version.launch4J>
    <plugin.version.gitlab>1.0.20</plugin.version.gitlab>
    <!-- report plugins version -->
    <plugin.version.changes>2.12.1</plugin.version.changes>
    <plugin.version.projectInfoReports>3.5.0</plugin.version.projectInfoReports>
    <plugin.version.changelog>2.3</plugin.version.changelog>
    <plugin.version.jrx>3.3.2</plugin.version.jrx>
    <!-- to deploy with scpexe for maven 3 -->
    <wagonSshExternalVersion>1.0</wagonSshExternalVersion>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// Compiler configuration                                   //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <maven.compiler.showWarnings>true</maven.compiler.showWarnings>
    <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
    <!-- for the moment we do not want to use incremental compilation -->
    <maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// Javadoc configuration                                    //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <maven.javadoc.quiet>true</maven.javadoc.quiet>
    <javadocJreApiVersion>${java.version}</javadocJreApiVersion>
    <javadoc.additionalOptions>-html5</javadoc.additionalOptions>
    <javadoc.javadocExecutable>${java.home}/bin/javadoc</javadoc.javadocExecutable>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// License configuration                                    //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <license.useMissingFile>true</license.useMissingFile>
    <license.failOnMissing>true</license.failOnMissing>
    <license.licenseName>lgpl_v3</license.licenseName>
    <maven.license.file>${project.basedir}/LICENSE.txt</maven.license.file>
    <license.organizationName>Ultreia.io</license.organizationName>
    <license.trimHeaderLine>true</license.trimHeaderLine>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// gitflow configuration                                    //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <jgitflow.masterBranchName>master</jgitflow.masterBranchName>
    <jgitflow.developBranchName>develop</jgitflow.developBranchName>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// site configuration                                       //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <generateSitemap>true</generateSitemap>
    <relativizeDecorationLinks>false</relativizeDecorationLinks>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// scm publish configuration                                //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <siteMainDirectory>${user.home}/.mvn/site-cache</siteMainDirectory>
    <scmpublish.checkoutDirectory>\${siteMainDirectory}/${project.groupId}/${project.artifactId}</scmpublish.checkoutDirectory>
    <scmpublish.tryUpdate>true</scmpublish.tryUpdate>
    <scmpublish.checkinComment>Site checkin for project ${project.name} (version ${project.version})</scmpublish.checkinComment>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// Gitlab configuration                                     //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <gitlab.changesTitle>${projectId} changelog</gitlab.changesTitle>
    <gitlabMainDirectory>${user.home}/.mvn/gitlab-cache</gitlabMainDirectory>
    <gitlab.changesAuthor>Tony Chemit</gitlab.changesAuthor>
    <gitlab.changesAuthorEmail>dev@tchemit.fr</gitlab.changesAuthorEmail>
    <gitlab.trackers>bug,enhancement,support,documentation,critical</gitlab.trackers>
    <gitlab.stagingId />
    <gitlab.stagingUrl>https://oss.sonatype.org/content/repositories/${gitlab.stagingId}</gitlab.stagingUrl>
    <gitlab.cachePath>\${gitlabMainDirectory}/${project.groupId}/${project.artifactId}</gitlab.cachePath>
    <!-- build timestamp configuration -->
    <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
    <buildDate>${maven.build.timestamp}</buildDate>
    <!-- by default do nothing -->
    <maven.source.skip>true</maven.source.skip>
    <maven.javadoc.skip>true</maven.javadoc.skip>
    <!-- prefer to deploy always at end (sonatype oss can have some very slow performance in default mode -->
    <deployAtEnd>true</deployAtEnd>
    <!-- ////////////////////////////////////////////////////////////////// -->
    <!-- //// Dependencies version                                     //// -->
    <!-- ////////////////////////////////////////////////////////////////// -->
    <lib.version.antlr4>4.13.1</lib.version.antlr4>
    <lib.version.antlrst>4.3.4</lib.version.antlrst>
    <lib.version.asm>9.6</lib.version.asm>
    <lib.version.bytebuddy>1.14.12</lib.version.bytebuddy>
    <lib.version.checker-qual>3.42.0</lib.version.checker-qual>
    <lib.version.commons-beanutils>1.9.4</lib.version.commons-beanutils>
    <lib.version.commons-collections4>4.4</lib.version.commons-collections4>
    <lib.version.commons-fileupload>1.5</lib.version.commons-fileupload>
    <lib.version.commons-fileupload2.core>2.0.0-M2</lib.version.commons-fileupload2.core>
    <lib.version.commons-fileupload2.jakarta>2.0.0-M1</lib.version.commons-fileupload2.jakarta>
    <lib.version.commons-io>2.15.1</lib.version.commons-io>
    <lib.version.commons-lang3>3.14.0</lib.version.commons-lang3>
    <lib.version.commons-logging>1.3.0</lib.version.commons-logging>
    <lib.version.commons-primitives>20041207.202534</lib.version.commons-primitives>
    <lib.version.commons-text>1.11.0</lib.version.commons-text>
    <lib.version.tomcat>9.0.87</lib.version.tomcat>
    <!--   <lib.version.tomcat>11.0.0-M15</lib.version.tomcat>-->
    <lib.version.commons-digester>2.1</lib.version.commons-digester>
    <lib.version.commons-configuration>1.10</lib.version.commons-configuration>
    <lib.version.commons-configuration2>2.9.0</lib.version.commons-configuration2>
    <lib.version.commons-codec>1.16.1</lib.version.commons-codec>
    <lib.version.com.tunnelvisionlabs.antlr4>4.9.0</lib.version.com.tunnelvisionlabs.antlr4>
    <lib.version.enforcer-rules>1.7.0</lib.version.enforcer-rules>
    <lib.version.flexmark>0.64.8</lib.version.flexmark>
    <lib.version.freemarker>2.3.32</lib.version.freemarker>
    <lib.version.geoTools>20.5</lib.version.geoTools>
    <lib.version.google.auto-service>1.1.1</lib.version.google.auto-service>
    <lib.version.google.gson>2.10.1</lib.version.google.gson>
    <lib.version.google.guava>33.1.0-jre</lib.version.google.guava>
    <lib.version.google.guava.failureaccess>1.0.2</lib.version.google.guava.failureaccess>
    <lib.version.h2>2.1.214</lib.version.h2>
    <lib.version.hamcrest-core>2.2</lib.version.hamcrest-core>
    <lib.version.hashids>1.0.3</lib.version.hashids>
    <lib.version.hibernate>6.2.5.Final</lib.version.hibernate>
    <lib.version.hikariCP>5.1.0</lib.version.hikariCP>
    <lib.version.hsqldb>2.7.2</lib.version.hsqldb>
    <lib.version.httpclient>4.5.14</lib.version.httpclient>
    <lib.version.httpcore>4.4.16</lib.version.httpcore>
    <lib.version.httpclient5>5.3.1</lib.version.httpclient5>
    <lib.version.httpcore5>5.2.4</lib.version.httpcore5>
    <lib.version.jackson>2.13.0</lib.version.jackson>
    <lib.version.java4all.application-context>1.0.8</lib.version.java4all.application-context>
    <lib.version.java4all.application-template>1.0.5</lib.version.java4all.application-template>
    <lib.version.java4all.class-mapping>1.0.4</lib.version.java4all.class-mapping>
    <lib.version.java4all.config>1.0.27</lib.version.java4all.config>
    <lib.version.java4all.decorator>0.0.15</lib.version.java4all.decorator>
    <lib.version.java4all.eugene>3.0-beta-2</lib.version.java4all.eugene>
    <lib.version.java4all.http>2.0.3</lib.version.java4all.http>
    <lib.version.java4all.i18n>4.0-beta-27</lib.version.java4all.i18n>
    <lib.version.java4all.java-bean>0.3.3</lib.version.java4all.java-bean>
    <lib.version.java4all.java-lang>2.0.5</lib.version.java4all.java-lang>
    <lib.version.java4all.java-util>1.1.14</lib.version.java4all.java-util>
    <lib.version.java4all.jaxx>3.1.3</lib.version.java4all.jaxx>
    <lib.version.java4all.topia>2.1.1</lib.version.java4all.topia>
    <lib.version.java4all.validation>2.0.0-RC-3</lib.version.java4all.validation>
    <lib.version.javassist>3.30.2-GA</lib.version.javassist>
    <lib.version.javax.activation-api>1.2.0</lib.version.javax.activation-api>
    <lib.version.javax.annotation-api>1.3.2</lib.version.javax.annotation-api>
    <lib.version.javax.persistence-api>2.2</lib.version.javax.persistence-api>
    <lib.version.javax.servlet-api>4.0.1</lib.version.javax.servlet-api>
    <lib.version.jaxb-api>4.0.0</lib.version.jaxb-api>
    <lib.version.jaxb-runtime>4.0.0</lib.version.jaxb-runtime>
    <lib.version.jboss-logging>3.5.3.Final</lib.version.jboss-logging>
    <lib.version.jsr250-api>1.0</lib.version.jsr250-api>
    <lib.version.junit>4.13.2</lib.version.junit>
    <lib.version.jxlayer>3.0.4</lib.version.jxlayer>
    <lib.version.log4j2>2.23.1</lib.version.log4j2>
    <lib.version.maven.resolver>1.9.18</lib.version.maven.resolver>
    <lib.version.maven.reporting-api>4.0.0-M10</lib.version.maven.reporting-api>
    <lib.version.maven.reporting-impl>4.0.0-M13</lib.version.maven.reporting-impl>
    <lib.version.mockito>4.0.0</lib.version.mockito>
    <lib.version.mustache>0.9.11</lib.version.mustache>
    <lib.version.nuiton.converter>1.0</lib.version.nuiton.converter>
    <lib.version.nuiton.csv>3.1</lib.version.nuiton.csv>
    <lib.version.nuiton.decorator>3.0</lib.version.nuiton.decorator>
    <lib.version.nuiton.utils>3.1</lib.version.nuiton.utils>
    <lib.version.nuiton.version>1.0</lib.version.nuiton.version>
    <lib.version.ognl>3.3.4</lib.version.ognl>
    <lib.version.parboiled>1.4.1</lib.version.parboiled>
    <lib.version.plantuml>8059</lib.version.plantuml>
    <lib.version.plexus-component-annotations>2.2.0</lib.version.plexus-component-annotations>
    <lib.version.plexus-utils>4.0.0</lib.version.plexus-utils>
    <lib.version.plexus-classworlds>2.8.0</lib.version.plexus-classworlds>
    <lib.version.postgresql>42.7.3</lib.version.postgresql>
    <lib.version.reflections>0.10.2</lib.version.reflections>
    <lib.version.rome>1.18.0</lib.version.rome>
    <lib.version.rsyntaxtextarea>3.3.4</lib.version.rsyntaxtextarea>
    <lib.version.rhino>1.7.14</lib.version.rhino>
    <lib.version.saxon>9.1.0.8</lib.version.saxon>
    <lib.version.sisu.plexus>0.9.0.M2</lib.version.sisu.plexus>
    <lib.version.slf4j>2.0.12</lib.version.slf4j>
    <lib.version.snakeyaml>1.33</lib.version.snakeyaml>
    <lib.version.struts>6.3.0.2</lib.version.struts>
    <lib.version.swingx>1.6.5-1</lib.version.swingx>
    <lib.version.ucanaccess>5.0.1</lib.version.ucanaccess>
    <lib.version.velocity>1.7</lib.version.velocity>
    <lib.version.xml-apis>1.0.b2</lib.version.xml-apis>
    <lib.version.xstream>1.4.20</lib.version.xstream>
    <lib.version.xerces>2.12.2</lib.version.xerces>
    <lib.version.yamlbeans>1.17</lib.version.yamlbeans>
    <lib.version.caffeine>3.1.8</lib.version.caffeine>
    <lib.version.error_prone_annotations>2.26.1</lib.version.error_prone_annotations>
    <lib.xwork.version>2.3.37</lib.xwork.version>
    <lib.xwork.toml4j>0.7.2</lib.xwork.toml4j>
    <libversion.plexus-i18n>1.0-beta-10</libversion.plexus-i18n>
    <lib.version.doxia>2.0.0-M6</lib.version.doxia>
    <lib.version.doxia-core>2.0.0-M9</lib.version.doxia-core>
    <lib.version.doxia-sink-api>2.0.0-M9</lib.version.doxia-sink-api>
    <lib.version.doxia-site-renderer>2.0.0-M16</lib.version.doxia-site-renderer>
    <lib.version.dom4j>1.6.1</lib.version.dom4j>
    <lib.version.jts>1.19.0</lib.version.jts>
  </properties>
  <repositories>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>oss-snapshot</id>
      <name>oss-snapshot</name>
      <url>https://oss.sonatype.org/service/local/repositories/snapshots/content</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>oss-releases</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>central</name>
      <url>https://repo1.maven.org/maven2/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>central</name>
      <url>https://repo1.maven.org/maven2/</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>oss-snapshot</id>
      <name>oss-snapshot</name>
      <url>https://oss.sonatype.org/service/local/repositories/snapshots/content</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>oss-releases</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/filtered-resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
        <excludes>
          <exclude>**/*~</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
        <excludes>
          <exclude>**/*~</exclude>
        </excludes>
      </resource>
    </resources>
    <pluginManagement>
      <plugins>
        <!-- Plugins from apache -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${plugin.version.antRun}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${plugin.version.assembly}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${plugin.version.clean}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${plugin.version.compiler}</version>
          <configuration>
            <compilerArgs>
              <arg>-Xlint:unchecked</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${plugin.version.dependencies}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${plugin.version.deploy}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <version>${plugin.version.ear}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ejb-plugin</artifactId>
          <version>${plugin.version.ejb}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${plugin.version.enforcer}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${plugin.version.gpg}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${plugin.version.install}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-invoker-plugin</artifactId>
          <version>${plugin.version.invoker}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${plugin.version.jar}</version>
          <inherited>true</inherited>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
              <manifestEntries>
                <url>${project.url}</url>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jarsigner-plugin</artifactId>
          <version>${plugin.version.jarSigner}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${plugin.version.javadoc}</version>
          <configuration>
            <quiet>${maven.javadoc.quiet}</quiet>
            <charset>${project.reporting.outputEncoding}</charset>
            <links>
              <link>https://docs.oracle.com/javase/${javadocJreApiVersion}/docs/api</link>
            </links>
            <javadocExecutable>${javadoc.javadocExecutable}</javadocExecutable>
            <additionalOptions>${javadoc.additionalOptions}</additionalOptions>
            <tagletArtifacts>
              <tagletArtifact>
                <groupId>org.apache.maven.plugin-tools</groupId>
                <artifactId>maven-plugin-annotations</artifactId>
                <version>${plugin.version.plugins}</version>
              </tagletArtifact>
              <tagletArtifact>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-component-annotations</artifactId>
                <version>${lib.version.plexus-component-annotations}</version>
              </tagletArtifact>
            </tagletArtifacts>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${plugin.version.plugins}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-report-plugin</artifactId>
          <version>${plugin.version.plugins}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${plugin.version.pmd}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${plugin.version.release}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>${plugin.version.remoteResources}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${plugin.version.resources}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <propertiesEncoding>${project.build.sourceEncoding}</propertiesEncoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>${plugin.version.scm}</version>
          <configuration>
            <scmBranch>pages</scmBranch>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${plugin.version.shade}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${plugin.version.site}</version>
          <configuration>
            <skipDeploy>true</skipDeploy>
            <!-- don't deploy site with maven-site-plugin -->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${plugin.version.source}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${plugin.version.surefire}</version>
          <configuration>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}/surefire-workdir</java.io.tmpdir>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>${plugin.version.war}</version>
        </plugin>
        <!-- Plugins from codehaus mojo -->
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>animal-sniffer-maven-plugin</artifactId>
          <version>${plugin.version.animalSniffer}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${plugin.version.exec}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${plugin.version.buildHelper}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>${plugin.version.buildNumber}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>l10n-maven-plugin</artifactId>
          <version>${plugin.version.l10n}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>${plugin.version.license}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.logging.log4j</groupId>
              <artifactId>log4j-core</artifactId>
              <version>${lib.version.log4j2}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>tidy-maven-plugin</artifactId>
          <version>${plugin.version.tidy}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${plugin.version.versions}</version>
          <configuration>
            <generateBackupPoms>false</generateBackupPoms>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>wagon-maven-plugin</artifactId>
          <version>${plugin.version.wagon}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${plugin.version.projectInfoReports}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changes-plugin</artifactId>
          <version>${plugin.version.changes}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changelog-plugin</artifactId>
          <version>${plugin.version.changelog}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${plugin.version.jrx}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${plugin.version.surefire}</version>
        </plugin>
        <!-- Plugins from codehaus plexus -->
        <plugin>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-component-metadata</artifactId>
          <version>${plugin.version.plexusComponentMetadata}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-maven-plugin</artifactId>
          <version>${plugin.version.plexus}</version>
        </plugin>
        <!-- Plugins from nuiton -->
        <plugin>
          <groupId>org.nuiton</groupId>
          <artifactId>helper-maven-plugin</artifactId>
          <version>${plugin.version.helper}</version>
        </plugin>
        <plugin>
          <groupId>org.nuiton.processor</groupId>
          <artifactId>processor-maven-plugin</artifactId>
          <version>${plugin.version.processor}</version>
        </plugin>
        <!-- Plugins version from ultreia.io -->
        <plugin>
          <groupId>io.ultreia.java4all.config</groupId>
          <artifactId>config-maven-plugin</artifactId>
          <version>${lib.version.java4all.config}</version>
        </plugin>
        <plugin>
          <groupId>io.ultreia.java4all.i18n</groupId>
          <artifactId>i18n-maven-plugin</artifactId>
          <version>${lib.version.java4all.i18n}</version>
          <dependencies>
            <dependency>
              <groupId>io.ultreia.java4all</groupId>
              <artifactId>java-lang</artifactId>
              <version>${lib.version.java4all.java-lang}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>io.ultreia.java4all.jaxx</groupId>
          <artifactId>jaxx-maven-plugin</artifactId>
          <version>${lib.version.java4all.jaxx}</version>
        </plugin>
        <plugin>
          <groupId>io.ultreia.java4all.http</groupId>
          <artifactId>http-maven-plugin</artifactId>
          <version>${lib.version.java4all.http}</version>
          <dependencies>
            <dependency>
              <groupId>io.ultreia.java4all</groupId>
              <artifactId>class-mapping</artifactId>
              <version>${lib.version.java4all.class-mapping}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>io.ultreia.java4all.eugene</groupId>
          <artifactId>eugene-maven-plugin</artifactId>
          <version>${lib.version.java4all.eugene}</version>
        </plugin>
        <!-- Plugins from others -->
        <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
          <version>${plugin.version.jetty}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-jspc-maven-plugin</artifactId>
          <version>${plugin.version.jetty}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>${plugin.version.tomcat}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>${plugin.version.tomcat}</version>
        </plugin>
        <plugin>
          <groupId>io.ultreia.java4all.jgitflow</groupId>
          <artifactId>jgitflow-maven-plugin</artifactId>
          <version>${plugin.version.jgitflow}</version>
          <configuration>
            <flowInitContext>
              <versionTagPrefix>v</versionTagPrefix>
              <masterBranchName>${jgitflow.masterBranchName}</masterBranchName>
              <developBranchName>${jgitflow.developBranchName}</developBranchName>
            </flowInitContext>
            <scmCommentPrefix>[jgitflow-maven-plugin]</scmCommentPrefix>
            <scmCommentSuffix>[skip ci]</scmCommentSuffix>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <addScmCommentSuffixOnMerge>false</addScmCommentSuffixOnMerge>
          </configuration>
          <executions>
            <execution>
              <id>default-cli</id>
              <goals>
                <goal>release-finish</goal>
                <goal>release-start</goal>
              </goals>
              <configuration>
                <pushReleases>true</pushReleases>
                <enableSshAgent>true</enableSshAgent>
                <allowUntracked>true</allowUntracked>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>net.sf</groupId>
          <artifactId>stat-scm</artifactId>
          <version>${plugin.version.statScm}</version>
        </plugin>
        <plugin>
          <groupId>pl.project13.maven</groupId>
          <artifactId>git-commit-id-plugin</artifactId>
          <version>${plugin.version.gitCommitId}</version>
        </plugin>
        <plugin>
          <groupId>org.sonatype.plugins</groupId>
          <artifactId>nexus-staging-maven-plugin</artifactId>
          <version>${plugin.version.nexusStaging}</version>
          <configuration>
            <serverId>ossrh</serverId>
            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
            <keepStagingRepositoryOnCloseRuleFailure>true</keepStagingRepositoryOnCloseRuleFailure>
            <autoReleaseAfterClose>true</autoReleaseAfterClose>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.thoughtworks.xstream</groupId>
              <artifactId>xstream</artifactId>
              <version>${lib.version.xstream}</version>
              <!--              <version>1.4.17</version>-->
            </dependency>
            <dependency>
              <groupId>xpp3</groupId>
              <artifactId>xpp3_min</artifactId>
              <version>1.1.4c</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>com.akathist.maven.plugins.launch4j</groupId>
          <artifactId>launch4j-maven-plugin</artifactId>
          <version>${plugin.version.launch4J}</version>
          <dependencies>
            <dependency>
              <groupId>com.thoughtworks.xstream</groupId>
              <artifactId>xstream</artifactId>
              <version>${lib.version.xstream}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>io.ultreia.maven</groupId>
          <artifactId>gitlab-maven-plugin</artifactId>
          <version>${plugin.version.gitlab}</version>
          <configuration>
            <host>https://gitlab.com</host>
            <serverId>gitlab.com</serverId>
            <organizationId>${organizationId}</organizationId>
            <projectId>${projectId}</projectId>
            <changesFile>${project.build.directory}/generated-site/changes.xml</changesFile>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
        <version>${plugin.version.nexusStaging}</version>
        <extensions>true</extensions>
      </plugin>
    </plugins>
    <extensions>
      <!-- Enabling the use of scpexe with maven 3.0 -->
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>2.2</version>
      </extension>
    </extensions>
  </build>
  <reporting>
    <excludeDefaults>true</excludeDefaults>
  </reporting>
  <profiles>
    <profile>
      <id>generate-test-workdir</id>
      <activation>
        <file>
          <exists>${basedir}/src/test/java</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>generate-test-workdir</id>
                <goals>
                  <goal>run</goal>
                </goals>
                <phase>generate-test-resources</phase>
                <inherited>true</inherited>
                <configuration>
                  <!-- do not generate if tests are skipped -->
                  <!--suppress MavenModelInspection -->
                  <skip>${maven.test.skip}</skip>
                  <target>
                    <mkdir dir="${basedir}/target/surefire-workdir" />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- perform only on a release stage when using the maven-release-plugin -->
    <profile>
      <id>license-profile</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <defaultGoal>generate-resources</defaultGoal>
        <plugins>
          <!-- add license and third-party files to build -->
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-licenses</id>
                <goals>
                  <goal>update-project-license</goal>
                  <goal>add-third-party</goal>
                </goals>
                <configuration>
                  <licenseMerges>
                    <licenseMerge>The Apache Software License, Version 2.0|Apache License, Version 2.0|Apache License V2.0|Apache
                      2|ASF 2.0|apache-2.0|Apache Public License 2.0
                    </licenseMerge>
                    <licenseMerge>BSD License|BSD license|BSD</licenseMerge>
                    <licenseMerge>MIT License|MIT license|MIT</licenseMerge>
                    <licenseMerge>Lesser General Public License (LPGL) v 2.1|GNU Lesser General Public License, 2.1|LGPL 2.1</licenseMerge>
                    <licenseMerge>Lesser General Public License (LPGL)|GNU Lesser General Public License|GNU LESSER GENERAL PUBLIC
                      LICENSE|LGPL|lgpl
                    </licenseMerge>
                    <licenseMerge>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0|Common Development and Distribution
                      License (CDDL) v1.0
                    </licenseMerge>
                    <licenseMerge>Indiana University Extreme! Lab Software License, version 1.1.1|Indiana University
                      Extreme! Lab Software License
                    </licenseMerge>
                  </licenseMerges>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- perform only on a release to do quality checks on release -->
    <profile>
      <id>release-quality-profile</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>extra-enforcer-rules</artifactId>
                <version>${lib.version.enforcer-rules}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>check-project</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <phase>validate</phase>
                <configuration>
                  <rules>
                    <requireFilesExist>
                      <files>
                        <file>LICENSE.txt</file>
                        <file>README.md</file>
                      </files>
                    </requireFilesExist>
                    <requireProperty>
                      <property>organizationId</property>
                      <message>"organizationId property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"organizationId property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>projectId</property>
                      <message>"projectId property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"projectId property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>java.version</property>
                      <message>"java.version property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"java.version property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>stageId</property>
                      <message>"stageId property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"stageId property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireMavenVersion>
                      <version>[3.6.3,)</version>
                    </requireMavenVersion>
                    <dependencyConvergence />
                    <bannedDependencies>
                      <excludes>
                        <exclude>org.codehaus.plexus:plexus-component-api</exclude>
                      </excludes>
                      <message>The new containers are not supported. You
                        probably added a dependency that is missing the
                        exclusions.
                      </message>
                    </bannedDependencies>
                    <enforceBytecodeVersion>
                      <maxJdkVersion>${java.version}</maxJdkVersion>
                    </enforceBytecodeVersion>
                    <banDuplicateClasses>
                      <findAllDuplicates>true</findAllDuplicates>
                    </banDuplicateClasses>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>release-sign-artifacts</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.nuiton</groupId>
            <artifactId>helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>get-pgp-pass-phrase</id>
                <goals>
                  <goal>share-server-secret</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <serverId>ultreia-gpg-signer</serverId>
                  <usernameOut>gpg.keyname</usernameOut>
                  <passwordOut>gpg.passphrase</passwordOut>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>default-sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- This profile update license stuff with new goal update-file-header -->
    <profile>
      <id>update-file-header</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <properties>
        <license.descriptor>src/license/project.xml</license.descriptor>
        <license.excludes>**/ftl/*.ftl,**/i18n/*.properties,**/i18n/**/*.properties,**/THIRD-PARTY.properties,**/*.sh,**/*.json</license.excludes>
      </properties>
      <build>
        <defaultGoal>process-resources</defaultGoal>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>update-file-header</id>
                <goals>
                  <goal>update-file-header</goal>
                </goals>
                <phase>process-resources</phase>
                <configuration>
                  <extraExtensions>
                    <jcss>java</jcss>
                  </extraExtensions>
                </configuration>
              </execution>
              <execution>
                <id>update-pom-header</id>
                <goals>
                  <goal>update-file-header</goal>
                </goals>
                <phase>process-resources</phase>
                <configuration>
                  <roots>
                    <root>${project.basedir}</root>
                  </roots>
                  <includes>
                    <include>pom.xml</include>
                  </includes>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>rebuild-file-header</id>
      <properties>
        <license.canUpdateCopyright>true</license.canUpdateCopyright>
        <license.canUpdateLicense>true</license.canUpdateLicense>
        <license.canUpdateDescription>true</license.canUpdateDescription>
      </properties>
    </profile>
    <profile>
      <id>analyze-dependencies</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <defaultGoal>process-classes</defaultGoal>
        <plugins>
          <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <inherited>true</inherited>
            <executions>
              <execution>
                <id>analyze</id>
                <goals>
                  <goal>analyze-only</goal>
                </goals>
                <phase>process-classes</phase>
                <configuration>
                  <verbose>true</verbose>
                  <failOnWarning>true</failOnWarning>
                  <ignoreNonCompile>true</ignoreNonCompile>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- do not generate site if no src/site is found for module -->
    <profile>
      <id>no-site</id>
      <activation>
        <file>
          <missing>src/site</missing>
        </file>
      </activation>
      <properties>
        <!-- no site generation -->
        <maven.site.skip>true</maven.site.skip>
        <maven.site.deploy.skip>true</maven.site.deploy.skip>
      </properties>
    </profile>
    <profile>
      <id>maven-3</id>
      <activation>
        <file>
          <!--  This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
          <exists>${basedir}</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-site-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-descriptor</id>
                <goals>
                  <goal>attach-descriptor</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- change version adding commit hash as classifier -->
    <profile>
      <id>add-git-commit-id-to-project-version</id>
      <build>
        <defaultGoal>initialize</defaultGoal>
        <plugins>
          <plugin>
            <groupId>pl.project13.maven</groupId>
            <artifactId>git-commit-id-plugin</artifactId>
            <configuration>
              <runOnlyOnce>true</runOnlyOnce>
              <skipPoms>false</skipPoms>
              <includeOnlyProperties>
                <includeOnlyProperty>git\.commit\.id\.abbrev</includeOnlyProperty>
              </includeOnlyProperties>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>revision</goal>
                </goals>
                <phase>initialize</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.nuiton</groupId>
            <artifactId>helper-maven-plugin</artifactId>
            <configuration>
              <runOnce>true</runOnce>
              <newVersionPattern>#V-rev#R</newVersionPattern>
              <revision>#git.commit.id.abbrev</revision>
              <versionKey>newVersion</versionKey>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>transform-project-version</goal>
                </goals>
                <phase>initialize</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>set</goal>
                </goals>
                <phase>initialize</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>update-changelog</id>
      <build>
        <defaultGoal>generate-resources</defaultGoal>
        <plugins>
          <plugin>
            <groupId>io.ultreia.maven</groupId>
            <artifactId>gitlab-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>generate-changelog</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>update-staging-changelog</id>
      <build>
        <defaultGoal>generate-resources</defaultGoal>
        <plugins>
          <plugin>
            <groupId>io.ultreia.maven</groupId>
            <artifactId>gitlab-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <!--suppress MavenModelInspection -->
                  <goal>generate-staging-changelog</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- Profile to build the pom project -->
    <profile>
      <id>internal</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/.pom-project-do-not-delete.txt</exists>
        </file>
      </activation>
      <properties>
        <organizationId>ultreiaio-infra</organizationId>
        <projectId>pom</projectId>
        <java.version>11</java.version>
        <maven.site.skip>true</maven.site.skip>
        <maven.site.deploy.skip>true</maven.site.deploy.skip>
      </properties>
    </profile>
    <!-- Profile to generate a simple simple (you need to place file .mvn/mono-module-site fil in your project) -->
    <profile>
      <id>mono-module-site</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/mono-module-site</exists>
        </file>
      </activation>
      <properties>
        <scmpublish.content>${project.reporting.outputDirectory}</scmpublish.content>
        <scmpublish.pubScmUrl>${project.distributionManagement.site.url}</scmpublish.pubScmUrl>
      </properties>
      <build>
        <defaultGoal>site-deploy</defaultGoal>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-scm-publish-plugin</artifactId>
              <executions>
                <execution>
                  <id>scm-publish</id>
                  <!-- deploy site with maven-scm-publish-plugin -->
                  <goals>
                    <goal>publish-scm</goal>
                  </goals>
                  <phase>site-deploy</phase>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <!-- Profile to generate a multi module site (you need to place file .mvn/multi-module-site fil in your project) -->
    <profile>
      <id>multi-module-site</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/multi-module-site</exists>
        </file>
      </activation>
      <properties>
        <scmpublish.content>${project.build.directory}/staging</scmpublish.content>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-site-plugin</artifactId>
              <configuration>
                <topSiteURL>scm:git:https://git@gitlab.com/${projectPath}.git</topSiteURL>
                <!--<stagingDirectory>${user.dir}/target/staging</stagingDirectory>-->
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-scm-publish-plugin</artifactId>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>application-assembly-profile</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/application-assembly</exists>
        </file>
      </activation>
      <properties>
        <!--suppress UnresolvedMavenProperty -->
        <exec.mainClass>${maven.jar.main.class}</exec.mainClass>
      </properties>
      <build>
        <defaultGoal>package</defaultGoal>
        <resources>
          <resource>
            <directory>target/generated-sources/resources</directory>
            <includes>
              <include>**/*</include>
            </includes>
            <excludes>
              <exclude>**/*~</exclude>
            </excludes>
          </resource>
        </resources>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-jar-plugin</artifactId>
              <configuration>
                <archive>
                  <manifest>
                    <useUniqueVersions>false</useUniqueVersions>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix>./lib/</classpathPrefix>
                    <classpathLayoutType>custom</classpathLayoutType>
                    <!--suppress UnresolvedMavenProperty -->
                    <customClasspathLayout>$${artifact.groupId}.$${artifact.artifactId}-$${artifact.version}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout>
                    <!--suppress UnresolvedMavenProperty -->
                    <mainClass>${maven.jar.main.class}</mainClass>
                  </manifest>
                </archive>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>extra-enforcer-rules</artifactId>
                <version>${lib.version.enforcer-rules}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>check-application-assembly</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <rules>
                    <requireProperty>
                      <property>maven.jar.main.class</property>
                      <message>"maven.jar.main.class property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"maven.jar.main.class property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>buildDate</property>
                      <message>"buildDate property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"buildDate property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>buildNumber</property>
                      <message>"buildNumber property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"buildNumber property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>applicationName</property>
                      <message>"applicationName property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"applicationName property can not be empty."</regexMessage>
                    </requireProperty>
                    <requireProperty>
                      <property>applicationJarName</property>
                      <message>"applicationJarName property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"applicationJarName property can not be empty."</regexMessage>
                    </requireProperty>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>parse-version</id>
                <goals>
                  <goal>parse-version</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-dependencies</id>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
                <phase>prepare-package</phase>
                <configuration>
                  <includeScope>runtime</includeScope>
                  <excludeScope>test,provided</excludeScope>
                  <overWriteReleases>true</overWriteReleases>
                  <overWriteSnapshots>true</overWriteSnapshots>
                  <overWriteIfNewer>true</overWriteIfNewer>
                  <prependGroupId>true</prependGroupId>
                  <outputDirectory>${project.build.directory}/lib</outputDirectory>
                  <silent>true</silent>
                  <!--                  <excludeArtifactIds>com.google.auto.service:auto-service</excludeArtifactIds>-->
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>create-application-assembly</id>
                <goals>
                  <goal>single</goal>
                </goals>
                <phase>integration-test</phase>
                <configuration>
                  <descriptors>
                    <descriptor>src/main/assembly/bin.xml</descriptor>
                  </descriptors>
                  <attach>true</attach>
                  <finalName>${project.build.finalName}</finalName>
                  <appendAssemblyId>false</appendAssemblyId>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>application-assembly-release-profile</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
        <file>
          <exists>${basedir}/.mvn/application-assembly</exists>
        </file>
      </activation>
      <properties>
        <maven.jar.main.class />
        <buildNumber />
        <applicationName />
        <applicationJarName />
      </properties>
      <build>
        <defaultGoal>package</defaultGoal>
        <plugins>
          <plugin>
            <groupId>com.akathist.maven.plugins.launch4j</groupId>
            <artifactId>launch4j-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>launch4j</id>
                <goals>
                  <goal>launch4j</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                  <disableVersionInfoDefaults>true</disableVersionInfoDefaults>
                  <dontWrapJar>true</dontWrapJar>
                  <headerType>gui</headerType>
                  <outfile>${project.build.directory}/${project.build.finalName}.exe</outfile>
                  <jar>${applicationJarName}.jar</jar>
                  <!--suppress UnresolvedMavenProperty -->
                  <errTitle>${project.parent.name}</errTitle>
                  <jre>
                    <path>%JREHOMEDIR%</path>
                    <minVersion>11</minVersion>
                  </jre>
                  <versionInfo>
                    <!--suppress MavenModelInspection -->
                    <fileVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0</fileVersion>
                    <txtFileVersion>${project.version}</txtFileVersion>
                    <!--suppress UnresolvedMavenProperty -->
                    <fileDescription>${project.parent.description}</fileDescription>
                    <!--suppress UnresolvedMavenProperty -->
                    <productName>${project.parent.name}</productName>
                    <!--suppress MavenModelInspection -->
                    <productVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0</productVersion>
                    <txtProductVersion>${project.version}</txtProductVersion>
                    <companyName>${project.organization.name}</companyName>
                    <copyright>${project.inceptionYear} - ${project.organization.name}</copyright>
                    <internalName>observe</internalName>
                    <originalFilename>${project.build.finalName}.exe</originalFilename>
                  </versionInfo>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>add-auto-service</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/add-auto-service</exists>
        </file>
      </activation>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>com.google.auto.service</groupId>
            <artifactId>auto-service</artifactId>
            <version>${lib.version.google.auto-service}</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>com.google.auto.service</groupId>
            <artifactId>auto-service-annotations</artifactId>
            <version>${lib.version.google.auto-service}</version>
            <scope>provided</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.auto.service</groupId>
          <artifactId>auto-service</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>com.google.auto.service</groupId>
          <artifactId>auto-service-annotations</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>${plugin.version.compiler}</version>
              <dependencies>
                <dependency>
                  <groupId>org.apache.logging.log4j</groupId>
                  <artifactId>log4j-core</artifactId>
                  <version>${lib.version.log4j2}</version>
                </dependency>
              </dependencies>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>add-build-number-profile</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/add-build-number</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <configuration>
              <doCheck>false</doCheck>
              <doUpdate>false</doUpdate>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>create</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jaxx-generate-profile</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/jaxx-generate</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.jaxx</groupId>
            <artifactId>jaxx-maven-plugin</artifactId>
            <version>${lib.version.java4all.jaxx}</version>
            <executions>
              <execution>
                <id>default-generate</id>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deploy-war-to-demo-profile</id>
      <properties>
        <classifier>${project.version}</classifier>
        <applicationName />
      </properties>
      <build>
        <defaultGoal>verify</defaultGoal>
        <plugins>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>extra-enforcer-rules</artifactId>
                <version>${lib.version.enforcer-rules}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>check-application-assembly</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                  <rules>
                    <requireProperty>
                      <property>applicationName</property>
                      <message>"applicationName property must be specified."</message>
                      <regex>.+$</regex>
                      <regexMessage>"applicationName property can not be empty."</regexMessage>
                    </requireProperty>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>wagon-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>deploy-demo</id>
                <goals>
                  <goal>upload-single</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <serverId>doc.ultreia.io</serverId>
                  <url>scpexe://ultreia.io/var/lib/tomcat9/webapps</url>
                  <fromFile>${project.build.directory}/${project.build.finalName}.war</fromFile>
                  <toFile>${applicationName}-${classifier}.war</toFile>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>configure-its-profile</id>
      <activation>
        <file>
          <exists>${basedir}/src/it</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-invoker-plugin</artifactId>
            <configuration>
              <postBuildHookScript>verify</postBuildHookScript>
              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
              <settingsFile>${project.basedir}/src/it/settings.xml</settingsFile>
              <cloneProjectsTo>${project.build.directory}/its</cloneProjectsTo>
              <streamLogs>true</streamLogs>
              <!--<debug>true</debug>-->
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>run-one-it</id>
      <build>
        <defaultGoal>integration-test</defaultGoal>
        <plugins>
          <plugin>
            <artifactId>maven-invoker-plugin</artifactId>
            <configuration>
              <pomIncludes>
                <!--suppress UnresolvedMavenProperty -->
                <pomInclude>${it}/pom.xml</pomInclude>
              </pomIncludes>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>install</goal>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>project-init</id>
      <build>
        <defaultGoal>initialize</defaultGoal>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>project-init</id>
                <goals>
                  <goal>run</goal>
                </goals>
                <phase>initialize</phase>
                <configuration>
                  <target>
                    <mkdir dir="${basedir}/.mvn" />
                    <echo file="${basedir}/.mvn/pom.projectId" message="${projectId}" />
                    <echo file="${basedir}/.mvn/pom.organizationId" message="${organizationId}" />
                    <echo file="${basedir}/.mvn/pom.stageId" message="${stageId}" />
                    <echo file="${basedir}/.mvn/pom.gitflow.develop" message="${jgitflow.developBranchName}" />
                    <echo file="${basedir}/.mvn/pom.gitflow.master" message="${jgitflow.masterBranchName}" />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>i18n-module</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n</exists>
        </file>
      </activation>
      <dependencies>
        <dependency>
          <groupId>io.ultreia.java4all.i18n</groupId>
          <artifactId>i18n-spi</artifactId>
          <version>${lib.version.java4all.i18n}</version>
        </dependency>
        <dependency>
          <groupId>org.nuiton</groupId>
          <artifactId>nuiton-converter</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>com.google.auto.service</groupId>
          <artifactId>auto-service</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>io.ultreia.java4all.i18n</groupId>
          <artifactId>i18n-spi-builder</artifactId>
          <version>${lib.version.java4all.i18n}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>javax.annotation</groupId>
          <artifactId>jsr250-api</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
      <build>
        <!--<pluginManagement>-->
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-init</id>
                <goals>
                  <goal>init</goal>
                </goals>
              </execution>
              <execution>
                <id>default-generate-module-definition</id>
                <goals>
                  <goal>generate-module-definition</goal>
                </goals>
              </execution>
              <execution>
                <id>default-copy-module-resources</id>
                <goals>
                  <goal>copy-module-resources</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
        <!--</pluginManagement>-->
      </build>
    </profile>
    <profile>
      <id>i18n-parse-java</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n/parse-java</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-parse-java</id>
                <goals>
                  <goal>parse-java</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>i18n-parse-validation-messages</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n/parse-validation-messages</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-parse-validation-message</id>
                <goals>
                  <goal>parse-validation-messages</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>i18n-parse-validation-fields</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n/parse-validation-fields</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-parse-validation-fields</id>
                <goals>
                  <goal>parse-validation-fields</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>i18n-generate</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n/generate</exists>
        </file>
      </activation>
      <properties>
        <i18n.produceTranslations>true</i18n.produceTranslations>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-generate</id>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>i18n-application-bundle</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n/application-bundle</exists>
        </file>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-application-bundle</id>
                <goals>
                  <goal>application-bundle</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>i18n-check-i18n-artifacts</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/i18n/check-i18n-artifacts</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>io.ultreia.java4all.i18n</groupId>
            <artifactId>i18n-maven-plugin</artifactId>
            <version>${lib.version.java4all.i18n}</version>
            <executions>
              <execution>
                <id>default-check-i18n-artifacts</id>
                <goals>
                  <goal>check-i18n-artifacts</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>add-geotools-repository</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/add-geotools-repository</exists>
        </file>
      </activation>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-api</artifactId>
            <version>${lib.version.geoTools}</version>
            <exclusions>
              <exclusion>
                <groupId>jgridshift</groupId>
                <artifactId>jgridshift</artifactId>
              </exclusion>
              <exclusion>
                <groupId>java3d</groupId>
                <artifactId>vecmath</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-epsg-hsql</artifactId>
            <version>${lib.version.geoTools}</version>
          </dependency>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-main</artifactId>
            <version>${lib.version.geoTools}</version>
          </dependency>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-opengis</artifactId>
            <version>${lib.version.geoTools}</version>
            <exclusions>
              <exclusion>
                <groupId>java3d</groupId>
                <artifactId>vecmath</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-referencing</artifactId>
            <version>${lib.version.geoTools}</version>
            <exclusions>
              <exclusion>
                <groupId>jgridshift</groupId>
                <artifactId>jgridshift</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-render</artifactId>
            <version>${lib.version.geoTools}</version>
            <exclusions>
              <exclusion>
                <groupId>it.geosolutions.jaiext</groupId>
                <artifactId>jaiext</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.bandmerge</groupId>
                <artifactId>jt-bandmerge</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.bandcombine</groupId>
                <artifactId>jt-bandcombine</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.bandselect</groupId>
                <artifactId>jt-bandselect</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.imageio-ext</groupId>
                <artifactId>imageio-ext-tiff</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.affine</groupId>
                <artifactId>jt-affine</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.crop</groupId>
                <artifactId>jt-crop</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.colorconvert</groupId>
                <artifactId>jt-colorconvert</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.mosaic</groupId>
                <artifactId>jt-mosaic</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.zonal</groupId>
                <artifactId>jt-zonal</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.binarize</groupId>
                <artifactId>jt-binarize</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.stats</groupId>
                <artifactId>jt-stats</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.nullop</groupId>
                <artifactId>jt-nullop</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.piecewise</groupId>
                <artifactId>jt-piecewise</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.classifier</groupId>
                <artifactId>jt-classifier</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.rlookup</groupId>
                <artifactId>jt-rlookup</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.algebra</groupId>
                <artifactId>jt-algebra</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.border</groupId>
                <artifactId>jt-border</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.lookup</groupId>
                <artifactId>jt-lookup</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.warp</groupId>
                <artifactId>jt-warp</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.rescale</groupId>
                <artifactId>jt-rescale</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.format</groupId>
                <artifactId>jt-format</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.errordiffusion</groupId>
                <artifactId>jt-errordiffusion</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.orderdither</groupId>
                <artifactId>jt-orderdither</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.colorindexer</groupId>
                <artifactId>jt-colorindexer</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.imagefunction</groupId>
                <artifactId>jt-imagefunction</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.vectorbin</groupId>
                <artifactId>jt-vectorbin</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.buffer</groupId>
                <artifactId>jt-buffer</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.translate</groupId>
                <artifactId>jt-translate</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.scale</groupId>
                <artifactId>jt-scale</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.iterators</groupId>
                <artifactId>jt-iterators</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.utilities</groupId>
                <artifactId>jt-utilities</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.shadedrelief</groupId>
                <artifactId>jt-shadedrelief</artifactId>
              </exclusion>
              <exclusion>
                <groupId>it.geosolutions.jaiext.scale2</groupId>
                <artifactId>jt-scale2</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.jaitools</groupId>
                <artifactId>jt-zonalstats</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.jaitools</groupId>
                <artifactId>jt-utils</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.media</groupId>
                <artifactId>jai_imageio</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.media</groupId>
                <artifactId>jai_core</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <!-- Map -->
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-shapefile</artifactId>
            <version>${lib.version.geoTools}</version>
            <exclusions>
              <exclusion>
                <groupId>java3d</groupId>
                <artifactId>vecmath</artifactId>
              </exclusion>
              <exclusion>
                <groupId>jgridshift</groupId>
                <artifactId>jgridshift</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.geotools</groupId>
            <artifactId>gt-swing</artifactId>
            <version>${lib.version.geoTools}</version>
          </dependency>
          <dependency>
            <groupId>org.locationtech.jts</groupId>
            <artifactId>jts-core</artifactId>
            <version>${lib.version.jts}</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <repositories>
        <repository>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>osgeo</id>
          <name>OSGeo Release Repository</name>
          <url>https://repo.osgeo.org/repository/release/</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>osgeo</id>
          <name>OSGeo Release Repository</name>
          <url>https://repo.osgeo.org/repository/release/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <id>compiler-add-maven-gav-to-processor-profile</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/compiler-add-maven-gav-to-processor</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${plugin.version.compiler}</version>
            <configuration>
              <compilerArgs>
                <arg>-Xlint:unchecked</arg>
                <arg>-Aproject.baseUri=${project.baseUri}</arg>
                <arg>-Aproject.artifactId=${project.artifactId}</arg>
                <arg>-Aproject.groupId=${project.groupId}</arg>
                <arg>-Aproject.version=${project.version}</arg>
              </compilerArgs>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>add-generated-test-sources-ui</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/add-generated-test-sources-ui</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>add-test-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${project.build.directory}/generated-test-sources/ui</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>snapshot</id>
      <properties>
        <maven.source.skip>true</maven.source.skip>
        <maven.javadoc.skip>true</maven.javadoc.skip>
      </properties>
    </profile>
    <profile>
      <id>plugin-module</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/plugin</exists>
        </file>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.apache.maven.plugin-tools</groupId>
          <artifactId>maven-plugin-annotations</artifactId>
          <version>${plugin.version.plugins}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-artifact</artifactId>
          <version>${maven.version}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-core</artifactId>
          <version>${maven.version}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-model</artifactId>
          <version>${maven.version}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-plugin-api</artifactId>
          <version>${maven.version}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-classworlds</artifactId>
          <version>${lib.version.plexus-classworlds}</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-plugin-plugin</artifactId>
            <configuration>
              <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>helpmojo</goal>
                  <goal>descriptor</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-report-plugin</artifactId>
          </plugin>
        </plugins>
      </reporting>
    </profile>
    <profile>
      <id>plexus-module</id>
      <activation>
        <file>
          <exists>${basedir}/.mvn/plexus</exists>
        </file>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-component-annotations</artifactId>
          <scope>compile</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-component-metadata</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>generate-metadata</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <plugins>
          <plugin>
            <artifactId>maven-plugin-plugin</artifactId>
            <inherited>false</inherited>
          </plugin>
        </plugins>
      </reporting>
    </profile>
  </profiles>
</project>
