<?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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>io.mosip</groupId>
		<artifactId>registration</artifactId>
		<version>1.2.0</version>
	</parent>

	<groupId>io.mosip.registration</groupId>
	<version>1.2.0</version>
	<artifactId>registration-client-parent</artifactId>
	<packaging>pom</packaging>
	<name>MOSIP Registration Client</name>
        <description>Mosip Registration Client Project</description>	
        <url>https://github.com/mosip/registration-client</url>
        <licenses>	
          <license>	
                <name>MPL 2.0</name>	
                <url>https://www.mozilla.org/en-US/MPL/2.0/</url>	
          </license>	
        </licenses>	
                <scm>	
                <connection>scm:git:git://github.com/mosip/registration-client.git</connection>	
                <developerConnection>scm:git:ssh://github.com:mosip/registration-client.git</developerConnection>	
                <url>https://github.com/mosip/registration-client</url>	
                <tag>HEAD</tag>	
        </scm>	
        <developers>	
                <developer>	
                  <name>Mosip</name>	
                  <email>mosip.emailnotifier@gmail.com</email>	
                  <organization>io.mosip</organization>	
                  <organizationUrl>https://github.com/mosip/registration-client</organizationUrl>	
                </developer>	
     </developers>
         <repositories>	
                <repository>	
                        <id>ossrh</id>	
                        <name>Central Repository</name>	
                        <url>https://oss.sonatype.org/content/repositories/snapshots</url>	
                        <layout>default</layout>	
                        <snapshots>	
                        <enabled>true</enabled>	
                        </snapshots>	
                </repository>	
                <repository>	
                    <id>central</id>	
                    <name>Maven Central</name>	
                    <layout>default</layout>	
                    <url>https://repo1.maven.org/maven2</url>	
                    <snapshots>	
                    <enabled>false</enabled>	
                    </snapshots>	
                  </repository>	
        </repositories>
         
         <distributionManagement>	
                <snapshotRepository>	
                        <id>ossrh</id>	
                        <url>https://oss.sonatype.org/content/repositories/snapshots</url>	
                </snapshotRepository>	
                <repository>	
                        <id>ossrh</id>	
                        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>	
                </repository>	
        </distributionManagement>	

	<properties>
		<main.basedir>${project.basedir}</main.basedir>
		<maven.jacoco.version>0.8.5</maven.jacoco.version>
		<javafx.version>2.2</javafx.version>
		<maven.sonar.plugin.version>3.7.0.1746</maven.sonar.plugin.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
		<maven.compiler.version>3.8.0</maven.compiler.version>
		<maven.javadoc.version>3.2.0</maven.javadoc.version>
		<maven.surefire.plugin.version>2.22.0</maven.surefire.plugin.version>
		<doclint>none</doclint>
		<!-- Test & Logging -->
		<junit.version>4.12</junit.version>
		<logback.version>1.1.6</logback.version>
		<slf4j.version>1.7.19</slf4j.version>
		<mockito.version>3.4.4</mockito.version>

		<!-- Lombok -->
		<lombok.version>1.18.16</lombok.version>

		<!-- Orika Mapper -->
		<orika.version>1.4.6</orika.version>

		<!-- Spring version -->
		<spring.version>5.0.6.RELEASE</spring.version>

		<!-- Hibernate version -->
		<hibernate.version>5.2.9.Final</hibernate.version>

		<!-- Apache Commons DPC2 version -->
		<apache.commons.dpce.version>2.1.1</apache.commons.dpce.version>

		<!-- Jackson -->
		<jackson.version>2.10.1</jackson.version>
		<jackson.mapper.asl.version>1.7.1</jackson.mapper.asl.version>

		<mosip.core.kernel.version>1.2.0</mosip.core.kernel.version>
		<mosip.kernel.virusscanner.version>1.1.3</mosip.kernel.virusscanner.version>
		<!-- Derby Version -->
		<apache.derby.version>10.13.1.1</apache.derby.version>

		<!-- sourceafis Version -->
		<sourceafis.version>3.4.0</sourceafis.version>

		<!-- openimaj version -->
		<org.openimaj.version>1.3.10</org.openimaj.version>

		<!-- webcam-capture version -->
		<webcam-capture.version>0.3.12</webcam-capture.version>


		<!-- powermock-module-junit4 version -->
		<powermock-module-junit4.version>2.0.0</powermock-module-junit4.version>

		<!--powermock-api-mockito version -->
		<powermock-api-mockito.version>1.7.4</powermock-api-mockito.version>

		<!-- powermock-core version -->
		<powermock-core.version>2.0.7</powermock-core.version>

		<!-- powermock-api-mockito2 version -->
		<powermock-api-mockito2.version>2.0.7</powermock-api-mockito2.version>


		<!-- TSS Version -->
		<tss.version>0.3.0</tss.version>

		<!-- support jaxb in java11 -->
		<javax.activation.version>1.2.0</javax.activation.version>
        <jaxb.api.version>2.3.0</jaxb.api.version>
		<openjfx.version>11.0.2</openjfx.version>
		
		<sonar.coverage.exclusions>
			**/dto/**,
			**/entity/**,
			**/repositories/**,
			**/controller/**,
			**/constants/**,
			**/exception/**,
			**/registrationtest/**,
			**/enums/**,
			**/*StubImpl.java,
			**/builder/**,
			src/main/java/io/mosip/registration/context/**/*,
			src/main/java/io/mosip/registration/preloader/**/*,
			src/main/java/io/mosip/registration/util/common/**/*,
			src/main/java/io/mosip/registration/util/control/**/*,
			src/main/java/io/mosip/registration/scheduler/**/*,
			src/main/java/io/mosip/registration/config/**/*
		</sonar.coverage.exclusions>
	</properties>

	<modules>
		<module>registration-api</module>
		<module>registration-api-stub-impl</module>
		<module>registration-services</module>
		<module>registration-client</module>
		<!--<module>ref-impl/ref-document-scanner</module>
		<module>ref-impl/ref-geoposition-rxtx</module>-->
		<module>registration-test</module>
		
	</modules>

	<dependencyManagement>
		<dependencies>
			<!-- Lombok -->
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
				<scope>compile</scope>
			</dependency>
			<!-- JUnit -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<!-- Mockito -->
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-all</artifactId>
				<version>${mockito.version}</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-core</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>

			<dependency>
				<groupId>ma.glasnost.orika</groupId>
				<artifactId>orika-core</artifactId>
				<version>${orika.version}</version>
			</dependency>

			<!-- Spring ORM -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-orm</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<!-- Hibernate 5.2.9 Final -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<!-- Apache Commons DBCP -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-dbcp2</artifactId>
				<version>${apache.commons.dpce.version}</version>
			</dependency>
			<!-- <dependency> <groupId>io.mosip</groupId> <artifactId>kernel-utils</artifactId> 
				<version>${project.version}</version> </dependency> -->
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-logger-logback</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<!-- <dependency> <groupId>io.mosip</groupId> <artifactId>kernel-security</artifactId> 
				<version>${project.version}</version> </dependency> -->
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-dataaccess-hibernate</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-auditmanager-api</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idvalidator-rid</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>

			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idvalidator-uin</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idvalidator-vid</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idvalidator-prid</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idgenerator-rid</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idgenerator-prid</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-templatemanager-velocity</artifactId>
				<version>${mosip.core.kernel.version}</version>
				<exclusions>
					<exclusion>
						<groupId>dom4j</groupId>
						<artifactId>dom4j</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-qrcodegenerator-zxing</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-pdfgenerator-itext</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.derby</groupId>
				<artifactId>derby</artifactId>
				<version>${apache.derby.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.derby</groupId>
				<artifactId>derbyclient</artifactId>
				<version>${apache.derby.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.derby</groupId>
				<artifactId>derbytools</artifactId>
				<version>${apache.derby.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-web</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-core</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
			<dependency>
				<groupId>org.codehaus.jackson</groupId>
				<artifactId>jackson-mapper-asl</artifactId>
				<version>${jackson.mapper.asl.version}</version>
			</dependency>

			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context-support</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.quartz-scheduler</groupId>
				<artifactId>quartz</artifactId>
				<version>2.2.1</version>
			</dependency>
			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>3.27.0-GA</version>
			</dependency>
			<dependency>
				<groupId>com.cronutils</groupId>
				<artifactId>cron-utils</artifactId>
				<version>8.0.0</version>
			</dependency>

			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-applicanttype-api</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			
			<!-- https://mvnrepository.com/artifact/com.github.microsoft/TSS.Java -->
			<dependency>
				<groupId>com.github.microsoft</groupId>
				<artifactId>TSS.Java</artifactId>
				<version>${tss.version}</version>
			</dependency>

			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-idobjectvalidator</artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<dependency>
				<groupId>io.mosip.kernel</groupId>
				<artifactId>kernel-bioapi-provider </artifactId>
				<version>${mosip.core.kernel.version}</version>
			</dependency>
			<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4 -->
			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-module-junit4</artifactId>
				<version>${powermock-module-junit4.version}</version>
				<scope>test</scope>
			</dependency>

			<!-- https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito -->
			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-api-mockito</artifactId>
				<version>${powermock-api-mockito.version}</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-core</artifactId>
				<version>${powermock-core.version}</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-api-mockito2</artifactId>
				<version>${powermock-api-mockito2.version}</version>
				<scope>test</scope>
			</dependency>
				<!-- jaxb for java 11 -->
			<dependency>
			    <groupId>com.sun.activation</groupId>
			    <artifactId>javax.activation</artifactId>
			    <version>${javax.activation.version}</version>
			</dependency>

			<dependency>
			    <groupId>javax.xml.bind</groupId>
			    <artifactId>jaxb-api</artifactId>
			    <version>${jaxb.api.version}</version>
			</dependency>

			<dependency>
			    <groupId>com.sun.xml.bind</groupId>
			    <artifactId>jaxb-core</artifactId>
			    <version>${jaxb.api.version}</version>
			</dependency>

			<dependency>
			    <groupId>com.sun.xml.bind</groupId>
			    <artifactId>jaxb-impl</artifactId>
			    <version>${jaxb.api.version}</version>
			</dependency>

		<dependency>
		    <groupId>cglib</groupId>
		    <artifactId>cglib-nodep</artifactId>
		    <version>3.2.7</version>
		</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>${maven.surefire.plugin.version}</version>
				<configuration>
					<skipTests>${skipTests}</skipTests>
					<skip>false</skip>
					<argLine>
						${argLine} --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED --illegal-access=permit
					</argLine>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${maven.jacoco.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>report</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven.compiler.version}</version>
				<configuration>
					<source>${maven.compiler.source}</source>
					<target>${maven.compiler.target}</target>
					<fork>true</fork>
					<meminitial>1024m</meminitial>
					<maxmem>2024m</maxmem>
				</configuration>
			</plugin>
	                <plugin>	
                  <groupId>org.apache.maven.plugins</groupId>	
                  <artifactId>maven-javadoc-plugin</artifactId>	
                  <version>3.2.0</version>	
                  <executions>	
                        <execution>	
                          <id>attach-javadocs</id>	
                          <goals>	
                                <goal>jar</goal>	
                          </goals>	
                        </execution>	
                  </executions>	
                  <configuration>	
                     <doclint>none</doclint>	
                  </configuration>	
                        </plugin>


                       <plugin>	
                  <groupId>org.sonatype.plugins</groupId>	
                  <artifactId>nexus-staging-maven-plugin</artifactId>	
                  <version>1.6.7</version>	
                  <extensions>true</extensions>	
                  <configuration>	
                        <serverId>ossrh</serverId>	
                        <nexusUrl>https://oss.sonatype.org/</nexusUrl>	
                        <autoReleaseAfterClose>false</autoReleaseAfterClose>	
                  </configuration>	
             	</plugin>
			<plugin>
                  	<groupId>org.apache.maven.plugins</groupId>	
                  	<artifactId>maven-gpg-plugin</artifactId>	
                 	 <version>1.5</version>	
                  	<executions>	
                        	<execution>	
                          	<id>sign-artifacts</id>	
                          	<phase>verify</phase>	
                          	<goals>	
                                	<goal>sign</goal>	
                          	</goals>	
		          <configuration>	
                		<gpgArguments>	
                    			<arg>--pinentry-mode</arg>	
                    			<arg>loopback</arg>	
                		</gpgArguments>	
            		   </configuration>	
                        </execution>	
                  	</executions>	
               	 </plugin>
		<plugin>	
                  <groupId>pl.project13.maven</groupId>	
                  <artifactId>git-commit-id-plugin</artifactId>	
                  <version>3.0.1</version>	
                  <executions>	
                      <execution>	
                          <id>get-the-git-infos</id>	
                          <goals>	
                              <goal>revision</goal>	
                          </goals>	
                          <phase>validate</phase>	
                      </execution>	
                  </executions>	
                  <configuration>	
                      <generateGitPropertiesFile>true</generateGitPropertiesFile>	
                      <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>	
                      <includeOnlyProperties>	
                          <includeOnlyProperty>^git.build.(time|version)$</includeOnlyProperty>	
                          <includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty>	
                      </includeOnlyProperties>	
                      <commitIdGenerationMode>full</commitIdGenerationMode>	
                      <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>	
                      <!-- <format>json</format> -->	
                  </configuration>	
              </plugin>
		<plugin>	
                  <groupId>org.apache.maven.plugins</groupId>	
                  <artifactId>maven-source-plugin</artifactId>	
                  <version>2.2.1</version>	
                  <executions>	
                        <execution>	
                          <id>attach-sources</id>	
                          <goals>	
                                <goal>jar-no-fork</goal>	
                          </goals>	
                        </execution>	
                  </executions>	
                </plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>sonar</id>
			<properties>
				<sonar.sources>.</sonar.sources>
				<sonar.inclusions>src/main/java/**,src/main/resources/**</sonar.inclusions>
				<sonar.exclusions>${sonar.coverage.exclusions}</sonar.exclusions>
				<sonar.host.url>https://sonarcloud.io</sonar.host.url>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonarsource.scanner.maven</groupId>
						<artifactId>sonar-maven-plugin</artifactId>
						<version>${maven.sonar.plugin.version}</version>
						<executions>
							<execution>
								<phase>verify</phase>
								<goals>
									<goal>sonar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
