<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>de.humanfork.springdatajpaextension</groupId>
	<artifactId>spring-data-jpa-extension</artifactId>
	<version>0.4.2</version>
	
	<name>Humanfork Spring-Data-JPA Extension</name>
	<description>Humanfork Extension (nullaware) for Spring-Data-JPA</description>

	<url>https://www.humanfork.de/projects/spring-data-jpa-extension</url>
	<inceptionYear>2011</inceptionYear>
	
	<developers>
		<developer>
			<organization>Humanfork</organization>
			<name>Ralph Engelmann</name>
			<email>ralph.humanfork@humanfork.de</email>
			<url>https://gitlab.com/RalphEng</url>
			<properties>
				<picUrl>https://www.humanfork.de/images/ralph-avatar.png</picUrl>
			</properties>
		</developer>
	</developers>

	<organization>
		<name>humanfork</name>
		<url>http://www.humanfork.de</url>
	</organization>

	<licenses>
		<license>
			<name>Apache 2</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
			<comments>A business-friendly OSS license</comments>
		</license>
	</licenses>

	<scm>
		<connection>scm:git:https://gitlab.com/Humanfork/spring-data-jpa-extension.git</connection>
		<developerConnection>scm:git:git@gitlab.com:Humanfork/spring-data-jpa-extension.git</developerConnection>
		<url>https://gitlab.com/Humanfork/spring-data-jpa-extension</url>
		<tag>spring-data-jpa-extension-0.4.2</tag>
	</scm>
	
	<issueManagement>
		<system>GitLab</system>
		<url>https://gitlab.com/Humanfork/spring-data-jpa-extension/issues</url>
	</issueManagement>
	
	<ciManagement>
		<system>GitLab CI/CD</system>
		<url>https://gitlab.com/Humanfork/spring-data-jpa-extension/pipelines</url>
	</ciManagement>

	<distributionManagement>
		<site>
			<id>gitlab-pages-site</id>
			<name>Deployment through GitLab's site deployment plugin</name>
			<url>file:///${maven.multiModuleProjectDirectory}/target/site-stage/${project.version}</url>
		</site>
	</distributionManagement>

	<properties>
		<java.version>1.8</java.version>
		<spring.version>5.1.0.RELEASE</spring.version>
		<spring-data.version>2.1.0.RELEASE</spring-data.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		
		<spring-restdocs.version>2.0.4.RELEASE</spring-restdocs.version>
	</properties>

	<dependencies>	
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-commons</artifactId>
			<version>${spring-data.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-jpa</artifactId>
			<version>${spring-data.version}</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>javax.persistence-api</artifactId>
			<version>2.2</version>
		</dependency>
		
		<!-- unit tests -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.1</version>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.2.0</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>3.2.0</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>2.5.3</version>
				<configuration>
					<releaseProfiles>release</releaseProfiles>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.2</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.1.1</version>
				<configuration>
					<source>${java.version}</source>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.8.2</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<version>3.0.0-M3</version>
				<executions>
					<execution>
						<id>enforce-maven</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<version>3.6.0</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
					<execution>
						<id>enforce-lib-ban</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
							    <!-- 
								<bannedDependencies>
									<!- - org.hamcrest:hamcrest-core and org.hamcrest:hamcrest-library 
										was dropped in version 2.1 prior to org.hamcrest:hamcrest (RUM-1492) - ->
									<excludes>
										<exclude>org.hamcrest:hamcrest-core</exclude>
										<exclude>org.hamcrest:hamcrest-library</exclude>
									</excludes>
									<message>use org.hamcrest:hamcrest only (since version 2.1)</message>
								</bannedDependencies>
								<bannedDependencies>
									<!- - groupId of junit changed in from version 4 to 5 from "junit" 
										to "org.junit" and the artifact structure changed too - ->
									<excludes>
										<exclude>junit:junit</exclude>
										<exclude>junit:junit-dep</exclude>
									</excludes>
									<message>use Junit5 (org.junit:*) instead</message>
								</bannedDependencies>
								-->
								<bannedDependencies>
									<!-- javax.annotation (javax.annotation:javax.annotation-api) moved 
										to jakarta.annotation (RUM-1595) -->
									<excludes>
										<exclude>javax.annotation</exclude>
									</excludes>
									<message>use jakarta.annotation (jakarta.annotation:*) instead</message>
								</bannedDependencies>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.7.1</version>
				<configuration>
					<skipDeploy>true</skipDeploy>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.asciidoctor</groupId>
				<artifactId>asciidoctor-maven-plugin</artifactId>
				<version>1.6.0</version>

				<executions>
					<execution>
						<id>generate-docs</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>process-asciidoc</goal>
						</goals>
						<configuration>
							<backend>html</backend>
							<doctype>book</doctype>
							<sourceHighlighter>highlightjs</sourceHighlighter>
							<attributes>
								<project-version>${project.version}</project-version>
								<snippets>${project.build.directory}/generated-snippets</snippets>
							</attributes>
						</configuration>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>org.springframework.restdocs</groupId>
						<artifactId>spring-restdocs-asciidoctor</artifactId>
						<version>${spring-restdocs.version}</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
	
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.0.0</version>
				<reportSets>
					<!-- different report sets, the second one is just for the parent -->
					<reportSet>
						<id>project-info-report-every-module-first-part</id>
						<reports>
							<!--
							the parent module has its own "About" page and menu item 
							<report>index</report>
							 -->
						</reports>
					</reportSet>
					<reportSet>
						<id>project-info-report-parent-only</id>
						<reports>
							<report>team</report>
							<report>dependency-info</report>
							<report>scm</report>
							<report>distribution-management</report>
							<report>issue-management</report>
							<report>ci-management</report>
							<report>modules</report>
							<report>licenses</report>
						</reports>
						<inherited>false</inherited>
					</reportSet>
					<reportSet>
						<id>project-info-report-every-module-last-part</id>
						<reports>
							<report>dependencies</report>
							<report>dependency-convergence</report>
							<report>dependency-management</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
				<version>2.7</version>
				<reportSets>
					<reportSet>
						<reports>
							<report>plugin-updates-report</report>
							<report>dependency-updates-report</report>
						</reports>
						<inherited>false</inherited>
						<configuration>
							<rulesUri>file:///${maven.multiModuleProjectDirectory}/src/maven/maven-version-rules.xml</rulesUri>
						</configuration>
					</reportSet>
					<reportSet>
						<!-- inherit no (an empty report set) to all child modules -->
						<reports />
					</reportSet>
				</reportSets>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>test-jar-no-fork</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-jar-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>test-jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>