<?xml version="1.0"?>
<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>nz.net.osnz.parent</groupId>
		<artifactId>central-parent</artifactId>
		<version>3.4</version>
	</parent>

	<artifactId>java-parent</artifactId>
	<version>3.4</version>
	<packaging>pom</packaging>

	<name>Open Source New Zealand - Central Java Parent</name>
	<description>This is the central java artifact for all java-based projects.</description>
	<url>https://github.com/kdeng/java-parent</url>

	<properties>
		<skip.integration.tests>false</skip.integration.tests>
		<skip.functional.tests>false</skip.functional.tests>
		<unit.test />
		<function.test />
		<sonar.language>java</sonar.language>
	</properties>

	<build>
		<plugins>

			<plugin>
				<groupId>com.bluetrainsoftware.maven</groupId>
				<artifactId>release-pom</artifactId>
				<version>1.5</version>
				<executions>
					<execution>
						<id>generate-dep-list</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>release-pom</goal>
						</goals>
						<configuration>
							<useMaven2>false</useMaven2>
							<outputFile>${project.build.outputDirectory}/META-INF/maven/released-pom.xml</outputFile>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.7.4.201502262128</version>
				<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>
				</executions>
			</plugin>

			<!--
				Exclude integration and functional tests in the normal test phase.
				Integration tests are run in a separate surefire run in the test
				phase; functional tests are run later via the failsafe plugin.
			  -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.18.1</version>
				<configuration>
					<useSystemClassLoader>true</useSystemClassLoader>
					<useManifestOnlyJar>false</useManifestOnlyJar>
					<failIfNoTests>false</failIfNoTests>
					<includes>
						<include>**/*Test.java</include>
						<include>**/*Tests.java</include>
					</includes>
					<excludes>
						<exclude>**/*$*</exclude>
						<exclude>**/*IntegrationTest.java</exclude>
						<exclude>**/*IntegrationTests.java</exclude>
						<exclude>**/*FunctionalTest.java</exclude>
						<exclude>**/*FunctionalTests.java</exclude>
					</excludes>
				</configuration>
				<executions>
					<execution>
						<id>integration-test</id>
						<phase>test</phase>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<skipTests>${skip.integration.tests}</skipTests>
							<includes>
								<include>**/*IntegrationTest.java</include>
								<include>**/*IntegrationTests.java</include>
							</includes>
							<excludes>
								<exclude>**/*$*</exclude>
							</excludes>
							<test>${unit.test}</test>
							<!-- specify -Dunit.test=testname to run individual test -->
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>failsafe-maven-plugin</artifactId>
				<version>2.4.3-alpha-1</version>
				<configuration>
					<argLine>-Xms512M -Xmx512M</argLine>
					<failIfNoTests>false</failIfNoTests>
					<encoding>${project.build.sourceEncoding}</encoding>
					<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
					<summaryFile>${project.build.directory}/surefire-reports/failsafe-summary.xml</summaryFile>
					<skipTests>${skip.functional.tests}</skipTests>
					<excludes>
						<exclude>**/*$*</exclude>
					</excludes>
					<includes>
						<include>**/*FunctionalTest.java</include>
						<include>**/*FunctionalTests.java</include>
					</includes>
					<test>${function.test}</test>
				</configuration>
				<executions>
					<execution>
						<id>functional-test</id>
						<goals>
							<goal>integration-test</goal>
						</goals>
					</execution>
					<execution>
						<id>verify</id>
						<goals>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.4</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>package</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>com.bluetrainsoftware.maven</groupId>
				<artifactId>groovydoc-maven-plugin</artifactId>
				<version>1.3</version>
				<executions>
					<execution>
						<id>attach-docs</id>
						<goals>
							<goal>attach-docs</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

		</plugins>
	</build>

	<scm>
		<url>https://github.com/kdeng/java-parent</url>
		<connection>scm:git:git@github.com/kdeng/java-parent.git</connection>
		<developerConnection>scm:git:git@github.com:kdeng/java-parent.git</developerConnection>
		<tag>java-parent-3.4</tag>
	</scm>

</project>
