<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>nl.demon.shadowland.freedumbytes.maven.config</groupId>
  <artifactId>setup</artifactId>
  <version>4.3.2</version>
  <packaging>pom</packaging>

  <name>${organizationName} Maven Setup</name>
  <description>Setup the site, license and plugin configuration.</description>
  <url>${projectRoot}</url>
  <inceptionYear>2010</inceptionYear>

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <organization>
    <name>${organizationName}</name>
    <url>${organizationHost}</url>
  </organization>

  <developers>
    <developer>
      <id>jenejasper</id>
      <name>Jene Jasper</name>
      <email>jene.jasper@shadowland.demon.nl</email>
      <organization>${organizationName}</organization>
      <organizationUrl>${organizationHost}</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>+1</timezone>
      <properties>
        <picUrl>${mavenHost}/setup/images/avatar/jenejasper.png</picUrl>
      </properties>
    </developer>
  </developers>

  <contributors />

  <mailingLists />

  <scm>
    <connection>${sourceConnection}</connection>
    <developerConnection>${sourceDevConnection}</developerConnection>
    <url>${sourceWebRoot}</url>
    <tag>setup-4.3.2</tag>
  </scm>

  <ciManagement>
    <system>${ciSystem}</system>
    <url>${ciWebRoot}</url>
  </ciManagement>

  <issueManagement>
    <system>${issueSystem}</system>
    <url>${issueWebRoot}</url>
  </issueManagement>

  <distributionManagement>
    <repository>
      <id>nexus</id>
      <name>Internal Releases</name>
      <url>${nexusHost}/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
      <id>nexus</id>
      <name>Internal Snapshots</name>
      <url>${nexusHost}/content/repositories/snapshots</url>
    </snapshotRepository>
    <site>
      <id>mvn-sites</id>
      <name>Maven Documentation Sites</name>
      <url>dav:${projectRoot}</url>
    </site>
  </distributionManagement>

  <modules>
    <module>java</module>
  </modules>

  <properties>
    <devHost>http://freedumbytes.dev.net</devHost>
    <homeHost>http://www.shadowland.demon.nl</homeHost>
    <bitbucketHost>https://freedumbytes.bitbucket.io</bitbucketHost>
    <githubHost>https://freedumbytes.github.io</githubHost>
    <gitlabHost>https://freedumbytes.gitlab.io</gitlabHost>
    <ossrhHost>https://oss.sonatype.org</ossrhHost>
    <sonarCloudHost>https://sonarcloud.io</sonarCloudHost>

    <gitRepo>${devHost}/git-repo</gitRepo>
    <bitbucketRepo>https://bitbucket.org/freedumbytes</bitbucketRepo>
    <githubRepo>https://github.com/freedumbytes</githubRepo>
    <gitlabRepo>https://gitlab.com/freedumbytes</gitlabRepo>
    <gitlabRepoSSH>git@gitlab.com:freedumbytes</gitlabRepoSSH>
    <nexusRepo>${devHost}/nexus/#nexus-search;quick~nl.demon.shadowland</nexusRepo>
    <ossrhRepo>${ossrhHost}/#nexus-search;quick~nl.demon.shadowland</ossrhRepo>
    <sonarRepo>${devHost}/sonarqube</sonarRepo>
    <sonarCloudRepo>${sonarCloudHost}/organizations/freedumbytes</sonarCloudRepo>

    <apacheHost>${devHost}/manual</apacheHost>
    <tomcatHost>${devHost}/tomcat</tomcatHost>
    <payaraHost>${devHost}/payara</payaraHost>

    <fisheyeHost>${devHost}/fisheye</fisheyeHost>
    <jiraHost>${devHost}/jira</jiraHost>
    <jenkinsHost>${devHost}/jenkins</jenkinsHost>

    <mavenHost>${devHost}/mvn-sites</mavenHost>
    <projectRoot>${mavenHost}/setup</projectRoot>
    <organizationName>Free Dumb Bytes</organizationName>
    <organizationHost>${gitlabHost}</organizationHost>

    <nexusHost>${devHost}/nexus</nexusHost>
    <sonarHost>${devHost}/sonarqube</sonarHost>

    <sourceConnection>scm:git:${gitlabRepo}/setup.git</sourceConnection>
    <sourceDevConnection>scm:git:${gitlabRepoSSH}/setup.git</sourceDevConnection>
    <sourceWebRoot>${fisheyeHost}/browse/setup</sourceWebRoot>

    <ciSystem>Jenkins</ciSystem>
    <ciWebRoot>${jenkinsHost}/job/setup</ciWebRoot>

    <issueSystem>JIRA</issueSystem>
    <issueWebRoot>${jiraHost}/projects/MVNSTP</issueWebRoot>

    <skinGroupId>nl.demon.shadowland.freedumbytes.maven.custom.skins</skinGroupId>
    <skinArtifactId>maven-reflow-skin</skinArtifactId>
    <skinVersion>${customMavenReflowSkinVersion}</skinVersion>

    <velocityVersion>1.7</velocityVersion>
    <mavenFluidoSkinVersion>1.6</mavenFluidoSkinVersion>
    <mavenReflowSkinVersion>1.1.1</mavenReflowSkinVersion>
    <customSkinVersion>1.3.1</customSkinVersion>
    <customMavenPaperSkinVersion>${customSkinVersion}</customMavenPaperSkinVersion>
    <customMavenFluidoSkinVersion>${customSkinVersion}</customMavenFluidoSkinVersion>
    <customMavenReflowSkinVersion>${customSkinVersion}</customMavenReflowSkinVersion>

    <mavenHelpPluginVersion>2.2</mavenHelpPluginVersion>
    <mavenCleanPluginVersion>3.0.0</mavenCleanPluginVersion>
    <mavenToolchainsPluginVersion>1.1</mavenToolchainsPluginVersion>
    <versionsMavenPluginVersion>2.5</versionsMavenPluginVersion>
    <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
    <mavenArchetypePluginVersion>3.0.1</mavenArchetypePluginVersion>
    <mavenInvokerPluginVersion>3.0.1</mavenInvokerPluginVersion>
    <mavenJDepsPluginVersion>3.1.0</mavenJDepsPluginVersion>
    <mavenDependencyPluginVersion>3.0.2</mavenDependencyPluginVersion>
    <truezipMavenPluginVersion>1.2</truezipMavenPluginVersion>
    <mavenPatchPluginVersion>1.2</mavenPatchPluginVersion>
    <mavenResourcesPluginVersion>3.0.2</mavenResourcesPluginVersion>
    <mavenAntrunPluginVersion>1.8</mavenAntrunPluginVersion>
    <mavenCompilerPluginVersion>3.7.0</mavenCompilerPluginVersion>
    <mavenAnimalSnifferPluginVersion>1.16</mavenAnimalSnifferPluginVersion>
    <mavenEnforcerPluginVersion>1.4.1</mavenEnforcerPluginVersion>
    <extraEnforcerRulesVersion>1.0-beta-6</extraEnforcerRulesVersion>
    <jacocoMavenPluginVersion>0.7.9</jacocoMavenPluginVersion>
    <mavenSurefirePluginVersion>2.20.1</mavenSurefirePluginVersion>
    <mavenFailsafePluginVersion>${mavenSurefirePluginVersion}</mavenFailsafePluginVersion>
    <mavenSurefireReportPluginVersion>${mavenSurefirePluginVersion}</mavenSurefireReportPluginVersion>
    <mavenJarPluginVersion>3.0.2</mavenJarPluginVersion>
    <mavenEjbPluginVersion>3.0.0</mavenEjbPluginVersion>
    <mavenWarPluginVersion>3.2.0</mavenWarPluginVersion>
    <mavenRarPluginVersion>2.4</mavenRarPluginVersion>
    <mavenEarPluginVersion>2.10.1</mavenEarPluginVersion>
    <mavenShadePluginVersion>3.1.0</mavenShadePluginVersion>
    <mavenSourcePluginVersion>3.0.1</mavenSourcePluginVersion>
    <mavenJavadocPluginVersion>3.0.0</mavenJavadocPluginVersion>
    <mavenAssemblyPluginVersion>3.1.0</mavenAssemblyPluginVersion>
    <buildHelperMavenPluginVersion>3.0.0</buildHelperMavenPluginVersion>
    <mavenInstallPluginVersion>2.5.2</mavenInstallPluginVersion>
    <mavenJarsignerPluginVersion>1.4</mavenJarsignerPluginVersion>
    <mavenGPGPluginVersion>1.6</mavenGPGPluginVersion>
    <nexusStagingMavenPluginVersion>1.6.8</nexusStagingMavenPluginVersion>
    <mavenDeployPluginVersion>2.8.2</mavenDeployPluginVersion>
    <mavenReleasePluginVersion>2.5.3</mavenReleasePluginVersion>
    <mavenScmPluginVersion>1.9.5</mavenScmPluginVersion>
    <mavenSitePluginVersion>3.7</mavenSitePluginVersion>
    <mavenProjectInfoReportsPluginVersion>2.9</mavenProjectInfoReportsPluginVersion>
    <mavenDependencyCheckVersion>3.1.0</mavenDependencyCheckVersion>
    <sonarMavenPluginVersion>3.4.0.905</sonarMavenPluginVersion>
    <mavenSonarReportPluginVersion>0.1</mavenSonarReportPluginVersion>

    <wagonMavenPluginVersion>1.0</wagonMavenPluginVersion>
    <wagonProviderVersion>3.0.0</wagonProviderVersion>

    <versionsRulesVersion>1.3.0</versionsRulesVersion>
    <versionsRulesFolderVersion>${versionsRulesVersion}</versionsRulesFolderVersion>
    <versionsRulesPath>${nexusHost}/content/groups/public/nl/demon/shadowland/freedumbytes/maven/versioning/versions-rules/${versionsRulesFolderVersion}</versionsRulesPath>

    <jdkHome>${env.JAVA_HOME}</jdkHome>
    <jvm>${jdkHome}/bin/java</jvm>
    <maven.compiler.executable>${jdkHome}/bin/javac</maven.compiler.executable>
    <maven.compiler.fork>true</maven.compiler.fork>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    <maven.compiler.source>${maven.compiler.target}</maven.compiler.source>
    <maven.compiler.target>${maven.compiler.compilerVersion}</maven.compiler.target>
    <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
    <maven.compiler.showWarnings>true</maven.compiler.showWarnings>
    <maven.compiler.meminitial>128m</maven.compiler.meminitial>
    <maven.compiler.maxmem>512m</maven.compiler.maxmem>

    <mojoSignatureVersion>1.0</mojoSignatureVersion>
    <mojoSignatureArtifactId>java18</mojoSignatureArtifactId>
    <animal.sniffer.signature>org.codehaus.mojo.signature:${mojoSignatureArtifactId}:${mojoSignatureVersion}</animal.sniffer.signature>
    <ignoreDependencies>true</ignoreDependencies>

    <extraEnforcerRulesMaxJdkVersion>${maven.compiler.target}</extraEnforcerRulesMaxJdkVersion>
    <extraEnforcerRulesFail>true</extraEnforcerRulesFail>

    <maven.source.attach>true</maven.source.attach>
    <maven.source.includePom>true</maven.source.includePom>
    <maven.source.excludeResources>false</maven.source.excludeResources>

    <javadocExecutable>${jdkHome}/bin/javadoc</javadocExecutable>
    <javadocVersion>${maven.compiler.target}</javadocVersion>
    <javadocDoclint>none</javadocDoclint>
    <javadocQuiet>true</javadocQuiet>
    <javadocAdditionalOptions />
    <javadocDetectJavaApiLink>false</javadocDetectJavaApiLink>
    <javadocDetectOfflineLinks>false</javadocDetectOfflineLinks>
    <javadocBreakiterator>true</javadocBreakiterator>
    <javadocShow>protected</javadocShow>
    <javadocMinmemory>128m</javadocMinmemory>
    <javadocMaxmemory>512m</javadocMaxmemory>

    <jacoco.skip>false</jacoco.skip>
    <skipCodeCoverage>${jacoco.skip}</skipCodeCoverage>
    <jacoco.append>false</jacoco.append>
    <coverageReportsPath>${project.build.directory}/coverage-reports</coverageReportsPath>
    <coverageReportsPathUnit>${coverageReportsPath}/jacoco-unit.exec</coverageReportsPathUnit>
    <coverageReportsPathIntegration>${coverageReportsPath}/jacoco-integration.exec</coverageReportsPathIntegration>

    <skipTests>false</skipTests>
    <skipUnitTests>${skipTests}</skipUnitTests>
    <skipIntegrationTests>${skipTests}</skipIntegrationTests>
    <linkXRef>false</linkXRef>
    <aggregateSurefireReports>true</aggregateSurefireReports>
    <surefire.runOrder>hourly</surefire.runOrder>
    <failsafe.runOrder>hourly</failsafe.runOrder>
    <disableXmlReport>false</disableXmlReport>
    <surefire.reportFormat>brief</surefire.reportFormat>
    <failsafe.reportFormat>brief</failsafe.reportFormat>
    <trimStackTrace>false</trimStackTrace>
    <surefire.printSummary>true</surefire.printSummary>
    <failsafe.printSummary>true</failsafe.printSummary>

    <owaspReportsPath>${project.build.directory}/owasp-reports</owaspReportsPath>
    <owaspReportFormat>all</owaspReportFormat>
    <cveValidForHours>24</cveValidForHours>

    <customSuppressionHintsVersion>1.0.0</customSuppressionHintsVersion>
    <customSuppressionHintsFolderVersion>${customSuppressionHintsVersion}</customSuppressionHintsFolderVersion>
    <customSuppressionHintsPath>${nexusHost}/content/groups/public/nl/demon/shadowland/freedumbytes/maven/owasp/dependency-check/${customSuppressionHintsFolderVersion}</customSuppressionHintsPath>
    <customSuppressionFile>${customSuppressionHintsPath}/dependency-check-${customSuppressionHintsVersion}-suppression.xml</customSuppressionFile>
    <customHintsFile>${customSuppressionHintsPath}/dependency-check-${customSuppressionHintsVersion}-hints.xml</customHintsFile>

    <sonar.host.url>${sonarHost}</sonar.host.url>
    <sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
    <sonar.jacoco.reportPaths>${coverageReportsPathUnit},${coverageReportsPathIntegration}</sonar.jacoco.reportPaths>
    <sonar.dependencyCheck.reportPath>${owaspReportsPath}/dependency-check-report.xml</sonar.dependencyCheck.reportPath>
    <sonar.dependencyCheck.htmlReportPath>${owaspReportsPath}/dependency-check-report.html</sonar.dependencyCheck.htmlReportPath>
    <sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>
    <sonar.java.binaries>target/classes</sonar.java.binaries>
    <sonar.java.libraries>target/**/*.jar</sonar.java.libraries>
    <sonar.exclusions>**/generated-sources/**,**/generated/**</sonar.exclusions>
    <sonar.coverage.exclusions>**/generated/**</sonar.coverage.exclusions>
    <sonar.cpd.exclusions>**/generated/**</sonar.cpd.exclusions>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <mavenWarFailOnMissingWebXml>false</mavenWarFailOnMissingWebXml>
    <mavenEarEncoding>UTF-8</mavenEarEncoding>
    <maven.ear.duplicateArtifactsBreakTheBuild>true</maven.ear.duplicateArtifactsBreakTheBuild>

    <createChecksum>true</createChecksum>
    <installAtEnd>true</installAtEnd>
    <deployAtEnd>true</deployAtEnd>
    <updateReleaseInfo>true</updateReleaseInfo>
    <autoVersionSubmodules>true</autoVersionSubmodules>
    <releaseProfiles>documents</releaseProfiles>
    <pushChanges>false</pushChanges>

    <generateSitemap>true</generateSitemap>
    <dependency.details.enabled>false</dependency.details.enabled>
    <dependency.locations.enabled>false</dependency.locations.enabled>
    <licenseLinkOnly>true</licenseLinkOnly>
  </properties>

  <profiles>
    <profile>
      <id>openSource</id>

      <distributionManagement>
        <snapshotRepository>
          <id>ossrh</id>
          <name>Open Source Snapshots</name>
          <url>${nexusHost}/content/repositories/snapshots</url>
        </snapshotRepository>
      </distributionManagement>

      <properties>
        <mavenHost>${gitlabHost}</mavenHost>
        <projectRoot>${gitlabHost}/setup</projectRoot>
        <organizationHost>${gitlabHost}</organizationHost>

        <nexusHost>${ossrhHost}</nexusHost>
        <sonarHost>${sonarCloudHost}</sonarHost>

        <sourceConnection>scm:git:${gitlabRepo}/setup.git</sourceConnection>
        <sourceDevConnection>scm:git:${gitlabRepoSSH}/setup.git</sourceDevConnection>
        <sourceWebRoot>${gitlabRepo}/setup/tree/master</sourceWebRoot>

        <ciSystem>GitLab CI</ciSystem>
        <ciWebRoot>${gitlabRepo}/setup/pipelines</ciWebRoot>

        <issueSystem>GitLab</issueSystem>
        <issueWebRoot>${gitlabRepo}/setup/issues</issueWebRoot>

        <maven.source.attach>true</maven.source.attach>
      </properties>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
                <configuration>
                  <keyname>${gpg.keyname}</keyname>
                  <passphraseServerId>${gpg.keyname}</passphraseServerId>
                  <gpgArguments>
                    <arg>--pinentry-mode</arg>
                    <arg>loopback</arg>
                  </gpgArguments>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>enableUpdatesReports</id>

      <reporting>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <reportSets>
              <reportSet>
                <reports>
                  <report>dependency-updates-report</report>
                  <report>plugin-updates-report</report>
                  <report>property-updates-report</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>

    <profile>
      <id>enableJavadocReports</id>

      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${mavenJavadocPluginVersion}</version>
            <configuration>
              <encoding>${project.build.sourceEncoding}</encoding>
              <docencoding>${project.reporting.outputEncoding}</docencoding>
              <javadocExecutable>${javadocExecutable}</javadocExecutable>
              <javadocVersion>${javadocVersion}</javadocVersion>
              <source>${maven.compiler.source}</source>
              <doclint>${javadocDoclint}</doclint>
              <quiet>${javadocQuiet}</quiet>
              <additionalOptions>${javadocAdditionalOptions}</additionalOptions>
              <detectJavaApiLink>${javadocDetectJavaApiLink}</detectJavaApiLink>
              <detectOfflineLinks>${javadocDetectOfflineLinks}</detectOfflineLinks>
              <breakiterator>${javadocBreakiterator}</breakiterator>
              <show>${javadocShow}</show>
              <minmemory>${javadocMinmemory}</minmemory>
              <maxmemory>${javadocMaxmemory}</maxmemory>
            </configuration>
            <reportSets>
              <reportSet>
                <id>javadocs-report</id>
                <reports>
                  <report>javadoc</report>
                </reports>
              </reportSet>
              <reportSet>
                <id>aggregate-javadocs-report</id>
                <reports>
                  <report>aggregate</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>

    <profile>
      <id>enableDependencyCheckReport</id>

      <reporting>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <version>${mavenDependencyCheckVersion}</version>
            <reportSets>
              <reportSet>
                <reports>
                  <report>aggregate</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>

    <profile>
      <id>autoMaven3Only</id>

      <activation>
        <file>
          <exists>${basedir}</exists>
        </file>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-descriptor</id>
                <goals>
                  <goal>attach-descriptor</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>java</id>

      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
          </plugin>
        </plugins>
      </build>

      <reporting>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>${mavenSurefireReportPluginVersion}</version>
            <configuration>
              <skipSurefireReport>${skipUnitTests}</skipSurefireReport>
              <skipFailsafeReport>${skipIntegrationTests}</skipFailsafeReport>
              <linkXRef>${linkXRef}</linkXRef>
              <aggregate>${aggregateSurefireReports}</aggregate>
            </configuration>
            <reportSets>
              <reportSet>
                <reports>
                  <report>report-only</report>
                  <report>failsafe-report-only</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
        </plugins>
      </reporting>
    </profile>

    <profile>
      <id>integrationTestsOnly</id>

      <properties>
        <skipUnitTests>true</skipUnitTests>
        <skipIntegrationTests>false</skipIntegrationTests>
      </properties>
    </profile>

    <profile>
      <id>documents</id>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-file</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ftp</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-http</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-http-lightweight</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-scm</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>

      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-webdav-jackrabbit</artifactId>
        <version>${wagonProviderVersion}</version>
      </extension>
    </extensions>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-help-plugin</artifactId>
          <version>${mavenHelpPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>wagon-maven-plugin</artifactId>
          <version>${wagonMavenPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${mavenCleanPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-toolchains-plugin</artifactId>
          <version>${mavenToolchainsPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${versionsMavenPluginVersion}</version>
          <configuration>
            <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
            <rulesUri>${versionsRulesPath}/versions-rules-${versionsRulesVersion}.xml</rulesUri>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${mavenPluginPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-archetype-plugin</artifactId>
          <version>${mavenArchetypePluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-invoker-plugin</artifactId>
          <version>${mavenInvokerPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jdeps-plugin</artifactId>
          <version>${mavenJDepsPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${mavenDependencyPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>truezip-maven-plugin</artifactId>
          <version>${truezipMavenPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-patch-plugin</artifactId>
          <version>${mavenPatchPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${mavenResourcesPluginVersion}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${mavenAntrunPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${mavenCompilerPluginVersion}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <fork>${maven.compiler.fork}</fork>
            <executable>${maven.compiler.executable}</executable>
            <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
            <source>${maven.compiler.source}</source>
            <target>${maven.compiler.target}</target>
            <showDeprecation>${maven.compiler.showDeprecation}</showDeprecation>
            <showWarnings>${maven.compiler.showWarnings}</showWarnings>
            <meminitial>${maven.compiler.meminitial}</meminitial>
            <maxmem>${maven.compiler.maxmem}</maxmem>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>animal-sniffer-maven-plugin</artifactId>
          <version>${mavenAnimalSnifferPluginVersion}</version>
          <configuration>
            <signature>${animal.sniffer.signature}</signature>
            <ignoreDependencies>${ignoreDependencies}</ignoreDependencies>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${mavenEnforcerPluginVersion}</version>
          <configuration>
            <rules>
              <enforceBytecodeVersion>
                <maxJdkVersion>${extraEnforcerRulesMaxJdkVersion}</maxJdkVersion>
                <ignoredScopes>
                  <ignoredScope>test</ignoredScope>
                </ignoredScopes>
              </enforceBytecodeVersion>
            </rules>
            <fail>${extraEnforcerRulesFail}</fail>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>${extraEnforcerRulesVersion}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacocoMavenPluginVersion}</version>
          <configuration>
            <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
            <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
            <skip>${skipCodeCoverage}</skip>
            <append>${jacoco.append}</append>
          </configuration>
          <executions>
            <execution>
              <id>agent-unit</id>
              <configuration>
                <destFile>${coverageReportsPathUnit}</destFile>
              </configuration>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
            </execution>
            <execution>
              <id>agent-integration</id>
              <configuration>
                <destFile>${coverageReportsPathIntegration}</destFile>
              </configuration>
              <goals>
                <goal>prepare-agent-integration</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${mavenSurefirePluginVersion}</version>
          <configuration>
            <skipTests>${skipUnitTests}</skipTests>
            <runOrder>${surefire.runOrder}</runOrder>
            <jvm>${jvm}</jvm>
            <disableXmlReport>${disableXmlReport}</disableXmlReport>
            <reportFormat>${surefire.reportFormat}</reportFormat>
            <trimStackTrace>${trimStackTrace}</trimStackTrace>
            <printSummary>${surefire.printSummary}</printSummary>
            <includes>
              <include>**/Test*.java</include>
              <include>**/*Test.java</include>
              <include>**/*Tests.java</include>
              <include>**/*TestCase.java</include>
              <include>**/*UnitTest.java</include>
            </includes>
            <excludes>
              <exclude>**/*IntegrationTest.java</exclude>
              <exclude>**/*IntegrationTests.java</exclude>
            </excludes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${mavenFailsafePluginVersion}</version>
          <configuration>
            <encoding>${project.reporting.outputEncoding}</encoding>
            <skipTests>${skipIntegrationTests}</skipTests>
            <runOrder>${failsafe.runOrder}</runOrder>
            <jvm>${jvm}</jvm>
            <disableXmlReport>${disableXmlReport}</disableXmlReport>
            <reportFormat>${failsafe.reportFormat}</reportFormat>
            <trimStackTrace>${trimStackTrace}</trimStackTrace>
            <printSummary>${failsafe.printSummary}</printSummary>
            <includes>
              <include>**/IT*.java</include>
              <include>**/*IT.java</include>
              <include>**/*ITCase.java</include>
              <include>**/*IntegrationTest.java</include>
              <include>**/*IntegrationTests.java</include>
            </includes>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${mavenJarPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ejb-plugin</artifactId>
          <version>${mavenEjbPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>${mavenWarPluginVersion}</version>
          <configuration>
            <failOnMissingWebXml>${mavenWarFailOnMissingWebXml}</failOnMissingWebXml>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-rar-plugin</artifactId>
          <version>${mavenRarPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <version>${mavenEarPluginVersion}</version>
          <configuration>
            <encoding>${mavenEarEncoding}</encoding>
            <duplicateArtifactsBreakTheBuild>${maven.ear.duplicateArtifactsBreakTheBuild}</duplicateArtifactsBreakTheBuild>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${mavenShadePluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${mavenSourcePluginVersion}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>verify</phase>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
              <configuration>
                <attach>${maven.source.attach}</attach>
                <includePom>${maven.source.includePom}</includePom>
                <excludeResources>${maven.source.excludeResources}</excludeResources>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${mavenJavadocPluginVersion}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <docencoding>${project.reporting.outputEncoding}</docencoding>
            <javadocExecutable>${javadocExecutable}</javadocExecutable>
            <javadocVersion>${javadocVersion}</javadocVersion>
            <source>${maven.compiler.source}</source>
            <doclint>${javadocDoclint}</doclint>
            <quiet>${javadocQuiet}</quiet>
            <additionalOptions>${javadocAdditionalOptions}</additionalOptions>
            <detectJavaApiLink>${javadocDetectJavaApiLink}</detectJavaApiLink>
            <detectOfflineLinks>${javadocDetectOfflineLinks}</detectOfflineLinks>
            <breakiterator>${javadocBreakiterator}</breakiterator>
            <show>${javadocShow}</show>
            <minmemory>${javadocMinmemory}</minmemory>
            <maxmemory>${javadocMaxmemory}</maxmemory>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadoc</id>
              <phase>verify</phase>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${mavenAssemblyPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${buildHelperMavenPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${mavenInstallPluginVersion}</version>
          <configuration>
            <createChecksum>${createChecksum}</createChecksum>
            <installAtEnd>${installAtEnd}</installAtEnd>
            <updateReleaseInfo>${updateReleaseInfo}</updateReleaseInfo>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jarsigner-plugin</artifactId>
          <version>${mavenJarsignerPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${mavenGPGPluginVersion}</version>
        </plugin>

        <plugin>
          <groupId>org.sonatype.plugins</groupId>
          <artifactId>nexus-staging-maven-plugin</artifactId>
          <version>${nexusStagingMavenPluginVersion}</version>
          <extensions>true</extensions>
          <configuration>
            <serverId>ossrh</serverId>
            <nexusUrl>${nexusHost}</nexusUrl>
            <autoReleaseAfterClose>true</autoReleaseAfterClose>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${mavenDeployPluginVersion}</version>
          <configuration>
            <deployAtEnd>${deployAtEnd}</deployAtEnd>
            <updateReleaseInfo>${updateReleaseInfo}</updateReleaseInfo>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${mavenReleasePluginVersion}</version>
          <configuration>
            <autoVersionSubmodules>${autoVersionSubmodules}</autoVersionSubmodules>
            <releaseProfiles>${releaseProfiles}</releaseProfiles>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-plugin</artifactId>
          <version>${mavenScmPluginVersion}</version>
          <configuration>
            <pushChanges>${pushChanges}</pushChanges>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${mavenSitePluginVersion}</version>
          <dependencies>
            <dependency>
              <groupId>nl.demon.shadowland.freedumbytes.patch.lt.velykis.maven.skins</groupId>
              <artifactId>reflow-velocity-tools</artifactId>
              <version>${customMavenReflowSkinVersion}</version>
            </dependency>
          </dependencies>
          <configuration>
            <generateSitemap>${generateSitemap}</generateSitemap>
            <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
            <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>${mavenDependencyCheckVersion}</version>
          <configuration>
            <name>Dependency Check Report</name>
            <outputDirectory>${owaspReportsPath}</outputDirectory>
            <format>${owaspReportFormat}</format>
            <cveValidForHours>${cveValidForHours}</cveValidForHours>
            <suppressionFile>${customSuppressionFile}</suppressionFile>
            <hintsFile>${customHintsFile}</hintsFile>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>${sonarMavenPluginVersion}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>${mavenProjectInfoReportsPluginVersion}</version>
        <configuration>
          <dependencyDetailsEnabled>${dependency.details.enabled}</dependencyDetailsEnabled>
          <dependencyLocationsEnabled>${dependency.locations.enabled}</dependencyLocationsEnabled>
          <linkOnly>${licenseLinkOnly}</linkOnly>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>summary</report>
              <report>license</report>
              <report>project-team</report>
              <report>modules</report>
              <report>scm</report>
              <report>issue-tracking</report>
              <report>cim</report>
              <report>distribution-management</report>
              <report>dependency-info</report>
              <report>dependencies</report>
              <report>dependency-management</report>
              <report>dependency-convergence</report>
              <report>plugins</report>
              <report>plugin-management</report>
              <report>mailing-list</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>

      <plugin>
        <groupId>org.codehaus.sonar-plugins</groupId>
        <artifactId>maven-report</artifactId>
        <version>${mavenSonarReportPluginVersion}</version>
        <configuration>
          <sonarHostURL>${sonarHost}</sonarHostURL>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>
