<?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.1.5.5-P3</version>
	</parent>

	<groupId>io.mosip.registrationprocessor</groupId>
	<artifactId>registration-processor</artifactId>
	<version>1.1.5.5-P3</version>
	<packaging>pom</packaging>

	<name>registration-processor</name>
	<description>Parent project of MOSIP Registration processor</description>

	<properties>
		<doclint>none</doclint>
		<sonar.skip>true</sonar.skip>
		<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.jar.plugin.version>3.0.2</maven.jar.plugin.version>
		<maven.war.plugin.version>3.1.0</maven.war.plugin.version>
		<maven.surefire.plugin.version>3.0.0-M5</maven.surefire.plugin.version>
		<maven.jacoco.plugin.version>0.8.1</maven.jacoco.plugin.version>
		<maven.sonar.plugin.version>3.7.0.1746</maven.sonar.plugin.version>
		<maven.javadoc.version>3.2.0</maven.javadoc.version>

		<!-- Core -->
		<spring-framework.version>5.0.6.RELEASE</spring-framework.version>
		<spring.version>5.0.4.RELEASE</spring.version>
		<spring.boot.version>2.0.2.RELEASE</spring.boot.version>
		<spring.data.version>2.0.9.RELEASE</spring.data.version>
		<spring-cloud-config.version>2.0.0.RELEASE</spring-cloud-config.version>

		<spring.batch.version>4.0.1.RELEASE</spring.batch.version>
		<spring-cloud-config.version>2.0.0.RELEASE</spring-cloud-config.version>

		<!-- Miscellaneous -->
		<javax.el-api.version>3.0.0</javax.el-api.version>
		<javax.validation-api.version>2.0.1.Final</javax.validation-api.version>
		<jackson.version>2.9.5</jackson.version>
		<hibernate.validator.version>6.0.12.Final</hibernate.validator.version>
		<modelmapper.version>2.1.1</modelmapper.version>
		<jcl.to.slf4j.version>1.7.25</jcl.to.slf4j.version>
		<apache.httpcomponents.version>4.5.6</apache.httpcomponents.version>

		<!-- Swagger -->
		<swagger.version>2.9.2</swagger.version>

		<!-- Data Access -->
		<eclipselink.version>2.5.0</eclipselink.version>
		<mysql.connector.version>5.1.46</mysql.connector.version>
		<h2.version>1.4.195</h2.version>
		<postgresql.version>42.2.2</postgresql.version>

		<!-- Lombok -->
		<lombok.version>1.18.8</lombok.version>

		<!-- For Cache -->
		<ignite.version>2.3.0</ignite.version>

		<!--For Security -->
		<bouncycastle.version>1.60</bouncycastle.version>
		<commons.pool>1.6</commons.pool>

		<!-- Support tools & utilities -->
		<commons-math3>3.6.1</commons-math3>
		<commons-lang3>3.7</commons-lang3>
		<commons-io>2.6</commons-io>
		<commons-codec>1.10</commons-codec>
		<commons.beanutils.version>1.9.2</commons.beanutils.version>
		<commons.configuration2.version>2.2</commons.configuration2.version>
		<commons.io.version>2.6</commons.io.version>
		<velocity.version>1.7</velocity.version>
		<velocity.tools.version>2.0</velocity.tools.version>

		<!-- Test & Logging -->
		<junit.version>4.12</junit.version>
		<logback.version>1.2.3</logback.version>
		<slf4j.version>1.7.19</slf4j.version>
		<mockito.version>3.4.4</mockito.version>
		<powermock.module.junit4.version>2.0.7</powermock.module.junit4.version>
		<powermock.api.mockito.version>2.0.7</powermock.api.mockito.version>
		<awaitility.version>3.1.0</awaitility.version>
		<jsonsimple.version>1.1.1</jsonsimple.version>
		<commons.codec.version>1.9</commons.codec.version>
		<!-- DFS adapter -->
		<aws.javasdk.version>1.11.368</aws.javasdk.version>
		<s3mock.version>0.2.4</s3mock.version>

		<!-- Vert.x -->
		<vertx.version>3.9.1</vertx.version>
		<camel.vertx.version>2.23.0</camel.vertx.version>
		<hazelcast.kubernetes.version>1.0.0</hazelcast.kubernetes.version>
		<!-- json-simple -->
		<jsonsimple.version>1.1.1</jsonsimple.version>

       <!-- joda-time -->
		<jodatime.version>2.8.1</jodatime.version>

      <!-- jsch.version -->
		<jsch.version>0.1.55</jsch.version>

		<!-- local -->
		<registration.status.service.version>1.1.5.5-P1</registration.status.service.version>
		<registration.processor.core.version>1.1.5.5-P3</registration.processor.core.version>
		<packet.manager.version>1.1.5.5</packet.manager.version>
		<registration.processor.rest.client.version>1.1.5.5-P1</registration.processor.rest.client.version>
		<packet.info.storage.service.version>1.1.5.5</packet.info.storage.service.version>
		<packet.bio.dedupe.service.impl.version>1.1.5.5</packet.bio.dedupe.service.impl.version>
		<registration.processor.message.sender.version>1.1.5.5</registration.processor.message.sender.version>

		<!-- Kernel -->
		<kernel.core.version>1.1.5.5</kernel.core.version>
		<kernel.dataaccess.hibernate.version>1.1.5</kernel.dataaccess.hibernate.version>
		<kernel.templatemanager.velocity.version>1.1.5</kernel.templatemanager.velocity.version>
		<kernel.idvalidator.uin.version>1.1.5</kernel.idvalidator.uin.version>
		<kernel.idvalidator.rid.version>1.1.5</kernel.idvalidator.rid.version>
		<kernel.clamav.version>1.1.3</kernel.clamav.version>
		<kernel.cbeffutil.version>1.1.5</kernel.cbeffutil.version>
        <kernel.bioapi.provider.version>1.1.5</kernel.bioapi.provider.version>
        <kernel.auth.adapter.version>1.1.5</kernel.auth.adapter.version>
        <kernel.pdfgenerator.itext.version>1.1.5</kernel.pdfgenerator.itext.version>
		<kernel.qrcodegenerator.zxing.version>1.1.5</kernel.qrcodegenerator.zxing.version>
		<kernel.logger.logback.version>1.1.5</kernel.logger.logback.version>
		<kernel.idvalidator.vid.version>1.1.5</kernel.idvalidator.vid.version>
		<object.store.khazana.version>1.1.5.4</object.store.khazana.version>
		<kernel.biometrics.api.version>1.1.5</kernel.biometrics.api.version>
		<kernel-keymanager-service.version>1.1.5</kernel-keymanager-service.version>
			<sonar.coverage.exclusions>**/dto/**,
			**/exception/*Exception.java,
			**/config/*Config.java,
			**/handler/*ExceptionHandler.java,
			**/**/*Application.java,
			**/utilities/*.java,
			**/validator/*Validator.java,
			**/utils/*.java,
			**/util/*.java,
			**/code/*.java,
			**/entity/*.java,
			**/config/*.java,

			**/core/code/*.java,
			**/packet/storage/entity/*.java,
			**/manager/exception/systemexception/*.java,
			**/registration/processor/rest/client/*.java,
			**/registration/processor/rest/client/audit/builder/*.java,

			**/registration/processor/packet/receiver/*.java,
			**/registration/processor/packet/receiver/exception/systemexception/*.java,
			**/registration/processor/failoverstage/*.java,
			**/registration/processor/stages/*.java,
			**/registration/processor/retry/verticle/*.java,
			**/registration/processor/retry/verticle/stages/*.java,
			**/registration/processor/packet/decrypter/job/stage/*.java,
			**/registration/processor/packet/decryptor/job/exception/constant/*.java,

			**/registration/processor/virus/scanner/job/exceptions/*.java,


			**/registration/processor/stages/app/*.java,
			**/registration/processor/camel/bridge/processor/*.java,
			**/registration/processor/core/constant/*.java,
			**/registration/processor/core/packet/dto/demographicinfo/*.java,
			**/registration/processor/core/packet/dto/demographicinfo/identify/*.java,
			**/registration/processor/core/packet/dto/regcentermachine/*.java,

			**/registration/processor/quality/check/client/*.java,
			**/registration/processor/quality/check/code/*.java,
			**/registration/processor/quality/check/entity/*.java,
			**/registration/processor/quality/check/exception/*.java,
			**/registration/processor/quality/check/*.java,
			**/registration/processor/message/sender/*.java,
			**/registration/processor/message/sender/utility/*.java,
			**/registration/processor/core/logger/*.java,
			**/registration/processor/core/notification/template/mapping/*.java,
			**/registration/processor/bio/dedupe/service/*.java,
			**/registration/processor/bio/dedupe/exception/*.java,

			**/registration/processor/packet/storage/storage/*.java,
			**/registration/processor/packet/storage/exception/*.java,
			**/registration/processor/status/repositary/*.java,
			**/registration/processor/status/entity/*.java,
			**/registration/processor/virus/scanner/job/*.java,


			**/registration/processor/packet/uploader/*.java,
			**/registration/processor/biodedupe/*.java,


			**/registration/processor/abis/config/*.java,
			**/registration/processor/abis/controller/*.java,
			**/registration/processor/abis/exception/*.java,
			**/registration/processor/abis/messagequeue/*.java,
			**/registration/processor/abis/service/*.java,
			**/registration/processor/abis/service/impl/*.java,


			**/registration/processor/abis/handler/*.java,
			**/registration/processor/abis/handler/config/*.java,

            **/registration/processor/packet/service/**/*.java,
			**/registration/processor/packet/upload/**/*.java,

			**/registration/processor/status/code/*.java,
			**/registration/processor/rest/client/config/RestConfigBean.java,
			**/registration/processor/bio/dedupe/api/BioDedupeApiApp.java,
			**/registration/processor/manual/verification/response/builder/*.java,
			**/registration/processor/manual/verification/config/*.java,
			**/registration/processor/stages/config/OSIConfigBean.java,
			**/registration/processor/stages/demo/dedupe/StatusMessage.java,
			**/registration/processor/stages/demo/dedupe/DemodedupeStage.java,
			**/registration/processor/stages/demo/dedupe/BiometricValidation.java,
			**/registration/processor/core/exception/ExceptionJSONInfo.java,
			**/registration/processor/core/config/CoreConfigBean.java,
			**/registration/processor/core/kernel/beans/KernelConfig.java,
			**/registration/processor/core/abstractverticle/MosipVerticleAPIManager.java,
			**/registration/processor/core/http/*.java,
			**/registration/processor/core/queue/factory/*.java,
			**/registration/processor/core/queue/impl/*.java,
			**/registration/processor/message/sender/config/MsgNotificationBeanCofig.java,
			**/registration/processor/print/exception/QueueConnectionNotFound.java,
			**/registration/processor/stages/demodedupe/StatusMessage.java,
			**/registration/processor/print/service/utility/UINCardConstant.java,
			**/registration/processor/stages/demodedupe/BiometricValidation.java,
			**/registration/processor/camel/bridge/MosipBridgeFactory.java,
			**/registration/processor/manual/verification/stage/ManualVerificationStage.java,
			**/registration/processor/packet/receiver/builder/PacketReceiverResponseBuilder.java,
			**/registration/processor/packet/receiver/stage/PacketReceiverStage.java,
			**/registration/processor/camel/bridge/**/*.java,
			**/registration/processor/stages/connector/stage/**/*.java,
			**/registration/processor/stages/demodedupe/DemoDedupeStage.java,

			**/registration/processor/packet/storage/mapper/PacketInfoMapper.java,
			**/registration/processor/packet/storage/dao/PacketInfoDao.java,
			**/registration/processor/packet/uploader/constants/*.java,
			**/registration/processor/packet/manager/constant/*.java,
			**/registration/processor/print/exception/PrintGlobalExceptionHandler.java,
			**/registration/processor/packet/receiver/constants/*.java,
			**/registration/processor/print/service/exception/*.java,
			**/registration/processor/print/exception/*.java,
			**/registration/processor/packet/uploader/constants/*.java,
			**/registration/processor/packet/uploader/decryptor/*.java,
			**/registration/processor/core/abstractverticle/MosipRouter.java,
			**/registration/processor/packet/uploader/decryptor/*.java,

			**/registration/processor/print/service/impl/PrintPostServiceImpl.java,

			**/registration/processor/message/sender/constants/*.java,
			**/registration/processor/core/abstractverticle/BaseHealthCheckModel.java,
			**/registration/processor/core/**/TokenValidator.java,
			**/registration/processor/core/abstractverticle/StageHealthCheckHandler.java,
			**/registration/processor/core/abstractverticle/MessageDTO.java,
			**/registration/processor/request/handler/**/*.java
		</sonar.coverage.exclusions>
		<sonar.cpd.exclusions>**/dto/**,**/entity/**,**/config/**,**/handler/**,**/utilities/**,
			**/validator/**, **/utils/**,**/util/**,**/code/**</sonar.cpd.exclusions>
			<doclint>none</doclint>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>3.4.4</version>
				<scope>test</scope>
			</dependency>
			<!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy -->
			<dependency>
			    <groupId>net.bytebuddy</groupId>
			    <artifactId>byte-buddy</artifactId>
			    <version>1.10.13</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${spring.boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
			    <groupId>org.projectlombok</groupId>
			    <artifactId>lombok</artifactId>
			    <version>1.18.8</version>
			    <scope>provided</scope>
			</dependency>
			<dependency>
			    <groupId>org.powermock</groupId>
			    <artifactId>powermock-core</artifactId>
			    <version>2.0.7</version>
			    <scope>test</scope>
			</dependency>					
			<dependency>
		    <groupId>javax.xml.bind</groupId>
		    <artifactId>jaxb-api</artifactId>
		    <version>2.3.1</version>
		</dependency>
		<dependency>
		    <groupId>org.javassist</groupId>
		    <artifactId>javassist</artifactId>
		    <version>3.27.0-GA</version>
		</dependency>
		</dependencies>
	</dependencyManagement>

	<modules>
		<module>registration-processor-core</module>
		<!--<module>registration-processor-rest-client</module>-->
		<!-- <module>registration-processor-packet-manager</module> -->
		<module>registration-processor-common-camel-bridge</module>
		<!-- <module>registration-processor-bio-dedupe-service-impl</module>-->
		<!--<module>registration-processor-info-storage-service</module> -->
		<!--<module>registration-processor-registration-status-service-impl</module>-->
        <!-- <module>registration-processor-quality-checker</module> -->
		<!-- <module>registration-processor-message-sender-impl</module> -->
		<module>init</module>
		<module>pre-processor</module>
		<module>core-processor</module>
		<module>post-processor</module>
	</modules>

<!--	<profiles>
		<profile>
			<id>LOCAL</id>
			<properties>
				<sonar.host.url>
					http://104.215.158.154:9000
				</sonar.host.url>
				<sonar.login>90903e93f9e6f0e73b5352382e7c51e0a18bfa80</sonar.login>
				<sonar.test.exclusions>**/test/**/*.*</sonar.test.exclusions>
				<sonar.jacoco.reportPaths>
					target/jacoco.exec
				</sonar.jacoco.reportPaths>
			</properties>
		</profile>
		<profile>
			<id>DEV</id>
			<properties>
				<sonar.host.url>
					http://104.215.158.154:9000
				</sonar.host.url>
				<sonar.login>90903e93f9e6f0e73b5352382e7c51e0a18bfa80</sonar.login>
				<sonar.ws.timeout>90000</sonar.ws.timeout>
				<sonar.test.exclusions>**/test/**/*.*</sonar.test.exclusions>
				<sonar.jacoco.reportPaths>
					target/jacoco.exec
				</sonar.jacoco.reportPaths>
			</properties>
		</profile>
	</profiles>
