pom
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.levonk.codequality</groupId>
<artifactId>pom</artifactId>
<version>2.0.49.445-6404070</version>
</dependency><?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version> <!-- 2016-12-11 -->
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.levonk.codequality</groupId>
<artifactId>pom</artifactId>
<name>Parent POM</name>
<url>none</url>
<version>2.0.49.445-6404070</version>
<packaging>pom</packaging>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<organization>
<name>Levon K</name>
<url>none</url>
</organization>
<developers>
<developer>
<id>levonk</id>
<name>Levon K</name>
<email>none</email>
<url>none</url>
</developer>
<developer>
<id>jwang</id>
<name>Jing Wang</name>
<email>none</email>
<url>none</url>
</developer>
</developers>
<scm>
<connection>scm:git:ssh://git@github.com/DGHLJ/pub-maven-archetypes.git</connection>
<developerConnection>scm:git:ssh://git@github.com/DGHLJ/pub-maven-archetypes.git</developerConnection>
<tag>HEAD</tag>
<url>https://github.com/DGHLJ/pub-maven-archetypes</url>
</scm>
<distributionManagement>
<snapshotRepository>
<id>oss.sonatype.org</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>oss.sonatype.org</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
</distributionManagement>
<repositories>
<repository>
<id>checker-framework-repo</id>
<name>Check Static Analysis Repo</name>
<url>http://types.cs.washington.edu/m2-repo</url>
</repository>
<repository>
<id>apache</id>
<name>Apache Releases Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
</repository>
<repository>
<id>Maven Central</id>
<name>Maven Central</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>elasticsearch-releases</id>
<name>ElasticSearch Releases Repository</name>
<url>http://oss.sonatype.org/content/repositories/releases/</url>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven</id>
<name>Standard Maven repo</name>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
<pluginRepository>
<id>checker-framework-repo</id>
<url>http://types.cs.washington.edu/m2-repo</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!-- If you have arbitrary jar that want to deploy into a central maven repository you can use
%mvn deploy:deploy-file -DgroupId=levonk-imported -DartifactId=levonk-package \
-Dversion=1-levonkVersion -Dpackaging=jar -Dfile=otherjar.jar \
-Durl=scp://maven.levonk.com.:/maven/repo/path -DrepositoryId=levonk.internal
-->
</dependencies>
<dependencyManagement>
<dependencies>
<!-- Type Safety Annotations -->
<dependency>
<!-- groupId>net.sourceforge.findbugs</groupId -->
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>${findbugs-google2.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<!-- groupId>net.sourceforge.findbugs</groupId -->
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>${findbugs-google.version}</version>
<scope>compile</scope>
</dependency>
<!-- Runtime Testing -->
<dependency>
<!-- https://github.com/rawls238/Scientist4J -->
<!-- @alternative https://github.com/workmarket-oss/jan20 -->
<groupId>com.github.rawls238</groupId>
<artifactId>Scientist4JCore</artifactId>
<version>${scientist4j.version}</version>
</dependency>
<!-- @see https://jclouds.apache.org/ -->
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-all</artifactId>
<version>${jclouds.version}</version>
</dependency>
<!-- @see https://github.com/opentracing/opentracing-java -->
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-api</artifactId>
<version>${opentracing.version}</version>
</dependency>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-impl-java8</artifactId>
<version>${opentracing.version}</version>
</dependency>
<dependency>
<groupId>io.opentracing</groupId>
<artifactId>opentracing-mock</artifactId>
<version>${opentracing.version}</version>
<scope>test</scope>
</dependency>
<!-- provides additional date-time classes that complement those in Java SE 8. -->
<!-- @see http://www.threeten.org/threeten-extra/ -->
<dependency>
<groupId>org.threeten</groupId>
<artifactId>threeten-extra</artifactId>
<version>${threeten-extra.version}</version>
</dependency>
<!-- Togglz Feature Flags for the Java platform -->
<!-- @see http://www.togglz.org/ -->
<!-- Togglz for Servlet environments (mandatory) -->
<dependency>
<groupId>org.togglz</groupId>
<artifactId>togglz-servlet</artifactId>
<version>${togglz.version}</version>
</dependency>
<!-- Togglz Web Admin Console -->
<!-- Operationaly @see http://localhost:8080/myapp/togglz/ -->
<dependency>
<groupId>org.togglz</groupId>
<artifactId>togglz-console</artifactId>
<version>${togglz.version}</version>
</dependency>
<dependency>
<groupId>org.togglz</groupId>
<artifactId>togglz-spring-boot-starter</artifactId>
<version>${togglz.version}</version>
</dependency>
<!-- REST testing framework -->
<!-- @see http://harmingcola.github.io/contract/ -->
<dependency>
<groupId>org.seekay</groupId>
<artifactId>contract-server</artifactId>
<version>${contract.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seekay</groupId>
<artifactId>contract-client</artifactId>
<version>${contract.version}</version>
<scope>test</scope>
</dependency>
<!-- Excellent servlet based upload library when you can't go to S3 -->
<!-- @see https://github.com/Elopteryx/upload-parser -->
<dependency>
<groupId>com.github.elopteryx</groupId>
<artifactId>upload-parser</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.github.elopteryx</groupId>
<artifactId>upload-parser-jaxrs</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<!-- https://github.com/OpenHFT/Zero-Allocation-Hashing -->
<groupId>net.openhft</groupId>
<artifactId>zero-allocation-hashing</artifactId>
<version>${zeroallochash.version}</version>
</dependency>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
<version>${restassured.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>xml-path</artifactId>
<version>${restassured.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>${restassured.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>spring-mock-mvc</artifactId>
<version>${restassured.version}</version>
<scope>test</scope>
</dependency>
<!-- Add Cofoja Design By Contract lib when available -->
<dependency>
<groupId>org.slfj</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slfj.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<exclusions>
<!-- Starters use SLF4J -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mobile</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-shell-remote</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commonslang.version}</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>${avro.version}</version>
</dependency>
<!-- checker framework-->
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-framework</artifactId>
<version>${checkers.version}</version>
</dependency>
<dependency>
<!-- @see https://github.com/mauricio/postgresql-async -->
<groupId>com.github.mauricio</groupId>
<artifactId>postgresql-async_2.11</artifactId>
<version>${jdbcasync.version}</version>
</dependency>
<dependency>
<!-- @see https://github.com/mauricio/postgresql-async -->
<!-- please prefer postgresql over mysql. -->
<groupId>com.github.mauricio</groupId>
<artifactId>mysql-async_2.11</artifactId>
<version>${jdbcasync.version}</version>
</dependency>
<dependency>
<!-- @see http://javachannel.org/posts/external-program-invocation-in-java/ -->
<groupId>org.zeroturnaround</groupId>
<artifactId>zt-exec</artifactId>
<version>${ztexec.version}</version>
</dependency>
<dependency>
<!-- @see https://github.com/vladmihalcea/flexy-pool -->
<!-- @see https://blog.jooq.org/2016/11/02/applying-queueing-theory-to-dynamic-connection-pool-sizing-with-flexypool/ -->
<groupId>com.vladmihalcea.flexy-pool</groupId>
<artifactId>flexy-pool-core-java7</artifactId>
<version>${flexy-pool.version}</version>
</dependency>
<dependency>
<!-- @see https://github.com/linkedin/URL-Detector -->
<groupId>com.linkedin.urls</groupId>
<artifactId>url-detector</artifactId>
<version>${url-detector.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--
Specify all the version numbers of all dependencies here so we don't
have to specify them in multiple children.
The parent will not force this dependency, but it will specify a
default version number
-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${site.version}</version>
<executions>
<execution>
<id>attach-descriptor</id>
<goals>
<goal>attach-descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
<!--http://jakub.marchwicki.pl/posts/2015/06/04/maven-wrapper/
run to initialize: mvn wrapper:wrapper -N
use mvnw afterward
-->
<plugin>
<groupId>io.takari</groupId>
<artifactId>maven-wrapper</artifactId>
<version>${wrapper.version}</version>
<inherited>false</inherited>
<configuration>
<mavenVersion>${maven.version}</mavenVersion>
</configuration>
</plugin>
<!-- General Settings -->
<!-- Code Coverage -->
<!-- Don't forget to add a Jenkins
"Post-build Actions->Folders or files
containing JaCoCo XML reports:"
**/target/site/jacoco/jacoco*.xml
-->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
<outputDirectory>${project.build.directory}/jacoco-ut</outputDirectory>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
<phase>prepare-package</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
<configuration>
<createChecksum>true</createChecksum>
</configuration>
</plugin>
<plugin>
<!-- compiler version -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler.version}</version>
<configuration>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<source>${java.version}</source>
<target>${java.version}</target>
<optimize>true</optimize>
<debug>true</debug>
<fork>true</fork>
<meminitial>128m</meminitial>
<maxmem>512m</maxmem>
<!--<annotationProcessors>
<annotationProcessor>org.checkerframework.checker.nullness.NullnessChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.interning.InterningChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.lock.LockChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.regex.RegexChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.formatter.FormatterChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.signature.SignatureChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.linear.LinearChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.igj.IGJChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.javari.JavariChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.fenum.FenumChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.tainting.TaintingChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.propkey.PropertyKeyChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.i18n.I18nChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.compilermsgs.CompilerMessagesChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.checker.units.UnitsChecker</annotationProcessor>
<annotationProcessor>org.checkerframework.common.subtyping.SubtypingChecker</annotationProcessor>
</annotationProcessors>-->
<compilerArgs>
<!-- location of the annotated JDK, which comes from a Maven dependency -->
<arg>-Xbootclasspath/p:${annotatedJdk}</arg>
<!-- Uncomment the following line if using Java 7. -->
<!-- <arg>-J-Xbootclasspath/p:${typeAnnotationsJavac}</arg> -->
</compilerArgs>
</configuration>
<dependencies>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>${errorprone.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>${plexusCompiler.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>${plexusCompilerErrorProne.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<phase>install</phase>
</execution>
</executions>
</plugin>
<!-- Static Analysis Tools -->
<!--
@see http://www.mojohaus.org/versions-maven-plugin/index.html
@see http://blog.xebia.com/keeping-dependencies-up-to-date-in-maven/
mvn -U versions:display-plugin-updates
mvn -U versions:display-dependency-updates
-->
<plugin>
<!--
https://github.com/andrewgaul/modernizer-maven-plugin
Prevent the use of legacy Java APIs
-->
<groupId>org.gaul</groupId>
<artifactId>modernizer-maven-plugin</artifactId>
<version>${modernizer.version}</version>
<configuration>
<javaVersion>${java.version}</javaVersion>
<failOnViolations>false</failOnViolations>
</configuration>
<executions>
<execution>
<id>modernizer</id>
<goals>
<goal>modernizer</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<!-- @see http://maven.apache.org/enforcer/enforcer-rules/index.html -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${enforcer.version}</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<fail>false</fail>
<rules>
<bannedDependencies>
<searchTransitive>true</searchTransitive>
<excludes>
<exclude>aspectj:aspectj*</exclude>
<!-- Security Vulnerability in InvokerTransformer.class as of 2015-11-10
@see org.apache.commons.collections.functors.InvokerTransformer.class
@see http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/
-->
<exclude>org.apache.commons:commons-collections:,3.2.1]</exclude>
<exclude>commons-logging</exclude>
<exclude>hsqldb:hsqldb</exclude>
<exclude>javassist:javassist</exclude>
<exclude>junit:junit</exclude>
<exclude>com.google.auto.value:auto-value</exclude> <!-- Use org.immutables:value instead -->
<exclude>log4j:log4j</exclude>
<exclude>org.slf4j:1.5*</exclude>
<exclude>org.springframework:2.*</exclude>
<exclude>org.springframework:3.0.*</exclude>
<!-- Prevent NPE
@see http://stackoverflow.com/questions/29995139/maven-versions-maven-plugin-versions-plugin-2-2
@see http://jira.codehaus.org/browse/MVERSIONS-285
-->
<exclude>org.codehaus.mojo:versions-maven-plugin:2.2</exclude>
</excludes>
</bannedDependencies>
<dependencyConvergence />
<requireMavenVersion>
<version>[3.1.0,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
<!--
<evaluateBeanshell>
<message>Maven-enforcer: Not sure why @see https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html#getMaxAllowedKeyLength(java.lang.String)</message>
<condition>javax.crypto.Cipher.getMaxAllowedKeyLength("AES") > 128</condition>
</evaluateBeanshell>
<reactorModuleConvergence>
<message>Maven-enforcer: The reactor Module Convergance is not valid expected with spring boot</message>
<ignoreModuleDependencies>true</ignoreModuleDependencies>
</reactorModuleConvergence>
-->
<requireSameVersions>
<plugins>
<plugin>org.apache.maven.plugins:maven-surefire-plugin</plugin>
<plugin>org.apache.maven.plugins:maven-failsafe-plugin</plugin>
<plugin>org.apache.maven.plugins:maven-surefire-report-plugin</plugin>
</plugins>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>org.apache.maven</dependency> <!-- or org.apache.maven:* -->
</dependencies>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>org.apache.camel</dependency> <!-- or org.apache.camel:* -->
</dependencies>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>org.slf4j</dependency> <!-- or org.slf4j:* -->
</dependencies>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>org.springframework</dependency> <!-- or org.springframework:* -->
</dependencies>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>org.springframework.boot</dependency> <!-- or org.springframework.boot:* -->
</dependencies>
</requireSameVersions>
<requireSameVersions>
<dependencies>
<dependency>com.jayway.restassured</dependency> <!-- or com.jayway.restassured:* -->
</dependencies>
</requireSameVersions>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
<onlyWhenRelease>true</onlyWhenRelease>
<searchTransitive>false</searchTransitive>
<failWhenParentIsSnapshot>true</failWhenParentIsSnapshot>
</requireReleaseDeps>
</rules>
</configuration>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<plugin>
<!-- @see https://pmd.github.io/ -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmd.version}</version>
<configuration>
<rulesets>
<ruleset>
${pmd.ruleset.url}
</ruleset>
</rulesets>
<excludes>
<exclude>**/*Bean.java</exclude>
<exclude>**/generated/*.java</exclude>
</excludes>
<minimumTokens>100</minimumTokens>
<sourceEncoding>utf-8</sourceEncoding>
<targetJdk>${java.version}</targetJdk>
<linkXRef>false</linkXRef>
<failurePriority>2</failurePriority>
<failOnViolation>true</failOnViolation>
<printFailingErrors>true</printFailingErrors>
</configuration>
<executions>
<execution>
<goals>
<goal>pmd</goal>
<goal>cpd</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<!-- @see http://findbugs.sourceforge.net/ -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${findbugs.version}</version>
<configuration>
<excludeFilterFile>
${findbugs.excludeFilterFile.url}
</excludeFilterFile>
<effort>Max</effort>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
</configuration>
<executions>
<execution>
<goals>
<goal>findbugs</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license.version}</version>
<executions>
<execution>
<id>download-licenses</id>
<!-- must come after install or sibling module dependencies will break build -->
<goals>
<goal>download-licenses</goal>
<goal>aggregate-add-third-party</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.soebes.maven.plugins.mlv</groupId>
<artifactId>maven-license-verifier-plugin</artifactId>
<version>${licenseVerifier.version}</version>
<executions>
<execution>
<id>license-verifier</id>
<goals>
<goal>verify</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.levonk.codequality</groupId>
<artifactId>licenses</artifactId>
<version>2.0.49.445-6404070</version>
</dependency>
</dependencies>
<configuration>
<excludes>
<!-- no license specified -->
<exclude>net.jcip:jcip-annotations:jar:1.0</exclude>
<exclude>com.google.code.findbugs:annotations:jar:3.0.1u2</exclude>
<!-- non-distribute use only -->
<exclude>org.checkerframework:checker:jar:2.1.6</exclude>
<exclude>org.checkerframework:jdk8:jar:2.1.6</exclude>
<!-- dual license causes confusions -->
<exclude>ch.qos.logback:logback-classic:jar:1.0.13</exclude>
<exclude>ch.qos.logback.contrib:logback-jackson:jar:0.1.5</exclude>
<exclude>ch.qos.logback.contrib:logback-json-core:jar:0.1.5</exclude>
<exclude>ch.qos.logback:logback-core:jar:1.0.13</exclude>
<exclude>org.checkerframework:checker-qual:jar:2.1.6</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<!-- @see https://github.com/basepom/duplicate-finder-maven-plugin/wiki -->
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<version>${duplicate.version}</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>check</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
<configuration>
<printEqualFiles>false</printEqualFiles>
<failBuildInCaseOfDifferentContentConflict>false</failBuildInCaseOfDifferentContentConflict>
<failBuildInCaseOfEqualContentConflict>false</failBuildInCaseOfEqualContentConflict>
<failBuildInCaseOfConflict>false</failBuildInCaseOfConflict>
<checkCompileClasspath>true</checkCompileClasspath>
<checkRuntimeClasspath>true</checkRuntimeClasspath>
<checkTestClasspath>true</checkTestClasspath>
<skip>false</skip>
<quiet>false</quiet>
<preferLocal>true</preferLocal>
<useResultFile>true</useResultFile>
<resultFileMinClasspathCount>2</resultFileMinClasspathCount>
<resultFile>${project.build.directory}/duplicate-finder-result.xml</resultFile>
<includeBootClasspath>false</includeBootClasspath>
<bootClasspathProperty>sun.boot.class.path</bootClasspathProperty>
<useDefaultResourceIgnoreList>true</useDefaultResourceIgnoreList>
<includePomProjects>false</includePomProjects>
<useDefaultResourceIgnoreList>true</useDefaultResourceIgnoreList>
<!--
<exceptions>
<exception>
<currentProject>false</currentProject>
<bootClasspath>false</bootClasspath>
<conflictingDependencies>
<dependency>
<artifactId>...</artifactId>
<groupId>...</groupId>
<version>...</version>
<type>...</type>
<classifier>...</classifier>
</dependency>
</conflictingDependencies>
<classes>
<class>...</class>
</classes>
<packages>
<package>...</package>
</packages>
<resources>
<resource>...</resource>
</resources>
<resourcePatterns>
<resourcePattern>...</resourcePattern>
</resourcePatterns>
</exception>
</exceptions>
<ignoredResourcePatterns>
<ignoredResourcePattern>...</ignoredResourcePattern>
</ignoredResourcePatterns>
<ignoredClassPatterns>
<ignoredClassPattern>...</ignoredClassPattern>
</ignoredClassPatterns>
<ignoredDependencies>
<dependency>
<artifactId>...</artifactId>
<groupId>...</groupId>
<version>...</version>
<type>...</type>
<classifier>...</classifier>
</dependency>
</ignoredDependencies>
<ignoredResources>
<ignoredResource>...</ignoredResource>
</ignoredResources>
-->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>${eclipse.version}</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
<executions>
<execution>
<goals>
<goal>eclipse</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${dependency.version}</version>
<executions>
<execution>
<goals>
<goal>tree</goal>
</goals>
<phase>pre-site</phase>
</execution>
</executions>
</plugin>
<plugin>
<!-- lets get rid .class that are effected through
inheritance using ant -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${antrun.version}</version>
<executions>
<!-- handle regular sources -->
<execution>
<id>depend-sources</id>
<phase>process-sources</phase>
<configuration>
<target>
<depend srcDir="${project.build.sourceDirectory}" destDir="${project.build.outputDirectory}" cache="${project.build.outputDirectory}" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- handle test files -->
<execution>
<id>depend-test-sources</id>
<phase>process-test-sources</phase>
<configuration>
<target>
<depend srcDir="${project.build.testSourceDirectory}" destDir="${project.build.testOutputDirectory}" cache="${project.build.testOutputDirectory}" classpath="${project.build.outputDirectory}" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.5</version>
<configuration>
<goals>install</goals>
</configuration>
</plugin>
<plugin>
<!-- @see https://github.com/sviperll/ozymandias/tree/master/coreext-maven-plugin -->
<groupId>com.github.sviperll</groupId>
<artifactId>coreext-maven-plugin</artifactId>
<version>${coreext.version}</version>
<configuration>
<!-- Required core extensions: -->
<extensions combine.children="append">
<extension>
<groupId>com.github.sviperll</groupId>
<artifactId>maven-profiledep-extension</artifactId>
<version>${profiledep.version}</version>
</extension>
<!--
This seems to have been replaced
@see http://takari.io/book/30-team-maven.html#concurrent-safe-local-repository
<extension>
<groupId>io.takari.maven</groupId>
<artifactId>takari-concurrent-localrepo</artifactId>
<version>${concurrentrepo.version}</version>
</extension>
<extension>
<groupId>io.takari.maven</groupId>
<artifactId>takari-smart-builder</artifactId>
<version>${smartbuilder.version}</version>
</extension>
-->
</extensions>
</configuration>
<executions>
<execution>
<id>check-coreext</id>
<goals>
<!--
If we dont' meet the requirements of our enviornment then
stop everything and complain. Within Jenkins we should have
a pipeline step that will make the enviornment what we expect to be.
Something like:
* mvn clean
* mvn coreext:install
* mvn compile
* mvn test
* mvn integration-test
* mvn pitest:run
* mvn package
-->
<goal>check</goal>
</goals>
<!-- default phase is: -->
<!-- <phase>validate</phase> -->
</execution>
</executions>
</plugin>
<plugin>
<!-- Navigate code by graphs -->
<!-- @see https://jqassistant.org/get-started/ -->
<groupId>com.buschmais.jqassistant.scm</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<version>${jqassistant.version}</version>
<executions>
<execution>
<goals>
<goal>scan</goal>
<goal>analyze</goal>
</goals>
<configuration>
<failOnViolations>false</failOnViolations>
</configuration>
<phase>pre-site</phase>
</execution>
</executions>
</plugin>
<plugin>
<!-- Security scan -->
<!-- @see http://jeremylong.github.io/DependencyCheck/dependency-check-maven/index.html -->
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<configuration>
<cveValidForHours>8</cveValidForHours>
<!-- If we enable <code>autoUpdate</code> on a shared build server we will see -->
<!-- <code>Failed to execute goal org.owasp:dependency-check-maven:#.#.#.#:check (default) on project pom: An exception occured connecting to the local
database.</code> -->
<!-- when multiple jobs try to update the shared database -->
<!-- you can fix this by using a real database -->
<!-- you should have one job on the server that updates the database -->
<autoUpdate>${isNotBuildServer}</autoUpdate>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- android plugin -->
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>maven-android-plugin</artifactId>
<version>${android.version}</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>${start-class}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.1.7</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
<dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>src/main/resources/git.properties</generateGitPropertiesFilename>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
<executable>${springboot.is.executable}</executable>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<outputDirectory>./target/site</outputDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven-project-info-reports-plugin.version}</version>
</plugin>
<plugin>
<!-- http://code.google.com/p/testability-explorer/wiki/Readme
see available options by running
mvn help:describe -Dplugin=com.google.testability-explorer:maven2-testability-plugin -Ddetail
-->
<groupId>com.google.testability-explorer</groupId>
<artifactId>maven-testability-plugin</artifactId>
<version>1.3.3</version>
</plugin>
<!-- doc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.version}</version>
</plugin>
<!-- testing -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<!-- static analysis -->
<plugin>
<!-- @see http://www.mojohaus.org/jdepend-maven-plugin/ -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>jdepend-maven-plugin</artifactId>
<version>${jdepend.version}</version>
</plugin>
<plugin>
<!-- @see http://www.mojohaus.org/javancss-maven-plugin -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>javancss-maven-plugin</artifactId>
<version>${javancss.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle.version}</version>
<configuration>
<configLocation>${checkstyle.ruleset.url}</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmd.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${findbugs.version}</version>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<configuration>
<cveValidForHours>8</cveValidForHours>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<!-- @see http://www.mojohaus.org/versions-maven-plugin/usage.html -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions.version}</version>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
<report>property-updates-report</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<!-- @see http://www.mojohaus.org/versions-maven-plugin/version-rules.html -->
<rulesUri>${versions.ruleset.url}</rulesUri>
</configuration>
</plugin>
<plugin>
<!-- Browse code via SQL & Graphs -->
<!-- @see https://jqassistant.org/get-started/ -->
<groupId>com.buschmais.jqassistant.scm</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<version>${jqassistant.version}</version>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<properties>
<start-class>com.levonk.springboot.App</start-class> <!-- should we look for some sort of property test? -->
<!-- clm.applicationId>${project.build.finalName}</clm.applicationId -->
<sonar.exclusions>**/generated-sources/**</sonar.exclusions>
<sonar.pitest.mode>active</sonar.pitest.mode>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.version>3.3.9</maven.version>
<!-- Checker Framework -->
<!-- These properties will be set by the Maven Dependency plugin -->
<!-- Change to jdk7 if using Java 7 -->
<annotatedJdk>${org.checkerframework:jdk8:jar}</annotatedJdk>
<!-- The type annotations compiler is required if using Java 7. -->
<!-- Uncomment the following line if using Java 7. -->
<!-- <typeAnnotationsJavac>${org.checkerframework:compiler:jar}</typeAnnotationsJavac> -->
<!-- ruleset block -->
<checkstyle.ruleset.url>https://raw.githubusercontent.com/DGHLJ/pub-maven-archetypes/master/codequality/src/main/checkstyle/checkstyle.xml</checkstyle.ruleset.url>
<findbugs.excludeFilterFile.url>https://raw.githubusercontent.com/DGHLJ/pub-maven-archetypes/master/codequality/src/main/resources/codequality/FindBugsFilter.xml</findbugs.excludeFilterFile.url>
<pmd.ruleset.url>https://raw.githubusercontent.com/DGHLJ/pub-maven-archetypes/master/codequality/src/main/pmd/pmd.xml</pmd.ruleset.url>
<!-- @see http://www.mojohaus.org/versions-maven-plugin/rule.html -->
<versions.ruleset.url>https://raw.githubusercontent.com/DGHLJ/pub-maven-archetypes/master/codequality/src/main/resources/codequality/versions-maven-plugin/maven-version-rules.xml</versions.ruleset.url>
<!-- version block -->
<android.version>2.8.4</android.version>
<autovalue.version>1.2</autovalue.version> <!-- 2016-07-07 -->
<antlr3.version>3.5.2</antlr3.version> <!-- 2015-10-06 -->
<antlr4.version>4.5.1-1</antlr4.version> <!-- 2015-10-06 -->
<antrun.version>1.8</antrun.version>
<avro.version>1.7.7</avro.version>
<codequality.version>1.0.9</codequality.version>
<checkers.version>2.1.6</checkers.version> <!-- 2016-12-11 -->
<docker.version>0.4.1</docker.version>
<duplicate.version>1.2.1</duplicate.version> <!-- 2015-10-06 -->
<spring-boot.version>1.3.1.RELEASE</spring-boot.version>
<checkstyle.version>2.17</checkstyle.version> <!-- 2015-10-06 -->
<checkstylepuppycrawl.version>6.11.2</checkstylepuppycrawl.version> <!-- 2015-10-06 -->
<commonslang.version>2.6</commonslang.version>
<commonslang3.version>3.2.1</commonslang3.version>
<compiler.version>3.6.0</compiler.version> <!-- as of 2016-11-01 -->
<concurrentrepo.version>0.11.2</concurrentrepo.version> <!-- 2015-08-18 -->
<contract.version>0.0.1</contract.version> <!-- 2016-04-21 -->
<coreext.version>0.22</coreext.version> <!-- as of 2016-12-11 -->
<dependency.version>3.0.0</dependency.version> <!-- 2016-12-19 -->
<dependencycheck.version>1.4.4.1</dependencycheck.version> <!-- as of 2016-12-11 -->
<doclava.version>1.0.6</doclava.version>
<echo-maven-plugin.version>1.2.0</echo-maven-plugin.version> <!-- 2016-11-21 -->
<eclipse.version>2.9</eclipse.version>
<enforcer.version>1.4.1</enforcer.version> <!-- 2015-09-01 -->
<enforcerextra.version>1.0-beta-4-SNAPSHOT</enforcerextra.version> <!-- 2015-10-06 -->
<equalsverifier.version>1.3.1</equalsverifier.version>
<errorprone.version>2.0.1</errorprone.version> <!-- as of 2015-03-27 -->
<findbugs.version>3.0.4</findbugs.version> <!-- 2016-12-11 -->
<findbugs-extra.version>1.3.9</findbugs-extra.version>
<findbugs-google.version>3.0.1</findbugs-google.version> <!-- 2016-12-11 -->
<findbugs-google2.version>3.0.1u2</findbugs-google2.version> <!-- 2016-12-11 -->
<flexy-pool.version>1.2.6</flexy-pool.version> <!-- 2016-11-02 -->
<freebuilder.version>1.11</freebuilder.version> <!-- 2016-12-11 -->
<gdlogger.version>1.2.2</gdlogger.version> <!-- 2016-07-04 -->
<gpg.version>1.5</gpg.version>
<guage-java.version>0.2.2</guage-java.version> <!-- 2016-04-09 -->
<guage-maven-plugin.version>1.0.3</guage-maven-plugin.version> <!-- 2016-04-09 -->
<guava.version>20.0</guava.version> <!-- 2016-12-11 -->
<hibernate-validator.version>5.3.4.Final</hibernate-validator.version> <!-- 2016-12-11 -->
<kotlin.version>1.0.2</kotlin.version> <!-- 2016-05-30 -->
<immutables.version>2.3.10</immutables.version> <!-- 2016-12-11 -->
<j2objc.version>1.1.2</j2objc.version> <!-- 2016-05-25 -->
<jackson1.version>1.9.13</jackson1.version> <!-- 2016-12-06 -->
<jackson-databind.version>2.8.5</jackson-databind.version> <!-- 2016-12-06 -->
<jacoco.version>0.7.6.201602180812</jacoco.version> <!-- 2016-02-21 -->
<jalopy.version>1.0-alpha-1</jalopy.version>
<jsonschema2pojo.version>0.4.24</jsonschema2pojo.version> <!-- 2016-08-09 -->
<javadoc.version>2.10.3</javadoc.version>
<javancss.version>2.1</javancss.version> <!-- 2015-10-06 -->
<jclouds.version>2.0.0</jclouds.version> <!-- 2016-12-06 -->
<jdbcasync.version>0.2.18</jdbcasync.version> <!-- 2015-10-07 -->
<jdepend.version>2.0</jdepend.version> <!-- 2015-10-06 -->
<jmeter.version>2.0.1</jmeter.version> <!-- 2016-07-05 -->
<jqassistant.version>1.1.3</jqassistant.version> <!-- 2016-07-20 -->
<!-- as of 2014-03-11 -->
<license.version>1.9</license.version> <!-- 2016-05-29 -->
<licenseVerifier.version>0.4</licenseVerifier.version>
<log4jslf4j.version>2.7</log4jslf4j.version> <!-- 2016-12-11 -->
<log4jcore.version>2.7</log4jcore.version> <!-- 2016-12-11 -->
<logback.version>1.0.13</logback.version>
<logback-jackson.version>0.1.5</logback-jackson.version> <!-- 2016-12-02 -->
<logstash.version>4.7</logstash.version> <!-- 2016-07-07 -->
<lombok.version>1.16.12</lombok.version> <!-- 2016-12-11 -->
<maven-install-plugin.version>2.5.2</maven-install-plugin.version> <!-- 2016-12-11 -->
<maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version> <!-- 2016-12-11 -->
<maven-plugin-versions.version>3.3.8</maven-plugin-versions.version> <!-- 2016-12-11 -->
<mockito.version>1.9.5</mockito.version>
<modernizer.version>1.4.0</modernizer.version> <!-- 2015-10-06 -->
<newrelic.version>3.21.0</newrelic.version> <!-- 2015-10-06 -->
<nexusclm.version>2.4.1</nexusclm.version> <!-- 2015-10-22 -->
<opentracing.version>0.16.0</opentracing.version> <!-- 2016-10-23 -->
<pitest.version>1.1.6</pitest.version> <!-- 2015-09-29 -->
<plexusCompiler.version>2.5</plexusCompiler.version> <!-- 2015-03-27 -->
<plexusCompilerErrorProne.version>2.5</plexusCompilerErrorProne.version> <!-- 2015-03-27 -->
<pmd.version>3.7</pmd.version> <!-- 2016-12-11 -->
<pojomatic.version>1.0</pojomatic.version>
<profiledep.version>0.23-rc1</profiledep.version> <!-- 2016-07-05 -->
<proguard.version>2.0.6</proguard.version>
<proguardBase.version>4.9</proguardBase.version>
<pure4j.version>0.3.1</pure4j.version> <!-- 2015-12-03 -->
<restassured.version>2.5.0</restassured.version> <!-- 2015-08-27 -->
<scientist4j.version>0.3</scientist4j.version> <!-- 2016-12-02 -->
<site.version>3.5</site.version> <!-- 2016-02-19 -->
<slf4j.version>1.7.21</slf4j.version> <!-- 2016-12-11 -->
<smartbuilder.version>0.4.1</smartbuilder.version> <!-- 2015-06-10 -->
<sonar.version>2.3</sonar.version> <!-- 2015-09-29 -->
<!-- as of 2012-09-17 -->
<source.version>3.0.1</source.version> <!-- 2016-06-24 -->
<!-- as of 2014-03-11 -->
<surefire.version>2.16</surefire.version>
<!-- as of 2011-04-06 -->
<testng.version>6.10</testng.version> <!-- 2016-12-11 -->
<threeten-extra.version>0.9</threeten-extra.version> <!-- 2016-05-23 -->
<togglz.version>2.3.0.RC1</togglz.version> <!-- 2016-05-17 -->
<url-detector.version>0.1.17</url-detector.version> <!-- 2016-11-28 -->
<validation-api.version>1.1.0.Final</validation-api.version> <!-- 2016-12-11 -->
<versioneye.version>3.1.0</versioneye.version> <!-- 2016-06-28 -->
<versions.version>2.1</versions.version> <!-- 2015-12-29 -->
<wrapper.version>0.1.6</wrapper.version> <!-- 2016-11-02 -->
<zeroallochash.version>0.4</zeroallochash.version> <!-- 2015-09-12 -->
<ztexec.version>1.8</ztexec.version>
<docker.registry.url>https://index.docker.io/v1/</docker.registry.url>
<springboot.is.executable>true</springboot.is.executable>
</properties>
<profiles>
<profile>
<id>experimental</id>
<build>
<plugins>
<plugin>
<!-- @see http://classycle.sourceforge.net/ -->
<groupId>org.pitest</groupId>
<artifactId>classycle-maven-plugin</artifactId>
<version>0.4</version>
<executions>
<execution>
<id>verify</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<dependencyDefinition>
show allResults
check absenceOfPackageCycles > 1 in com.example*
</dependencyDefinition>
<!-- This can be classycle.dependency.DefaultResultRenderer
for text (the default if omitted) or
classycle.dependency.XMLResultRenderer for xml -->
<resultRenderer>classycle.dependency.DefaultResultRenderer</resultRenderer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>signed-release</id>
<activation>
<property>
<name>gpg.passphrase</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${gpg.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jsr303beanvalidation</id>
<activation>
<file>
<exists>${basedir}/src/main/java</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${validation-api.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate-validator.version}</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>doclava</id>
<activation>
<file>
<exists>${basedir}/src/main/java</exists>
</file>
</activation>
<reporting>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<bootclasspath>${sun.boot.class.path}</bootclasspath>
<doclet>com.google.doclava.Doclava</doclet>
<useStandardDocletOptions>false</useStandardDocletOptions>
<docletArtifact>
<groupId>com.google.doclava</groupId>
<artifactId>doclava</artifactId>
<version>${doclava.version}</version>
</docletArtifact>
<additionalparam>
-hdf project.name "${project.name}"
-d ${project.build.directory}/apidocs
-quiet
</additionalparam>
</configuration>
</plugin>
</plugins>
</reporting>
</profile>
<profile>
<!-- @see http://www.yegor256.com/2014/07/20/liquibase-in-maven.html -->
<id>with-liquibase</id>
<activation>
<file>
<exists>${basedir}/src/main/liquibase/master.xml</exists>
</file>
<property><name>liquibase.url</name></property>
<!-- following should be dependent on enviornment in settings.xml -->
<!--<property><name>liquibase.driver</name></property>-->
<!-- following should be only in settings.xml and not committed -->
<!--<property><name>liquibase.username</name></property>-->
<!--<property><name>liquibase.password</name></property>-->
</activation>
<build>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
<changeLogFile>${basedir}/src/main/liquibase/master.xml</changeLogFile>
<driver>${liquibase.driver}</driver>
<url>${liquibase.driver}</url>
<username>${liquibase.driver}</username>
<password>${liquibase.driver}</password>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>scala-lang</id>
<activation>
<file>
<exists>${basedir}/src/main/scala</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.2-rc2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDir>src/main/scala</sourceDir>
<jvmArg>-Xms64m</jvmArg>
<jvmArg>-Xmx1024m</jvmArg>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>clojure-lang</id>
<activation>
<file>
<exists>${basedir}/src/main/clojure</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>clojure-maven-plugin</artifactId>
<version>${clojure.version}</version>
<configuration>
<warnOnReflection>true</warnOnReflection>
</configuration>
<executions>
<execution>
<id>clojure-lang</id>
<goals>
<goal>add-source</goal>
<goal>add-test-source</goal>
<goal>compile</goal>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>groovy-lang</id>
<activation>
<file>
<exists>${basedir}/src/main/groovy</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>${gmavenplus.version}</version>
<configuration>
<verbose>true</verbose>
<stacktrace>true</stacktrace>
<providerSelection>2.0</providerSelection>
<sourceEncoding>UTF-8</sourceEncoding>
</configuration>
<executions>
<execution>
<id>groovy-lang</id>
<goals>
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>nexusclm</id>
<activation>
<!-- You need entries in settings.xml to configure the link to the server, see readme -->
<!-- wanring: calling this nexusclm.applicationId causes plugin to fail -->
<property><name>clm.applicationId</name></property>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.sonatype.clm</groupId>
<artifactId>clm-maven-plugin</artifactId>
<version>${nexusclm.version}</version>
<executions>
<execution>
<goals>
<goal>evaluate</goal>
</goals>
<phase>site</phase>
<configuration>
<!-- wanring: calling this nexusclm.serverUrl causes plugin to fail -->
<serverUrl>${clm.serverUrl}</serverUrl>
<stage>build</stage>
<!-- wanring: calling this nexusclm.applicationId causes plugin to fail -->
<applicationId>${clm.applicationId}</applicationId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>versioneye</id>
<activation>
<!-- You need entries in settings.xml to configure the link to the server, see readme -->
<property><name>versioneye.apikey</name></property>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.versioneye</groupId>
<artifactId>versioneye-maven-plugin</artifactId>
<version>${versioneye.version}</version>
<executions>
<execution>
<goals>
<goal>update</goal>
</goals>
<phase>site</phase>
<configuration>
<organisation>${versioneye.organisation}</organisation>
<team>${versioneye.team}</team>
<baseUrl>${versioneye.baseUrl}</baseUrl>
<visibility>${versioneye.visibility}</visibility>
<nameStrategy>${versioneye.nameStrategy}</nameStrategy>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sonar</id>
<activation>
<!-- You need entries in settings.xml to configure the link to the server, see readme -->
<property><name>sonar.jdbc.url</name></property>
<!--<property><name>sonar.jdbc.username</name></property>
<property><name>sonar.jdbc.password</name></property>
<property><name>sonar.host.url</name></property>-->
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar.version}</version>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>avro-serializer</id>
<activation>
<file>
<exists>${basedir}/src/main/avro</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>${avro.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
<configuration>
<sourceDirectory>
${project.basedir}/src/main/avro
</sourceDirectory>
<outputDirectory>
${project.build.directory}/generated-sources/avro
</outputDirectory>
<testSourceDirectory>
${project.basedir}/src/test/avro
</testSourceDirectory>
<testOutputDirectory>
${project.build.directory}/generated-test-sources/avro
</testOutputDirectory>
<fieldVisibility>
PRIVATE
</fieldVisibility>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>antlr3-gen</id>
<activation>
<file>
<exists>${basedir}/src/main/antlr3</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
<version>${antlr3.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr3-maven-plugin</artifactId>
<version>${antlr3.version}</version>
<executions>
<execution>
<id>antl3-gen</id>
<phase>generate-sources</phase>
<goals>
<goal>antlr</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>maven-plugin-dependencies</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>${maven-plugin-versions.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>${maven-plugin-versions.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${maven-plugin-versions.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>${maven-plugin-testing-harness.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>${maven-plugin-versions.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>do-version-check</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<!-- manage the versions of artifacts in a project pom -->
<!-- @see http://mojohaus.org/versions-maven-plugin/ -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions.version}</version>
<executions>
<execution>
<id>versions-maven-plugin</id>
<goals>
<goal>display-dependency-updates</goal>
<goal>display-plugin-updates</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
<configuration>
<allowIncrementalUpdates>true</allowIncrementalUpdates>
<allowMajorUpdates>false</allowMajorUpdates>
<allowMinorUpdates>true</allowMinorUpdates>
<allowSnapshots>false</allowSnapshots>
<processDependencies>true</processDependencies>
<processDependencyManagement>true</processDependencyManagement>
<reportOutputFile>target/versions-maven-plugin_outdated-dependencies.txt</reportOutputFile>
<rulesUri>https://raw.githubusercontent.com/DGHLJ/pub-maven-archetypes/master/modules/build-tools/src/main/resources/versions-maven-plugin/versions-maven-plugin_rules.xml</rulesUri>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>antlr4-gen</id>
<activation>
<file>
<exists>${basedir}/src/main/antlr4</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>${antlr4.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>${antlr4.version}</version>
<executions>
<execution>
<id>antl4-gen</id>
<phase>generate-sources</phase>
<goals>
<goal>antlr4</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/antlr4</sourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>OSXProfile</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</profile>
<profile>
<!--
https://github.com/spotify/docker-maven-plugin
To push to a private Docker image registry that requires authentication, you can put your credentials in your Maven's global settings.xml file as part of the <servers></servers> block.
NOTE: images name should be all lower case. version-SNAPSHOT may cause error 500 when creating the image
<servers>
<server>
<id>docker-hub</id>
<username>foo</username>
<password>secret-password</password>
<configuration>
<email>foo@foo.bar</email>
</configuration>
</server>
</servers>
-->
<id>docker</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
import org.apache.commons.lang.StringUtils
project.properties["docker.image.verion"] = StringUtils.upperCase(project.properties["project.version"])
</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.version}</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<execution>
<id>tag-image</id>
<phase>package</phase>
<goals>
<goal>tag</goal>
</goals>
</execution>
<execution>
<id>push-image</id>
<phase>deploy</phase>
<goals>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}-${project.version}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<serverId>docker-hub</serverId>
<registryUrl>${docker.registry.url}</registryUrl>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
<!--<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}/classes/docker</directory>
<include>*</include>
</resource>-->
</resources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>log4j-slf4j-test</id>
<activation>
<file>
<exists>${basedir}/src/test/resources/log4j.xml</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4jslf4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4jcore.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>pure4j-check</id>
<!-- Active this module require that all dependencies used in the project are in compile scope. To exclue testing dependencies in the final build, we will allow developer to opt out this profile -->
<!--<activation>
<file>
<exists>${basedir}/src/main/java</exists>
</file>
</activation>-->
<dependencies>
<!-- pure4j plugin does not work with Test scope. most likely will need
to change spring test module to compile scope-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.pure4j</groupId>
<artifactId>pure4j-core</artifactId>
<version>${pure4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<!-- @see https://github.com/robmoffat/pure4j/blob/master/README.md -->
<groupId>org.pure4j</groupId>
<artifactId>pure4j-maven-plugin</artifactId>
<version>${pure4j.version}</version>
<executions>
<execution>
<goals>
<goal>pure4j</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>log4j-slf4j</id>
<activation>
<file>
<exists>${basedir}/src/main/resources/log4j.xml</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4jslf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4jcore.version}</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>guage-test-profile</id>
<activation>
<file>
<exists>${basedir}/src/test/specs</exists>
</file>
</activation>
<!--
Guage spec based testing - BDD
@see http://getgauge.io
-->
<dependencies>
<dependency>
<groupId>com.thoughtworks.gauge</groupId>
<artifactId>guage-maven-plugin</artifactId>
<version>${guage-maven-plugin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.thoughtworks.gauge</groupId>
<artifactId>guage-java</artifactId>
<version>${guage-java.version}</version>
<executions>
<execution>
<id>integration-test</id>
<phase>test</phase>
<configuration>
<specsDir>specs</specsDir>
</configuration>
<goals>
<goal>execute</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jmeter-test-profile</id>
<activation>
<file>
<exists>${basedir}/src/test/jmeter</exists>
</file>
</activation>
<!--
REST Testing
@see https://github.com/jmeter-maven-plugin/jmeter-maven-plugin
-->
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>${jmeter.version}</version>
<executions>
<execution>
<id>integration-test</id>
<phase>verify</phase>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>newrelic-pkg</id>
<activation>
<file>
<exists>${basedir}/src/main/resources/newrelic.yml</exists>
</file>
</activation>
<!--
Commercial monitoring
@see https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation
@see https://docs.newrelic.com/docs/agents/java-agent/frameworks/maven-installation-java
-->
<dependencies>
<dependency>
<!-- Needs to add JVM command line argument
-javaagent:/path/to/newrelic.jar
-->
<groupId>com.newrelic.agent.java</groupId>
<artifactId>newrelic-agent</artifactId>
<version>${newrelic.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.newrelic.agent.java</groupId>
<artifactId>newrelic-api</artifactId>
<version>${newrelic.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<!-- Generate ObjectiveC cocde from java -->
<!-- @see https://github.com/smoope/j2objc-maven-plugin#maven-plugin-for-j2objc-library -->
<id>j2objc</id>
<activation>
<file>
<exists>${basedir}/bin/j2objc</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.smoope.utils</groupId>
<artifactId>j2objc-maven-plugin</artifactId>
<version>${j2objc.version}</version>
<configuration>
<j2objcPath>${basedir}/bin/j2objc</j2objcPath>
<useArc>true</useArc>
<noPackageDirectories>true</noPackageDirectories>
<sourcePath>${project.basedir}/src/main/java</sourcePath>
<d>${project.build.directory}/j2objc</d>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- @see http://kotlinlang.org/docs/reference/using-maven.html -->
<id>kotlin</id>
<activation>
<file>
<exists>${basedir}/src/main/kotlin</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals> <goal>compile</goal> </goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- @see http://kotlinlang.org/docs/reference/using-maven.html -->
<id>kotlin-test</id>
<activation>
<file>
<exists>${basedir}/src/test/kotlin</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals> <goal>test-compile</goal> </goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Generate POJOs from JSON Schemas -->
<!-- @see http://json-schema.org/ -->
<!-- @see https://github.com/joelittlejohn/jsonschema2pojo/ -->
<id>json-schema</id>
<activation>
<file>
<exists>${basedir}/src/main/jsonschema</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>${jsonschema2pojo.version}</version>
<configuration>
<!-- schema definitions directory -->
<sourceDirectory>${basedir}/src/main/jsonschema</sourceDirectory>
<!-- package name for the models -->
<targetPackage>${packagename}</targetPackage>
<!-- output folder folder for the generated code -->
<outputDirectory>target/generated-sources/jsonpojo</outputDirectory>
<annotationStyle>jackson2</annotationStyle>
<includeJsr303Annotations>true</includeJsr303Annotations>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>not-running-on-build-server</id>
<activation>
<property>
<name>!setBuildServer</name>
</property>
</activation>
<properties>
<isBuildServer>fase</isBuildServer>
<isNotBuildServer>true</isNotBuildServer>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.ekryd.echo-maven-plugin</groupId>
<artifactId>echo-maven-plugin</artifactId>
<version>${echo-maven-plugin.version}</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>echo</goal>
</goals>
<configuration>
<message>Profile NOT-RUNNING-ON-BUILD-SERVER is active</message>
<level>INFO</level>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>running-on-build-server</id>
<activation>
<property>
<name>setBuildServer</name>
</property>
</activation>
<properties>
<isBuildServer>true</isBuildServer>
<isNotBuildServer>false</isNotBuildServer>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.ekryd.echo-maven-plugin</groupId>
<artifactId>echo-maven-plugin</artifactId>
<version>${echo-maven-plugin.version}</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>echo</goal>
</goals>
<configuration>
<message>Profile RUNNING-ON-BUILD-SERVER is active</message>
<level>INFO</level>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- These are things the build server can do before running the actual jobs to prep the enviornment -->
<id>buildServerPrep</id>
<activation>
<property>
<name>singletonOnBuildServer</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<!-- Security database update -->
<!-- @see http://jeremylong.github.io/DependencyCheck/dependency-check-maven/index.html -->
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependencycheck.version}</version>
<configuration>
<cveValidForHours>8</cveValidForHours>
</configuration>
<executions>
<execution>
<goals>
<goal>update-only</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.ekryd.echo-maven-plugin</groupId>
<artifactId>echo-maven-plugin</artifactId>
<version>${echo-maven-plugin.version}</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>echo</goal>
</goals>
<configuration>
<message>Running OWASP DB Update due to defined buildServerPrep</message>
<level>INFO</level>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java-defaults</id>
<activation>
<file>
<exists>${basedir}/src/main/java</exists>
</file>
</activation>
<dependencyManagement>
<dependencies>
<dependency>
<!--
Automatic generation of the Builder pattern for Java 1.6+
http://freebuilder.inferred.org
https://github.com/google/FreeBuilder
-->
<groupId>org.inferred</groupId>
<artifactId>freebuilder</artifactId>
<version>${freebuilder.version}</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- Logging Dependencies -->
<dependency>
<!-- @see http://engineering.godaddy.com/logging-the-easy-way/ -->
<!-- @see https://github.com/godaddy/godaddy-logger -->
<groupId>com.godaddy</groupId>
<artifactId>logging</artifactId>
<version>${gdlogger.version}</version>
<exclusions>
<exclusion>
<!-- included explicityly -->
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.logback.contrib</groupId>
<artifactId>logback-jackson</artifactId>
<version>${logback-jackson.version}</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- A JaxB mapper is necessary for logback-ext-json-classic
you can use others though, it doesn't have to be jackson -->
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson1.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<!-- Used by logstash logback encoder -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-databind.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<!-- https://github.com/logstash/logstash-logback-encoder -->
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash.version}</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<!-- @see http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html#maven -->
<!-- annotations from the Checker Framework: nullness, interning, locking, ... -->
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>${checkers.version}</version>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker</artifactId>
<version>${checkers.version}</version>
</dependency>
<dependency>
<!-- The annotated JDK to use (change to jdk7 if using Java 7) -->
<groupId>org.checkerframework</groupId>
<artifactId>jdk8</artifactId>
<version>${checkers.version}</version>
</dependency>
<!-- Code Generation Dependencies -->
<dependency>
<!-- http://pojomatic.sourceforge.net/pojomatic/index.html -->
<groupId>org.pojomatic</groupId>
<artifactId>pojomatic</artifactId>
<version>${pojomatic.version}</version>
</dependency>
<dependency>
<groupId>org.immutables</groupId>
<artifactId>value</artifactId>
<version>${immutables.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- Lombok requires Javac v1.6 compiler or higher -->
<!-- You still need to doubleclick the lombok.jar
file downloaded by maven to install lombok into
eclipse.
-->
<!-- http://projectlombok.org/features/index.html -->
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle.version}</version>
<configuration>
<configLocation>${checkstyle.ruleset.url}</configLocation>
<logViolationsToConsole>true</logViolationsToConsole>
<failOnViolation>true</failOnViolation>
<failsOnError>true</failsOnError>
</configuration>
<executions>
<execution>
<goals>
<goal>checkstyle</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jalopy-maven-plugin</artifactId>
<version>${jalopy.version}</version>
<configuration>
<convention>source-munge/jalopy.xml</convention>
<failOnError>false</failOnError>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java-tests</id>
<activation>
<file>
<exists>${basedir}/src/test/java</exists>
</file>
</activation>
<dependencies>
<!-- Unit Testing Dependencies -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>${equalsverifier.version}</version>
<scope>test</scope>
</dependency>
<!-- Mock framework -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- testing -->
<!--
Tests are divided into three categories:
1. Very fast Unit Tests (default) - run often in development
2. slower integration but self-sufficent tests (Spring context and/or H2 Database - run before commits
3. real integration tests (requiring remote servers) - run by CI Server
You can seperate tests by adding the annotation
@Test(groups = "self-integration")
or
@Test(groups = "full-integration")
http://www.javacodegeeks.com/2012/04/testng-and-maven-configuration-guide.html
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<executions>
<execution>
<!-- Override default configuration, which treats all tests the same -->
<id>default-test</id>
<configuration>
<excludedGroups>self-integration,full-integration</excludedGroups>
</configuration>
</execution>
<execution>
<id>self-integration</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<groups>self-integration</groups>
<reportsDirectory>target/self-integration-surefire-reports/</reportsDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>${pitest.version}</version>
<configuration>
<targetClasses>
<targetClass>${project.parent.groupId}</targetClass>
</targetClasses>
<targetTests>
<targetTest>${project.parent.groupId}*Test</targetTest>
</targetTests>
<outputFormats>
<!-- Sonar needs XML output -->
<outputFormat>XML</outputFormat>
<outputFormat>HTML</outputFormat>
</outputFormats>
<!-- Sonar expects reports to not have timestamps -->
<timestampedReports>false</timestampedReports>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<!-- vim: set noexpandtab tabstop=4 shiftwidth=4: -->
</project>