﻿<?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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<groupId>es.gob.afirma</groupId>
	<artifactId>afirma-client</artifactId>
	<version>1.9</version>
	<packaging>pom</packaging>
	
	<name>afirma-client</name>
	<description>Cliente @firma</description>
	<url>https://administracionelectronica.gob.es/ctt/clienteafirma</url>
	
	<developers>
		<developer>
			<name>Secretaría General de Administración Digital</name>
			<email>soporte.afirma@correo.gob.es</email>
			<organization>Gobierno de España</organization>
			<organizationUrl>https://administracionelectronica.gob.es</organizationUrl>
		</developer>
	</developers>
	
	<licenses>
		<license>
			<name>GPL-v2.0</name>
			<url>http://www.gnu.org/licenses/gpl-2.0.txt</url>
		</license>
		<license>
			<name>EUPL-v1.1</name>
			<url>http://joinup.ec.europa.eu/system/files/ES/EUPL%20v.1.1%20-%20Licencia.pdf</url>
		</license>
	</licenses>

	<scm>
		<connection>scm:git:https://github.com/ctt-gob-es/clienteafirma.git</connection>
		<developerConnection>scm:git:ssh://github.com/ctt-gob-es/clienteafirma.git</developerConnection>
		<url>https://github.com/ctt-gob-es/clienteafirma</url>
	</scm>

	<properties>
		<clienteafirma.version>1.9</clienteafirma.version>
		<triphase.service.version>2.8.1</triphase.service.version>
		<jmulticard.version>2.0</jmulticard.version>
		<afirma.lib.itext.version>1.6</afirma.lib.itext.version>
		<afirma.lib.others.version>0.0.8</afirma.lib.others.version>
		<spongycastle.version>1.58.0.0</spongycastle.version>
		<afirma.legible.version>1_8_0</afirma.legible.version>
		<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>

		<maven-compiler-plugin.version>3.12.1</maven-compiler-plugin.version>
		<maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
		<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
		<jdk.version>1.7</jdk.version>
		
		<junit.version>4.13.2</junit.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>es.gob.afirma.jmulticard</groupId>
				<artifactId>jmulticard</artifactId>
				<version>${jmulticard.version}</version>
			</dependency>
			
			<dependency>
				<groupId>es.gob.afirma.jmulticard</groupId>
				<artifactId>jmulticard-jse</artifactId>
				<version>${jmulticard.version}</version>
			</dependency>

			<dependency>
				<groupId>es.gob.afirma.jmulticard</groupId>
				<artifactId>jmulticard-jsr268</artifactId>
				<version>${jmulticard.version}</version>
			</dependency>
			
			<dependency>
				<groupId>es.gob.afirma.lib</groupId>
				<artifactId>afirma-lib-itext</artifactId>
				<version>${afirma.lib.itext.version}</version>
			</dependency>

			<dependency>
				<groupId>es.gob.afirma.lib</groupId>
				<artifactId>afirma-lib-jmimemagic</artifactId>
				<version>${afirma.lib.others.version}</version>
			</dependency>
			
			<dependency>
				<groupId>es.gob.afirma.lib</groupId>
				<artifactId>afirma-lib-oro</artifactId>
				<version>${afirma.lib.others.version}</version>
			</dependency>

			<dependency>
				<groupId>es.gob.afirma.lib</groupId>
				<artifactId>afirma-lib-juniversalchardet</artifactId>
				<version>${afirma.lib.others.version}</version>
			</dependency>

			<dependency>
				<groupId>com.madgag.spongycastle</groupId>
				<artifactId>core</artifactId>
				<version>${spongycastle.version}</version>
			</dependency>

			<dependency>
				<groupId>com.madgag.spongycastle</groupId>
				<artifactId>prov</artifactId>
				<version>${spongycastle.version}</version>
			</dependency>
			
			<dependency>
				<groupId>com.madgag.spongycastle</groupId>
				<artifactId>bcpkix-jdk15on</artifactId>
				<version>${spongycastle.version}</version>
			</dependency>
			
			<dependency>
				<groupId>es.uji.crypto.xades</groupId>
				<artifactId>jxades</artifactId>
				<version>0.2.2</version>
			</dependency>
			
			<dependency>
				<groupId>org.apache.santuario</groupId>
				<artifactId>xmlsec</artifactId>
				<version>3.0.5</version>
			</dependency>

			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>

		</dependencies>
	</dependencyManagement>
	
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.3.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven-source-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin.version}</version>
				</plugin>
					
			</plugins>
		</pluginManagement>
	</build>
	
	<profiles>
		<!-- ===== Construccion por defecto ===== -->
		<profile>
			<id>env-dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
      		</activation>
			
			<modules>
				<module>afirma-core</module>
				<module>afirma-core-keystores</module>
				<module>afirma-core-prefs</module>
				<module>afirma-crypto-batch-client</module>
				<module>afirma-crypto-cadestri-client</module>
				<module>afirma-crypto-core-pkcs7</module>
				<module>afirma-crypto-cades</module>
				<module>afirma-crypto-cades-multi</module>
				<module>afirma-crypto-cms</module>
				<module>afirma-crypto-core-pkcs7-tsp</module>
				<module>afirma-crypto-core-xml</module>
				<module>afirma-crypto-odf</module>
				<module>afirma-crypto-padestri-client</module>
				<module>afirma-crypto-pdf-common</module>
				<module>afirma-crypto-pdf</module>
				<module>afirma-crypto-validation</module>
				<module>afirma-crypto-xades</module>
				<module>afirma-crypto-xadestri-client</module>
				<module>afirma-crypto-xmlsignature</module>
				<module>afirma-crypto-ooxml</module>
				<module>afirma-keystores-filters</module>
				<module>afirma-keystores-mozilla</module>
				<module>afirma-keystores-jmulticard-ui</module>
				<module>afirma-ui-utils</module>
				<module>afirma-ui-core-jse</module>
				<module>afirma-ui-core-jse-keystores</module>
				<module>afirma-core-massive</module>
				<module>afirma-ui-simple-configurator-common</module>
				<module>afirma-server-triphase-signer-cache</module>
				<module>afirma-server-triphase-signer-core</module>
				<module>afirma-server-triphase-signer-document</module>
				<module>afirma-simple-plugins</module>
				<module>afirma-simple-plugins-manager</module>
				<module>afirma-simple-plugin-hash</module>
				<module>afirma-simple-plugin-validatecerts</module>
			</modules>
			
      		<build>
       			<plugins>
	
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>${jdk.version}</source>
							<target>${jdk.version}</target>
							<fork>true</fork>
