<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.lancethomps</groupId>
  <artifactId>lancethomps-parent</artifactId>
  <version>1.14.0</version>
  <packaging>pom</packaging>
  <name>${project.groupId}:${project.artifactId}</name>
  <description>Shared Maven configuration for com.lancethomps Maven repos</description>
  <url>https://github.com/lancethomps/lancethomps-parent</url>
  <licenses>
    <license>
      <name>The Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>
  <developers>
    <developer>
      <name>Lance Thompson</name>
      <email>lthompson05@gmail.com</email>
      <organizationUrl>https://github.com/lancethomps</organizationUrl>
    </developer>
  </developers>
  <modules>
    <module>modules/lancethomps-build-tools</module>
    <module>modules/lancethomps-java-cli</module>
  </modules>
  <scm>
    <connection>scm:git:ssh://git@github.com:lancethomps/lancethomps-parent.git</connection>
    <developerConnection>scm:git:ssh://git@github.com:lancethomps/lancethomps-parent.git</developerConnection>
    <url>https://github.com/lancethomps/lancethomps-parent</url>
  </scm>
  <distributionManagement>
    <repository>
      <id>sonatype-releases</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </repository>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <java.level>1.8</java.level>
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss z</maven.build.timestamp.format>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <tests.timeout>500</tests.timeout>
    <skip.tests.integration>false</skip.tests.integration>
    <skip.tests.unit>false</skip.tests.unit>
    <duplicate-finder.failBuildInCaseOfDifferentContentConflict>true</duplicate-finder.failBuildInCaseOfDifferentContentConflict>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.2</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>de.jollyday</groupId>
        <artifactId>jollyday</artifactId>
        <version>0.5.10</version>
        <exclusions>
          <exclusion>
            <artifactId>jaxb-api</artifactId>
            <groupId>javax.xml.bind</groupId>
          </exclusion>
          <exclusion>
            <artifactId>jaxb-runtime</artifactId>
            <groupId>org.glassfish.jaxb</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.9</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.6.1</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>31.1-jre</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>3.0.2</version>
      </dependency>
      <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>2.3.3</version>
      </dependency>
      <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>1.2.2</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.3.3</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-csv</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-smile</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jdk8</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-afterburner</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jsonSchema</artifactId>
        <version>2.13.2</version>
        <exclusions>
          <exclusion>
            <artifactId>validation-api</artifactId>
            <groupId>*</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>2.13.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.17.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.17.2</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>5.3.18</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.18</version>
      </dependency>
      <dependency>
        <groupId>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>3.8.0</version>
      </dependency>
      <dependency>
        <groupId>com.googlecode.java-diff-utils</groupId>
        <artifactId>diffutils</artifactId>
        <version>1.3.0</version>
        <exclusions>
          <exclusion>
            <artifactId>*</artifactId>
            <groupId>*</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.17</version>
      </dependency>
      <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
        <exclusions>
          <exclusion>
            <artifactId>stax-api</artifactId>
            <groupId>stax</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-jcs-core</artifactId>
        <version>2.2.1</version>
      </dependency>
      <!-- ******************************************************************** -->
      <!-- Serialization -->
      <!-- ******************************************************************** -->
      <dependency>
        <groupId>com.github.bohnman</groupId>
        <artifactId>squiggly-filter-jackson</artifactId>
        <version>1.3.18</version>
      </dependency>
      <dependency>
        <groupId>com.mikesamuel</groupId>
        <artifactId>json-sanitizer</artifactId>
        <version>1.2.3</version>
        <exclusions>
          <exclusion>
            <artifactId>*</artifactId>
            <groupId>*</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>4.1</version>
      </dependency>
      <dependency>
        <groupId>net.jpountz.lz4</groupId>
        <artifactId>lz4</artifactId>
        <version>1.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20220320</version>
      </dependency>
      <dependency>
        <groupId>org.simpleframework</groupId>
        <artifactId>simple-xml</artifactId>
        <version>2.7.1</version>
        <exclusions>
          <exclusion>
            <artifactId>stax-api</artifactId>
            <groupId>stax</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.30</version>
      </dependency>
      <!-- ******************************************************************** -->
      <!-- Expressions -->
      <!-- ******************************************************************** -->
      <dependency>
        <groupId>ognl</groupId>
        <artifactId>ognl</artifactId>
        <version>3.3.2</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>5.3.18</version>
      </dependency>
      <dependency>
        <groupId>com.github.spullara.mustache.java</groupId>
        <artifactId>compiler</artifactId>
        <version>0.9.10</version>
      </dependency>
      <!-- ******************************************************************** -->
      <!-- Web -->
      <!-- ******************************************************************** -->
      <dependency>
        <groupId>org.owasp.esapi</groupId>
        <artifactId>esapi</artifactId>
        <version>2.2.3.1</version>
        <exclusions>
          <exclusion>
            <artifactId>*</artifactId>
            <groupId>*</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>eu.bitwalker</groupId>
        <artifactId>UserAgentUtils</artifactId>
        <version>1.21</version>
      </dependency>
      <dependency>
        <groupId>com.github.ua-parser</groupId>
        <artifactId>uap-java</artifactId>
        <version>1.5.2</version>
      </dependency>
      <!-- ******************************************************************** -->
      <!-- Metrics -->
      <!-- ******************************************************************** -->
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-annotation</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-core</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-healthchecks</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-jmx</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-json</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-servlets</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-legacy-adapter</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics5</groupId>
        <artifactId>metrics-legacy-adapter-healthchecks</artifactId>
        <version>5.0.0</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.4</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.5.0</version>
      </dependency>
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.12.2</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>5.3.18</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.3.18</version>
      </dependency>
      <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>0.10.2</version>
        <exclusions>
          <exclusion>
            <artifactId>*</artifactId>
            <groupId>*</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <!-- TESTS -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>2.0.2-beta</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.python</groupId>
        <artifactId>jython-standalone</artifactId>
        <version>2.7.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jeasy</groupId>
        <artifactId>easy-random-core</artifactId>
        <version>5.0.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>maven-central</id>
      <url>https://repo1.maven.org/maven2</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>sonatype-releases</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>sonatype-snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>maven-central</id>
      <url>https://repo1.maven.org/maven2</url>
      <layout>default</layout>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>maven-central-alt</id>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>sonatype-releases-plugins</id>
      <url>https://oss.sonatype.org/content/repositories/releases</url>
    </pluginRepository>
    <pluginRepository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>sonatype-snapshots-plugins</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.json</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.yaml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.json</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.yaml</include>
        </includes>
      </testResource>
      <testResource>
        <directory>src/test/java</directory>
        <includes>
          <include>**/*.json</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.yaml</include>
        </includes>
      </testResource>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.github.ekryd.sortpom</groupId>
          <artifactId>sortpom-maven-plugin</artifactId>
          <version>2.15.0</version>
          <executions>
            <execution>
              <phase>validate</phase>
              <goals>
                <goal>sort</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <createBackupFile>false</createBackupFile>
            <expandEmptyElements>false</expandEmptyElements>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <debug>true</debug>
            <encoding>UTF-8</encoding>
            <fork>true</fork>
            <source>${java.level}</source>
            <target>${java.level}</target>
            <showDeprecation>false</showDeprecation>
            <showWarnings>false</showWarnings>
            <compilerArgs>
              <arg>-Xlint:classfile</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.3.1</version>
          <configuration>
            <doclint>none</doclint>
            <failOnError>false</failOnError>
            <quiet>true</quiet>
            <useStandardDocletOptions>true</useStandardDocletOptions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.10.0</version>
          <configuration>
            <relativizeDecorationLinks>false</relativizeDecorationLinks>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.8.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>3.0.0-M2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.0.0-M1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.2.0</version>
          <configuration>
            <overwrite>true</overwrite>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>3.0.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>3.15.0</version>
          <dependencies>
            <dependency>
              <groupId>com.lancethomps</groupId>
              <artifactId>lancethomps-build-tools</artifactId>
              <version>1.14.0</version>
            </dependency>
          </dependencies>
          <configuration>
            <analysisCache>true</analysisCache>
            <minimumPriority>2</minimumPriority>
            <printFailingErrors>true</printFailingErrors>
            <rulesets>
              <ruleset>pmd/non-test-rules.xml</ruleset>
              <ruleset>pmd/standard-rules.xml</ruleset>
            </rulesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.2.0</version>
          <executions>
            <execution>
              <id>analyze</id>
              <goals>
                <goal>analyze-only</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <failOnWarning>true</failOnWarning>
            <ignoreNonCompile>true</ignoreNonCompile>
            <ignoredUsedUndeclaredDependencies combine.children="append">
              <dependency>*</dependency>
            </ignoredUsedUndeclaredDependencies>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.0.0-M3</version>
          <executions>
            <execution>
              <id>validate-enforcer</id>
              <phase>validate</phase>
              <goals>
                <goal>enforce</goal>
              </goals>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>1.3</version>
            </dependency>
          </dependencies>
          <configuration>
            <rules>
              <banCircularDependencies />
              <bannedDependencies>
                <excludes combine.children="append">
                  <exclude>com.sun.xml.bind:jaxb-core</exclude>
                  <exclude>javax.activation:activation</exclude>
                  <exclude>javax.xml.bind:jaxb-api</exclude>
                  <exclude>stax:stax-api</exclude>
                </excludes>
              </bannedDependencies>
              <!-- NB: requireMavenVersion is necessary to get versions:display-plugin-updates to run correctly. -->
              <requireMavenVersion>
                <version>[3.6.0,)</version>
              </requireMavenVersion>
              <requireUpperBoundDeps />
            </rules>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.basepom.maven</groupId>
          <artifactId>duplicate-finder-maven-plugin</artifactId>
          <version>1.5.0</version>
          <executions>
            <execution>
              <id>default</id>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <checkRuntimeClasspath>false</checkRuntimeClasspath>
            <checkTestClasspath>false</checkTestClasspath>
            <failBuildInCaseOfDifferentContentConflict>${duplicate-finder.failBuildInCaseOfDifferentContentConflict}</failBuildInCaseOfDifferentContentConflict>
            <includePomProjects>true</includePomProjects>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.1.2</version>
          <executions>
            <execution>
              <id>validate-java</id>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <cacheFile>${project.basedir}/checkstyle-cachefile</cacheFile>
                <configLocation>checkstyle/java-checkstyle.xml</configLocation>
                <includeResources>false</includeResources>
                <includeTestSourceDirectory>true</includeTestSourceDirectory>
                <includes>**/*.java</includes>
                <outputFile>${project.build.directory}/checkstyle-report-java.xml</outputFile>
              </configuration>
            </execution>
            <execution>
              <id>validate-java-import-control</id>
              <phase>none</phase>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <cacheFile>${project.basedir}/checkstyle-cachefile-import-control-only</cacheFile>
                <configLocation>checkstyle/java-checkstyle-import-control-only.xml</configLocation>
                <includeResources>false</includeResources>
                <includeTestSourceDirectory>true</includeTestSourceDirectory>
                <includes>**/*.java</includes>
                <outputFile>${project.build.directory}/checkstyle-report-java-import-control-only.xml</outputFile>
              </configuration>
            </execution>
            <execution>
              <id>validate-non-java</id>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <cacheFile>${project.basedir}/checkstyle-cachefile-non-java</cacheFile>
                <configLocation>checkstyle/non-java-checkstyle.xml</configLocation>
                <includeResources>false</includeResources>
                <includeTestSourceDirectory>false</includeTestSourceDirectory>
                <outputFile>${project.build.directory}/checkstyle-report-non-java.xml</outputFile>
                <sourceDirectories>${project.basedir}/src</sourceDirectories>
                <includes>**/*.ftl,
                  **/spring-*.xml,
                  **/conf/*/resources/*.xml,
                  **/web*.xml</includes>
                <excludes>**/target/**,
                  **/thirdparty/**,
                  **/*.properties,
                  log4j.jsp</excludes>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>8.34</version>
            </dependency>
            <dependency>
              <groupId>com.github.sevntu-checkstyle</groupId>
              <artifactId>sevntu-checks</artifactId>
              <version>1.37.1</version>
            </dependency>
            <dependency>
              <groupId>com.lancethomps</groupId>
              <artifactId>lancethomps-build-tools</artifactId>
              <version>1.14.0</version>
            </dependency>
          </dependencies>
          <configuration>
            <consoleOutput>true</consoleOutput>
            <encoding>UTF-8</encoding>
            <failOnViolation>true</failOnViolation>
            <logViolationsToConsole>true</logViolationsToConsole>
            <outputFileFormat>xml</outputFileFormat>
            <propertyExpansion>basedir=${project.basedir}</propertyExpansion>
          </configuration>
        </plugin>
        <!-- Report on code coverage of tests -->
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.7</version>
          <executions>
            <execution>
              <!-- Prepares a property pointing to the JaCoCo runtime agent -->
              <!-- passed as a VM arg when unit tests (maven-surefire-plugin) executed -->
              <id>pre-unit-test</id>
              <!-- important! overrides the parent -->
              <goals>
                <goal>prepare-agent</goal>
              </goals>
              <configuration>
                <skip>${skip.tests.unit}</skip>
                <destFile>${project.build.directory}/jacoco.exec</destFile>
                <propertyName>jacocoSurefireArgLine</propertyName>
              </configuration>
            </execution>
            <!-- Ensures that the code coverage report for unit tests is created after unit tests have been run. -->
            <execution>
              <id>post-unit-test</id>
              <!-- Important! overrides the parent -->
              <phase>test</phase>
              <goals>
                <goal>report</goal>
              </goals>
              <configuration>
                <skip>${skip.tests.unit}</skip>
                <dataFile>${project.build.directory}/jacoco.exec</dataFile>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
              </configuration>
            </execution>
            <execution>
              <!-- Prepares a property pointing to the JaCoCo runtime agent -->
              <!-- passed as a VM arg when integration tests (maven-failsafe-plugin) executed -->
              <id>pre-integration-test</id>
              <!-- important! overrides the parent -->
              <goals>
                <goal>prepare-agent-integration</goal>
              </goals>
              <configuration>
                <skip>${skip.tests.integration}</skip>
                <destFile>${project.build.directory}/jacoco-it.exec</destFile>
                <propertyName>jacocoFailsafeArgLine</propertyName>
              </configuration>
            </execution>
            <execution>
              <id>post-integration-test</id>
              <!-- Important! overrides the parent -->
              <goals>
                <goal>report-integration</goal>
              </goals>
              <configuration>
                <skip>${skip.tests.integration}</skip>
                <dataFile>${project.build.directory}/jacoco-it.exec</dataFile>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M5</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit47</artifactId>
              <version>3.0.0-M5</version>
            </dependency>
          </dependencies>
          <configuration>
            <skip>${skip.tests.unit}</skip>
            <!--suppress UnresolvedMavenProperty -->
            <argLine>${jacocoSurefireArgLine}</argLine>
            <parallel>classes</parallel>
            <threadCount>1</threadCount>
            <perCoreThreadCount>true</perCoreThreadCount>
            <trimStackTrace>false</trimStackTrace>
            <excludedGroups>com.lancethomps.lava.common.IntegrationTest</excludedGroups>
            <forkedProcessTimeoutInSeconds>${tests.timeout}</forkedProcessTimeoutInSeconds>
            <parallelTestsTimeoutForcedInSeconds>${tests.timeout}</parallelTestsTimeoutForcedInSeconds>
            <parallelTestsTimeoutInSeconds>${tests.timeout}</parallelTestsTimeoutInSeconds>
            <systemPropertyVariables>
              <PROJ_DIR>${project.basedir}</PROJ_DIR>
            </systemPropertyVariables>
            <includes>
              <include>**/*Test.java</include>
            </includes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>3.0.0-M5</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit47</artifactId>
              <version>3.0.0-M5</version>
            </dependency>
          </dependencies>
          <configuration>
            <skip>${skip.tests.integration}</skip>
            <!--suppress UnresolvedMavenProperty -->
            <argLine>${jacocoFailsafeArgLine}</argLine>
            <parallel>classes</parallel>
            <threadCount>1</threadCount>
            <perCoreThreadCount>true</perCoreThreadCount>
            <trimStackTrace>false</trimStackTrace>
            <groups>com.lancethomps.lava.common.IntegrationTest</groups>
            <forkedProcessTimeoutInSeconds>${tests.timeout}</forkedProcessTimeoutInSeconds>
            <parallelTestsTimeoutForcedInSeconds>${tests.timeout}</parallelTestsTimeoutForcedInSeconds>
            <parallelTestsTimeoutInSeconds>${tests.timeout}</parallelTestsTimeoutInSeconds>
            <systemPropertyVariables>
              <PROJ_DIR>${project.basedir}</PROJ_DIR>
              <project.build.directory>${project.build.directory}</project.build.directory>
              <project.build.webappDirectory>${project.build.directory}/${project.build.finalName}</project.build.webappDirectory>
              <!-- <webtools.serverType>tomcat</webtools.serverType> -->
            </systemPropertyVariables>
            <includes>
              <include>**/*Test.java</include>
            </includes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>3.0.0-M5</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jdepend-maven-plugin</artifactId>
          <version>2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>3.1.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>2.4</version>
          <configuration>
            <tagListOptions>
              <tagClasses>
                <tagClass>
                  <displayName>Code Work</displayName>
                  <tags>
                    <tag>
                      <matchString>FIXME</matchString>
                      <matchType>exact</matchType>
                    </tag>
                    <tag>
                      <matchString>@todo</matchString>
                      <matchType>ignoreCase</matchType>
                    </tag>
                    <tag>
                      <matchString>TODO</matchString>
                      <matchType>exact</matchType>
                    </tag>
                  </tags>
                </tagClass>
                <tagClass>
                  <displayName>Deprecated</displayName>
                  <tags>
                    <tag>
                      <matchString>@deprecated</matchString>
                      <matchType>ignoreCase</matchType>
                    </tag>
                  </tags>
                </tagClass>
              </tagClasses>
            </tagListOptions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
        <plugin>
          <groupId>org.sonatype.plugins</groupId>
          <artifactId>nexus-staging-maven-plugin</artifactId>
          <version>1.6.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.2.4</version>
          <executions>
            <execution>
              <id>add-shaded-artifact</id>
              <phase>none</phase>
              <goals>
                <goal>shade</goal>
              </goals>
              <configuration>
                <finalName>${project.artifactId}-shaded</finalName>
                <createDependencyReducedPom>false</createDependencyReducedPom>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <!-- <minimizeJar>true</minimizeJar> -->
                <transformers>
                  <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                    <resource>META-INF/spring.handlers</resource>
                  </transformer>
                  <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                    <resource>META-INF/spring.schemas</resource>
                  </transformer>
                </transformers>
                <filters>
                  <filter>
                    <artifact>*:*</artifact>
                    <excludes>
                      <exclude>META-INF/*.DSA</exclude>
                      <exclude>META-INF/*.RSA</exclude>
                      <exclude>META-INF/*.SF</exclude>
                    </excludes>
                  </filter>
                </filters>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>com.github.ekryd.sortpom</groupId>
        <artifactId>sortpom-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.basepom.maven</groupId>
        <artifactId>duplicate-finder-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>
        <executions>
          <execution>
            <id>integration-tests</id>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <rulesets>
            <ruleset>pmd/non-test-rules.xml</ruleset>
            <ruleset>pmd/standard-rules.xml</ruleset>
          </rulesets>
          <printFailingErrors>true</printFailingErrors>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>checkstyle</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <configLocation>checkstyle/java-checkstyle.xml</configLocation>
          <suppressionsLocation>checkstyle/java-suppressions.xml</suppressionsLocation>
          <propertyExpansion>basedir=${basedir}</propertyExpansion>
          <propertyExpansion>samedir=${project.basedir}/src/test/resources/checkstyle</propertyExpansion>
          <encoding>UTF-8</encoding>
          <consoleOutput>true</consoleOutput>
          <logViolationsToConsole>true</logViolationsToConsole>
          <failOnViolation>true</failOnViolation>
          <linkXRef>false</linkXRef>
          <enableFilesSummary>true</enableFilesSummary>
          <includes>**/*.java</includes>
          <includeResources>false</includeResources>
          <includeTestSourceDirectory>false</includeTestSourceDirectory>
          <outputFile>${project.build.directory}/checkstyle-report-java.xml</outputFile>
          <outputFileFormat>xml</outputFileFormat>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>report-only</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>javadoc-no-fork</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <reportSets>
          <reportSet>
            <id>jxr-report</id>
            <reports>
              <report>jxr</report>
            </reports>
          </reportSet>
          <reportSet>
            <id>jxr-report-aggregate</id>
            <reports>
              <report>aggregate</report>
            </reports>
            <inherited>false</inherited>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <configuration>
          <!--<dependencyLocationsEnabled>false</dependencyLocationsEnabled>-->
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <id>jacoco-report</id>
            <reports>
              <report>report</report>
              <report>report-integration</report>
            </reports>
          </reportSet>
          <reportSet>
            <!-- set id so it can be turned off if desired by child projects -->
            <id>jacoco-report-aggregate</id>
            <reports>
              <report>report-aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <id>jdepend-report</id>
            <reports>
              <report>generate-no-fork</report>
            </reports>
            <inherited>true</inherited>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <id>generate-updates-reports</id>
            <reports>
              <report>dependency-updates-report</report>
              <report>plugin-updates-report</report>
              <report>property-updates-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <id>taglist-report</id>
            <reports>
              <report>taglist</report>
            </reports>
          </reportSet>
          <reportSet>
            <id>taglist-report-aggregate</id>
            <reports>
              <report>taglist</report>
            </reports>
            <inherited>false</inherited>
            <configuration>
              <aggregate>true</aggregate>
            </configuration>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
  <profiles>
    <profile>
      <id>quick</id>
      <properties>
        <checkstyle.skip>true</checkstyle.skip>
        <enforcer.skip>true</enforcer.skip>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <pmd.skip>true</pmd.skip>
        <skip.tests.integration>true</skip.tests.integration>
        <skip.tests.unit>true</skip.tests.unit>
        <skipTests>true</skipTests>
      </properties>
    </profile>
    <profile>
      <id>integration-tests</id>
      <properties>
        <skip.tests.unit>true</skip.tests.unit>
        <skip.tests.integration>false</skip.tests.integration>
      </properties>
    </profile>
    <profile>
      <id>unit-tests</id>
      <properties>
        <skip.tests.unit>false</skip.tests.unit>
        <skip.tests.integration>true</skip.tests.integration>
      </properties>
    </profile>
    <profile>
      <id>java11</id>
      <properties>
        <java.level>11</java.level>
      </properties>
    </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-tests</id>
                <goals>
                  <goal>test-jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                  <goal>test-jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                  <goal>test-jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <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>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
              <serverId>ossrh</serverId>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <autoReleaseAfterClose>true</autoReleaseAfterClose>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
