<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>9</version>
	</parent>
	<groupId>se.softhouse</groupId>
	<artifactId>jargo-parent</artifactId>
	<description>Jargo maven parent</description>
	<version>0.4.14</version>
	<packaging>pom</packaging>
	<url>https://github.com/Softhouse/jargo</url>
	<properties>
		<guava.version>24.1-jre</guava.version>
		<maven.javadoc.plugin.version>3.0.0</maven.javadoc.plugin.version>
		<jacoco.version>0.8.1</jacoco.version>
	</properties>
	<scm>
		<url>https://github.com/jontejj/jargo</url>
		<connection>scm:git:git://github.com/jontejj/jargo.git</connection>
		<developerConnection>scm:git:git@github.com:jontejj/jargo.git</developerConnection>
	</scm>
	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/Softhouse/jargo/issues</url>
	</issueManagement>
	<ciManagement>
		<system>Jenkins</system>
		<url>https://jontejj.ci.cloudbees.com/job/jargo/</url>
	</ciManagement>
	<mailingLists>
		<mailingList>
			<name>Google group QA forum</name>
			<archive>https://groups.google.com/forum/?#!forum/jargo</archive>
		</mailingList>
	</mailingLists>
	<inceptionYear>2013</inceptionYear>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<developers>
		<developer>
			<id>joj</id>
			<name>Jonatan Jönsson</name>
			<email>jontejj@gmail.com</email>
			<organization>Nox Finans AB</organization>
			<organizationUrl>http://www.noxfinans.se</organizationUrl>
			<roles>
				<role>owner</role>
				<role>developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
	</developers>
	<modules>
		<module>common-test</module>
		<module>jargo</module>
		<module>jargo-addons</module>
	</modules>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.0.0</version>
				<configuration>
					<!-- Avoid hefty javadoc differences -->
					<notimestamp>true</notimestamp>
					<encoding>UTF-8</encoding>
					<locale>en_US</locale>
					<failOnError>true</failOnError>
					<nodeprecated>true</nodeprecated>
					<linksource>true</linksource>
					<quiet>true</quiet>
					<!--https://issues.apache.org/jira/browse/MJAVADOC-427 <links> <link>http://www.javadoc.io/doc/com.google.guava/guava/24.1-jre</link> 
						<link>http://www.javadoc.io/doc/com.google.code.findbugs/jsr305/3.0.2</link> 
						<link>http://www.javadoc.io/doc/org.easytesting/fest-assert/1.4</link> </links> -->
					<additionalOptions>--allow-script-in-comments</additionalOptions>
					<tags>
						<!-- Exclude these tags as they are only used in editors not documentation -->
						<tag>
							<name>formatter.on</name>
							<placement>X</placement>
						</tag>
						<tag>
							<name>formatter.off</name>
							<placement>X</placement>
						</tag>
					</tags>
					<!-- Put prettify in the javadoc for nice code examples -->
					<javadocDirectory>${basedir}/src/main/javadoc/</javadocDirectory>
					<docfilessubdirs>true</docfilessubdirs>
					<header><![CDATA[
               <link rel="stylesheet" type="text/css" href="doc-files/prettify/prettify.css">
               <script src="doc-files/prettify/prettify.js" type="text/javascript"></script>
               <script language="JavaScript">window.onload=function(){prettyPrint();};</script>
               ]]></header>
				</configuration>
			</plugin>
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<version>2.7.2</version>
				<configuration>
					<configFile>${maven.multiModuleProjectDirectory}/config/code-formatter.xml</configFile>
					<overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
					<compilerSource>1.8</compilerSource>
					<compilerCompliance>1.8</compilerCompliance>
					<compilerTargetPlatform>1.8</compilerTargetPlatform>
				</configuration>
				<executions>
					<execution>
						<goals>
							<!-- <goal>validate</goal> -->
							<!-- Enable this if you want to format at compile time (don't commit 
								with this goal enabled though). It's better to configure your code editor 
								to be compliant with code-formatter.xml instead. If that's annoying, set 
								up a maven profile to enable "format" and make sure to run mvn compile before 
								commiting. -->
							<goal>format</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${jacoco.version}</version>
				<configuration>
					<destFile>${user.home}/jargo/jacoco.exec</destFile>
				</configuration>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>report</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
					<execution>
						<!-- Fails the build if high standards are not met -->
						<id>check</id>
						<goals>
							<goal>check</goal>
						</goals>
						<configuration>
							<rules>
								<rule>
									<element>BUNDLE</element>
									<limits>
										<limit>
											<counter>CLASS</counter>
											<value>COVEREDRATIO</value>
											<minimum>1.0</minimum>
										</limit>
										<limit>
											<counter>METHOD</counter>
											<value>COVEREDRATIO</value>
											<minimum>1.0</minimum>
										</limit>
										<limit>
											<counter>INSTRUCTION</counter>
											<value>COVEREDRATIO</value>
											<minimum>0.99</minimum>
										</limit>
										<limit>
											<counter>BRANCH</counter>
											<value>COVEREDRATIO</value>
											<minimum>0.99</minimum>
										</limit>
										<limit>
											<counter>COMPLEXITY</counter>
											<value>COVEREDRATIO</value>
											<minimum>0.99</minimum>
										</limit>
										<limit>
											<counter>LINE</counter>
											<value>COVEREDRATIO</value>
											<minimum>0.99</minimum>
										</limit>
									</limits>
								</rule>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<configuration>
					<!-- If deploy is successful, then release the staging area directly -->
					<goals>deploy nexus-staging:release</goals>
					<!-- Automatically generate tag names -->
					<tagNameFormat>v@{project.version}</tagNameFormat>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.6</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>sonatype-nexus-staging</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<description>Release of ${project.version}</description>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<!-- Parent POM is using 1.2 which triggers annoying warnings in eclipse -->
				<version>1.4</version>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.21.0</version>
					<configuration>
						<!-- The idea is to run all tests concurrently in the same JVM, reporting 
							any errors to standard out as the tests aren't allowed to log anything else 
							than errors -->
						<useFile>false</useFile>
						<parallel>all</parallel>
						<useUnlimitedThreads>true</useUnlimitedThreads>
						<!-- <threadCount>4</threadCount> -->
						<!-- Fork one time to minimize memory usage while concurrently launching 
							several child-processes -->
						<forkCount>1</forkCount>
						<reuseForks>true</reuseForks>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.2</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>2.6</version>
			</plugin>
		</plugins>
	</reporting>
	<dependencies>
		<dependency>
			<!-- The stuff that java should have had from the start -->
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>${guava.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Annotations such as @Nonnull, @ThreadSafe etc -->
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>jsr305</artifactId>
			<version>1.3.9</version>
			<scope>provided</scope>
		</dependency>
		<!-- Test libs -->
		<dependency>
			<!-- Micro benchmarking, See SimpleBenchmark -->
			<groupId>com.google.caliper</groupId>
			<artifactId>caliper</artifactId>
			<version>0.5-rc1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Includes NullPointerTester, MapTestSuiteBuilder and lots more -->
			<groupId>com.google.guava</groupId>
			<artifactId>guava-testlib</artifactId>
			<scope>test</scope>
			<version>${guava.version}</version>
		</dependency>
		<dependency>
			<!-- Mostly included for SuppressFBWarnings, unfortunately it includes 
				@NonNull annotations, don't use them, use the ones from jsr305 instead -->
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>annotations</artifactId>
			<version>2.0.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Fluent assertions like assertThat -->
			<groupId>org.easytesting</groupId>
			<artifactId>fest-assert</artifactId>
			<version>1.4</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Test runner -->
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Code coverage agent that adds instrumentation to compiled classes -->
			<groupId>org.jacoco</groupId>
			<artifactId>org.jacoco.agent</artifactId>
			<classifier>runtime</classifier>
			<version>${jacoco.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- Includes ConcurrentTestRunner -->
			<groupId>com.google.code.tempus-fugit</groupId>
			<artifactId>tempus-fugit</artifactId>
			<version>1.1</version>
			<scope>test</scope>
		</dependency>
		<!-- Makes mocking final classes possible (even java.* classes) -->
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<version>1.7.0RC2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-mockito</artifactId>
			<version>1.7.0RC2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>