<!--
  #%L
  Apache Kafka Embedded Server
  $Id:$
  $HeadURL:$
  %%
  Copyright (C) 2013 - 2019 Leadware
  %%
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  #L%
  -->
<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">
	
	<!-- Project parent -->
	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>9</version>
	</parent>
	
	<!-- Pom model version -->
	<modelVersion>4.0.0</modelVersion>
	
	<!-- Project group ID -->
	<groupId>net.leadware</groupId>
	
	<!-- Project Artifact ID -->
	<artifactId>bean-validation</artifactId>
	
  	<!-- Project name -->
  	<name>JSR 303 Extentions Tools</name>
  	
  	<!-- Project description -->
  	<description>JSR 303 Extentions Tools</description>
  	
	<!-- Project Version -->
  	<version>1.0.0-RC6</version>  
  	
	<!-- Packaging -->
	<packaging>jar</packaging>
	
	<!-- Project source URL -->
	<url>https://github.com/leadware/bean-validation/</url>
	
	<!-- Project licence -->
	<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>
	
	<!-- Project scm -->
	<scm>
		<connection>scm:git:git@github.com:leadware/bean-validation.git</connection>
		<developerConnection>scm:git:git@github.com:leadware/bean-validation.git</developerConnection>
		<url>git@github.com:leadware/bean-validation.git</url>
	</scm>
	
	<!-- Project issue managment -->
	<issueManagement>
		<system>Jira</system>
		<url>http://bean-validation.jira.leadware.net</url>
	</issueManagement>
	
	<!-- Project Continuous integration system -->
	<ciManagement>
		<system>Jenkins</system>
		<url>http://bean-validation.jenkins.leadware.net</url>
	</ciManagement>
	
	<!-- Project developpers -->
	<developers>
		<developer>
			<name>Jean-Jacques ETUNE NGI</name>
			<email>jetune@leadware.net</email>
			<organization>Leadware</organization>
			<timezone>GMT+1</timezone>
			<roles>
				<role>owner</role>
				<role>Technical lead</role>
				<role>Enterprise Architect</role>
				<role>Developper</role>
			</roles>
		</developer>
	</developers>
	
	<!-- Project organisation -->
	<organization>
		<name>Leadware</name>
		<url>http://www.leadware.net</url>
	</organization>
	
	<!-- Project properties -->
	<properties>
		
		<!-- Enforcer maven Plugin version property -->
		<maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
		
		<!-- JRE Source version Property -->
		<jre-source.version>1.8</jre-source.version>
		
		<!-- JRE Target version Property  -->
		<jre-target.version>1.8</jre-target.version>
		
		<!-- Required OS Family -->
		<os.family>unix</os.family>
		
		<!-- Minimal Maven version property -->
		<maven.version>3.0</maven.version>
		
		<!-- Maven compiler plugin version property -->
		<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
		
		<!-- Maven Javadoc Version property -->
		<maven-javadoc-plugin.version>3.1.0</maven-javadoc-plugin.version>
		
		<!-- Maven Source Plugin Version Property -->
		<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
		
		<!-- m2e lifecycle mapping version property -->
		<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
		
		<!-- Maven Surefire plugin version propery -->
		<maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version>
		
		<!-- Maven Failsafe plugin version propery -->
		<maven-failsafe-plugin.version>2.22.1</maven-failsafe-plugin.version>
		
		<!-- Maven Site Plugin Version Property -->
		<maven-site-plugin.version>3.3</maven-site-plugin.version>
		
		<!-- Maven Deploy Plugin Version Property -->
		<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
		
		<!-- Licence Maven Plugin version property -->
		<license-maven-plugin.version>1.20</license-maven-plugin.version>
		
		<!-- Apache RAT Plugin Version Property -->
		<apache.rat.plugin.version>0.13</apache.rat.plugin.version>
		
		<!-- GPG Version Property -->
		<gpg.version>1.6</gpg.version>
		
		<!-- Hibernate validator version propery -->
		<hibernate-validator.version>6.0.16.Final</hibernate-validator.version>
		
		<!-- Lombok version property -->
		<lombok.version>1.18.6</lombok.version>
		
		<!-- Spring version -->
		<spring.version>5.1.5.RELEASE</spring.version>
		
		<!-- SLF4J version -->
		<slf4j.version>1.7.25</slf4j.version>
		
		<!-- Jackson Databind -->
		<jackson-databind.version>2.9.8</jackson-databind.version>
		
	</properties>
	
	<!-- Dependencies management -->
	<dependencyManagement>
		
		<!-- Dependencies -->
		<dependencies>
			
			<!-- Hibernate Validator -->
			<dependency>
				<groupId>org.hibernate.validator</groupId>
				<artifactId>hibernate-validator</artifactId>
				<version>${hibernate-validator.version}</version>
			</dependency>
			
			<!-- Lombok -->
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
			</dependency>
			
			<!-- Spring -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${spring.version}</version>
			</dependency>
			
			<!-- SLF4J -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			
			<!-- Jackson Databind -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson-databind.version}</version>
			</dependency>
			
		</dependencies>
		
	</dependencyManagement>
	
	<!-- Project dependencies -->
	<dependencies>
		
		<!-- Hibernate Validator dependency -->
		<dependency>
			<groupId>org.hibernate.validator</groupId>
			<artifactId>hibernate-validator</artifactId>
		</dependency>
		
		<!-- Lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>
		
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		
		<!-- SLF4J -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		
		<!-- Jackson Databind -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>
		
	</dependencies>
	
	<!-- Project build configuration -->
	<build>
		
		<!-- Plugins Management -->
		<pluginManagement>
			
			<!-- Plugins -->
			<plugins>
				
				<!-- Enforcer Maven plugin -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>${maven-enforcer-plugin.version}</version>
					<executions>
				    	<execution>
				    		<id>enforce-maven-3</id>
				    		<goals>
				    			<goal>enforce</goal>
				    		</goals>
				    		<configuration>
				    			<rules>
				    				
				    				<!-- Required Maven version -->
				    				<requireMavenVersion>
				    					<version>${maven.version}</version>
				    				</requireMavenVersion>
				    				
				    				<!-- Required Java version -->
				    				<requireJavaVersion>
										<version>${jre-source.version}</version>
									</requireJavaVersion>
									
				    				<!-- Required OS Family -->
				    				<requireOS>
										<family>${os.family}</family>
									</requireOS>
									
				    			</rules>
				    		</configuration>
				    	</execution>
				    </executions>
				</plugin>
				
				<!-- Maven Compiler plugin -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin.version}</version>
					<configuration>
						<source>${jre-source.version}</source>
						<target>${jre-target.version}</target>
					</configuration>
				</plugin>
				
				<!-- Maven Source plugin -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven-source-plugin.version}</version>
					<executions>
				    	<execution>
				    		<phase>verify</phase>
				    		<goals>
				    			<goal>jar-no-fork</goal>
				    			<goal>test-jar-no-fork</goal>
				    		</goals>
				    	</execution>
				    </executions>
				</plugin>
			
				<!-- Maven Deploy plugin -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven-deploy-plugin.version}</version>
				</plugin>
			
				<!-- Maven Javadoc plugin -->
				<plugin>
				    <groupId>org.apache.maven.plugins</groupId>
				    <artifactId>maven-javadoc-plugin</artifactId>
				    <version>${maven-javadoc-plugin.version}</version>
				    <configuration>
				        <show>private</show>
				        <nohelp>false</nohelp>
				    </configuration>
				    <executions>
				    	<execution>
				    		<goals>
				    			<goal>jar</goal>
				    		</goals>
				    	</execution>
				    </executions>
				</plugin>
				
				<!-- Maven Surefire Plugin -->
				<plugin>
					<groupId>org.apache.maven.plugin</groupId>
					<artifactId>maven-surefire-plugins</artifactId>
					<version>${maven-surefire-plugin.version}</version>
					<configuration>
						<excludes>
							<exclude>**/*TestIT.java</exclude>
							<exclude>**/*ITCase.java</exclude>
						</excludes>
						<forkMode>once</forkMode>
					</configuration>
				</plugin>
				
				<!-- maven failsafe -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>${maven-failsafe-plugin.version}</version>
					<configuration>
						<includes>
							<include>**/*TestIT.java</include>
							<include>**/*ITCase.java</include>
						</includes>
					</configuration>
				</plugin>
				
				<!-- Maven Site Plugin -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>${maven-site-plugin.version}</version>
				</plugin>
				
				<!-- Licence Maven Plugin -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>${license-maven-plugin.version}</version>
					<configuration>
						<verbose>true</verbose>
						<addSvnKeyWords>true</addSvnKeyWords>
						<licenseName>apache_v2</licenseName>
						<inceptionYear>2019</inceptionYear>
						<excludes>
							<exclude>**/META-INF/*.json</exclude>
						</excludes>
					</configuration>
				</plugin>
				
				<!-- Apache RAT plugin -->
				<plugin>
					<groupId>org.apache.rat</groupId>
					<artifactId>apache-rat-plugin</artifactId>
					<version>${apache.rat.plugin.version}</version>
					<configuration>
						<excludes>
							<exclude>**/.git/**</exclude>
							<exclude>**/test/resources/**</exclude>
							<exclude>**/.gitignore/**</exclude>
	                        <exclude>**/catalog.xml</exclude>
	                        <exclude>**/.springBeans</exclude>
	                        <exclude>**/README</exclude>
	                        <exclude>**/README.md</exclude>
	                        <exclude>**/README.txt</exclude>
	                        <exclude>**/MANIFEST.MF</exclude>
	                        <exclude>**/.factorypath</exclude>
	                        <exclude>**/.settings/**</exclude>
	                        <exclude>**/.apt_generated/**</exclude>
	                        <exclude>**/.apt_generated_tests/**</exclude>
	                        <exclude>**/.project</exclude>
	                        <exclude>**/.classpath</exclude>
	                        <exclude>**/META-INF/*.json</exclude>
						</excludes>
					</configuration>
					<executions>
						<execution>
							<phase>verify</phase>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				
				<!-- GPG Plugin -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>${gpg.version}</version>
					<configuration>
						<passphrase>sakazaki</passphrase>
						<excludes>**/*.asc</excludes>
					</configuration>
					<executions>
						<execution>
							<id>sign-artifact</id>
							<phase>verify</phase>
							<goals>
								<goal>sign</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>${lifecycle-mapping.version}</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-enforcer-plugin</artifactId>
										<versionRange>[${maven-enforcer-plugin.version},)</versionRange>
										<goals>
											<goal>enforce</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
				
				
			</plugins>
			
		</pluginManagement>
		
		<!-- Global Default Plugins -->
		<plugins>
				
			<!-- Enforcer Maven plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>
			
			<!-- Maven Compiler plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			
			<!-- Maven Source plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>
			
		</plugins>
		
	</build>
	
	<!-- Project profiles -->
	<profiles>
		
		<!-- Deploy profile -->
		<profile>
			
			<!-- Profile ID -->
			<id>deploy</id>
			
			<!-- Profile Activation -->
			<activation>
				
				<!-- Default Activation -->
				<activeByDefault>false</activeByDefault>
				
			</activation>
			
			<!-- Profile Build Configuration -->
			<build>
				
				<!-- Profile plugins -->
				<plugins>
					
					<!-- Licence Maven Plugin -->
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>license-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>update-header-sources</id>
								<phase>process-sources</phase>
								<goals>
									<goal>update-file-header</goal>
								</goals>
								<configuration>
									<roots>
										<root>./</root>
									</roots>
								</configuration>
							</execution>
						</executions>
					</plugin>
					
					<!-- Maven Javadoc plugin -->
					<plugin>
					    <groupId>org.apache.maven.plugins</groupId>
					    <artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
					
					<!-- Maven Site Plugin -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-site-plugin</artifactId>
					</plugin>
					
					<!-- Apache RAT plugin -->
					<plugin>
						<groupId>org.apache.rat</groupId>
						<artifactId>apache-rat-plugin</artifactId>
					</plugin>
					
					<!-- GPG Plugin -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
					</plugin>
					
					<!-- Release Plugin -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-release-plugin</artifactId>
						<configuration>
							<mavenExecutorId>forked-path</mavenExecutorId>
							<useReleaseProfile>false</useReleaseProfile>
							<arguments>${arguments} -DskipTests -Psonatype-oss-release</arguments>
						</configuration>
					</plugin>
					
				</plugins>
				
			</build>
			
		</profile>
			
	</profiles>
	
</project>