-->

	<build>
			<plugins>
				<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>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven.jar.plugin.version}</version>
					<configuration>
						<archive>
							<manifest>
								<addClasspath>true</addClasspath>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
							<manifestEntries>
								<Project-Name>${project.name}</Project-Name>
								<Project-Version>${project.version}</Project-Version>
								<Built-By>${user.name}</Built-By>
								<Built-OS>${os.name}</Built-OS>
								<Local-Build-Date>${maven.build.timestamp}</Local-Build-Date>
								<Build-Number>${env.BUILD_NUMBER}</Build-Number>
								<Build-Date>${env.BUILD_ID}</Build-Date>
								<Build-URL>${env.BUILD_URL}</Build-URL>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>${maven.war.plugin.version}</version>
					<configuration>
						<archive>
							<manifest>
								<addClasspath>true</addClasspath>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
							<manifestEntries>
								<Project-Name>${project.name}</Project-Name>
								<Project-Version>${project.version}</Project-Version>
								<Built-By>${user.name}</Built-By>
								<Built-OS>${os.name}</Built-OS>
								<Local-Build-Date>${maven.build.timestamp}</Local-Build-Date>
								<Build-Number>${env.BUILD_NUMBER}</Build-Number>
								<Build-Date>${env.BUILD_ID}</Build-Date>
								<Build-URL>${env.BUILD_URL}</Build-URL>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven.surefire.plugin.version}</version>
					<configuration>
						<skip>false</skip>
						<useFile>false</useFile>
						<excludes>
							<exclude>**/*IntegrationTest.java</exclude>
						</excludes>
						<argLine>
							--illegal-access=permit
						</argLine>						
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${maven.jacoco.plugin.version}</version>
				</plugin>
				<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>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<configuration>
					<append>true</append>
				</configuration>
				<executions>
					<execution>
						<id>agent-for-ut</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>agent-for-it</id>
						<goals>
							<goal>prepare-agent-integration</goal>
						</goals>
					</execution>
					<execution>
						<id>jacoco-site</id>
						<phase>verify</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven.javadoc.version}</version>
				<configuration>
					<aggregate>true</aggregate>
					<doclint>none</doclint>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>