<!--
							<compilerArgs>
								<arg>-Xbootclasspath:${java.home}/lib/jsse.jar${path.separator}${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</arg>
							</compilerArgs>
-->
							<debug>false</debug>
						</configuration>
					</plugin>

				</plugins>
			</build>
	    </profile>

		<!-- ===== Construccion para la generacion de aplicaciones finales y servicios ===== -->
		<profile>
			<id>env-install</id>
			<activation>
				<property>
				  <name>env</name>
				  <value>install</value>
				</property>
			</activation>
			
			<modules>
				<!-- Aplicaciones -->
				<module>afirma-simple</module>
				<module>afirma-ui-simple-configurator</module>
				
				<!-- Servicios -->
				<module>afirma-server-triphase-signer</module>
				<module>afirma-signature-retriever</module>
				<module>afirma-signature-storage</module>
				
			</modules>
			
			<!-- Las instrucciones de construccion particulares estan dentro de cada modulo.
			     Aqui se agregan unas genericas por si fuese necesario -->
			<build>
       			<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>${jdk.version}</source>
							<target>${jdk.version}</target>
							<fork>true</fork>
							<debug>false</debug>
						</configuration>
					</plugin>
				</plugins>
			</build>
			
		</profile>
		
		<!-- ===== Construccion para informe sonar ===== -->
		<profile>
			<id>sonar</id>
			
			<modules>
				<module>afirma-core</module>
				<module>afirma-core-keystores</module>
				<module>afirma-core-prefs</module>
				<module>afirma-crypto-batch-client</module>
				<module>afirma-crypto-cadestri-client</module>
				<module>afirma-crypto-core-pkcs7</module>
				<module>afirma-crypto-cades</module>
				<module>afirma-crypto-cades-multi</module>
				<module>afirma-crypto-cms</module>
				<module>afirma-crypto-core-xml</module>
				<module>afirma-crypto-odf</module>
				<module>afirma-crypto-padestri-client</module>
				<module>afirma-crypto-pdf-common</module>
				<module>afirma-crypto-pdf</module>
				<module>afirma-crypto-validation</module>
				<module>afirma-crypto-xades</module>
				<module>afirma-crypto-xadestri-client</module>
				<module>afirma-crypto-xmlsignature</module>
				<module>afirma-crypto-ooxml</module>
				<module>afirma-keystores-filters</module>
				<module>afirma-keystores-mozilla</module>
				<module>afirma-keystores-jmulticard-ui</module>
				<module>afirma-ui-utils</module>
				<module>afirma-ui-core-jse</module>
				<module>afirma-ui-core-jse-keystores</module>
				<module>afirma-core-massive</module>
				<module>afirma-ui-simple-configurator-common</module>
				<module>afirma-server-triphase-signer-cache</module>
				<module>afirma-server-triphase-signer-core</module>
				<module>afirma-server-triphase-signer-document</module>
				<module>afirma-simple-plugins</module>
				<module>afirma-simple-plugins-manager</module>
				<module>afirma-simple-plugin-hash</module>
				<module>afirma-simple-plugin-validatecerts</module>
				
				<!-- Aplicaciones -->
				<module>afirma-simple</module>
				<module>afirma-ui-simple-configurator</module>
				
				<!-- Servicios -->
				<module>afirma-server-triphase-signer</module>
				<module>afirma-signature-retriever</module>
				<module>afirma-signature-storage</module>
			</modules>
			
      		<build>
       			<plugins>
	
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>${jdk.version}</source>
							<target>${jdk.version}</target>
							<fork>true</fork>
<!--
							<compilerArgs>
								<arg>-Xbootclasspath:${java.home}/lib/jsse.jar${path.separator}${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</arg>
							</compilerArgs>
-->
							<debug>false</debug>
						</configuration>
					</plugin>

				</plugins>
			</build>
	    </profile>
		
		<!-- ===== Construccion para despliegue en el repositorio de artefactos del MINHAP ===== -->
		<profile>
			<id>minhap</id>
			
			<modules>
				<module>afirma-core</module>
				<module>afirma-core-keystores</module>
				<module>afirma-core-prefs</module>
				<module>afirma-crypto-batch-client</module>
				<module>afirma-crypto-cadestri-client</module>
				<module>afirma-crypto-cipher</module>
				<module>afirma-crypto-core-pkcs7</module>
				<module>afirma-crypto-cades</module>
				<module>afirma-crypto-cades-multi</module>
				<module>afirma-crypto-cms</module>
				<module>afirma-crypto-core-pkcs7-tsp</module>
				<module>afirma-crypto-core-xml</module>
				<module>afirma-crypto-odf</module>
				<module>afirma-crypto-padestri-client</module>
				<module>afirma-crypto-pdf-common</module>
				<module>afirma-crypto-pdf</module>
				<module>afirma-crypto-validation</module>
				<module>afirma-crypto-xades</module>
				<module>afirma-crypto-xadestri-client</module>
				<module>afirma-crypto-xmlsignature</module>
				<module>afirma-crypto-ooxml</module>
				<module>afirma-crypto-jarverifier</module>
				<module>afirma-keystores-filters</module>
				<module>afirma-keystores-mozilla</module>
				<module>afirma-keystores-jmulticard-ui</module>
				<module>afirma-ui-utils</module>
				<module>afirma-ui-core-jse</module>
				<module>afirma-ui-core-jse-keystores</module>
				<module>afirma-core-massive</module>
				<module>afirma-ui-simple-configurator-common</module>
				<module>afirma-server-triphase-signer-cache</module>
				<module>afirma-server-triphase-signer-core</module>
				<module>afirma-server-triphase-signer-document</module>
				<module>afirma-simple-plugins</module>
				<module>afirma-simple-plugins-manager</module>
				<module>afirma-simple-plugin-hash</module>
				<module>afirma-simple-plugin-validatecerts</module>
				
				<!-- Servicios -->
				<module>afirma-server-triphase-signer</module>
				<module>afirma-signature-retriever</module>
				<module>afirma-signature-storage</module>
			</modules>
			
			<distributionManagement>
				<repository>
					<id>MINHAP-central</id>
					<name>artefactos.scae.redsara.es-releases</name>
					<url>https://artefactos.scae.redsara.es/artifactory/AFIRMA-release/</url>
				</repository>
				<snapshotRepository>
					<id>MINHAP-snapshots</id>
					<name>artefactos.scae.redsara.es-snapshots</name>
					<url>https://artefactos.scae.redsara.es/artifactory/AFIRMA-snapshot/</url>
				</snapshotRepository>
			</distributionManagement>
			
      		<build>
       			<plugins>
	
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>${jdk.version}</source>
							<target>${jdk.version}</target>
							<fork>true</fork>
							<compilerArgs>
								<arg>-Xbootclasspath:${java.home}/lib/jsse.jar${path.separator}${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</arg>
							</compilerArgs>
							<debug>false</debug>
						</configuration>
					</plugin>

				</plugins>
			</build>
	    </profile>
		
		
		<!-- ===== Construccion para despliegue en el repositorio de artefactos de Maven ===== -->
		<profile>
			<id>env-deploy</id>
			<activation>
				<property>
				  <name>env</name>
				  <value>deploy</value>
				</property>
			</activation>
			
			<modules>
				<module>afirma-core</module>
				<module>afirma-core-keystores</module>
				<module>afirma-core-prefs</module>
				<module>afirma-crypto-batch-client</module>
				<module>afirma-crypto-cadestri-client</module>
				<module>afirma-crypto-core-pkcs7</module>
				<module>afirma-crypto-cades</module>
				<module>afirma-crypto-cades-multi</module>
				<module>afirma-crypto-cms</module>
				<module>afirma-crypto-core-pkcs7-tsp</module>
				<module>afirma-crypto-core-xml</module>
				<module>afirma-crypto-odf</module>
				<module>afirma-crypto-padestri-client</module>
				<module>afirma-crypto-pdf-common</module>
				<module>afirma-crypto-pdf</module>
				<module>afirma-crypto-validation</module>
				<module>afirma-crypto-xades</module>
				<module>afirma-crypto-xadestri-client</module>
				<module>afirma-crypto-xmlsignature</module>
				<module>afirma-crypto-ooxml</module>
				<module>afirma-keystores-filters</module>
				<module>afirma-keystores-mozilla</module>
				<module>afirma-keystores-jmulticard-ui</module>
				<module>afirma-ui-utils</module>
				<module>afirma-ui-core-jse</module>
				<module>afirma-ui-core-jse-keystores</module>
				<module>afirma-core-massive</module>
				<module>afirma-ui-simple-configurator-common</module>
				<module>afirma-server-triphase-signer-cache</module>
				<module>afirma-server-triphase-signer-core</module>
				<module>afirma-server-triphase-signer-document</module>
				<module>afirma-simple-plugins</module>
				<module>afirma-simple-plugins-manager</module>
				<module>afirma-simple-plugin-hash</module>
				<module>afirma-simple-plugin-validatecerts</module>
				
				<!-- Aplicaciones -->
				<module>afirma-simple</module>
				<module>afirma-ui-simple-configurator</module>
				
				<!-- Servicios -->
				<module>afirma-server-triphase-signer</module>
				<module>afirma-signature-retriever</module>
				<module>afirma-signature-storage</module>
			</modules>
			
			<build>
				<plugins>

					<plugin>
					  <groupId>org.apache.maven.plugins</groupId>
					  <artifactId>maven-source-plugin</artifactId>
					  <executions>
						<execution>
						  <id>attach-sources</id>
						  <goals>
							<goal>jar-no-fork</goal>
						  </goals>
						</execution>
					  </executions>
					</plugin>
					
					<plugin>
					  <groupId>org.apache.maven.plugins</groupId>
					  <artifactId>maven-javadoc-plugin</artifactId>
					  <executions>
						<execution>
						  <id>attach-javadocs</id>
						  <goals>
							<goal>jar</goal>
						  </goals>
						</execution>
					  </executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<configuration>
							<source>${jdk.version}</source>
							<target>${jdk.version}</target>
							<fork>true</fork>
							<compilerArgs>
								<arg>-Xbootclasspath:${java.home}/lib/jsse.jar${path.separator}${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</arg>
							</compilerArgs>
							<debug>false</debug>
						</configuration>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-release-plugin</artifactId>
						<version>2.5.3</version>
						<configuration>
							<tagNameFormat>${project.name}_@{project.version}</tagNameFormat>
						</configuration>
					</plugin>

					<plugin>
					  <groupId>org.apache.maven.plugins</groupId>
					  <artifactId>maven-gpg-plugin</artifactId>
					  <version>3.2.0</version>
					  <executions>
						<execution>
						  <id>sign-artifacts</id>
						  <phase>verify</phase>
						  <goals>
							<goal>sign</goal>
						  </goals>
						</execution>
					  </executions>
					</plugin>
					
					<plugin>
					  <groupId>org.sonatype.central</groupId>
					  <artifactId>central-publishing-maven-plugin</artifactId>
					  <version>0.8.0</version>
					  <extensions>true</extensions>
					  <configuration>
						<publishingServerId>central</publishingServerId>
					  </configuration>
					</plugin>

				</plugins>
			</build>
		</profile>
	</profiles>
	
</project>