<?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>de.alpharogroup</groupId>
		<artifactId>mvn-java-parent</artifactId>
		<version>4.1</version>
		<relativePath></relativePath>
	</parent>

	<artifactId>mystic-crypt</artifactId>
	<version>5.6</version>
	<packaging>pom</packaging>
	<inceptionYear>2015</inceptionYear>

	<name>${project.artifactId}</name>

	<description>
		The target of this parent project is to make encryption and decryption as simple as possible.
	</description>

	<url>https://github.com/astrapi69/mystic-crypt</url>

	<properties>
		<!-- MYSTIC-CRYPT versions -->
		<mystic-crypt.version>${project.version}</mystic-crypt.version>
		<crypt-api.version>${mystic-crypt.version}</crypt-api.version>
		<crypt-data.version>${mystic-crypt.version}</crypt-data.version>
		<!-- NEW EXTENSIONS LIB versions -->
		<file-worker.version>4.23</file-worker.version>
		<jcommons-lang.version>4.35</jcommons-lang.version>
		<test-objects.version>4.28</test-objects.version>
		<silly-collections.version>4.34.1</silly-collections.version>
		<vintage-time.version>4.12</vintage-time.version>
		<!-- RESOURCEBUNDLE-CORE versions -->
		<resourcebundle-inspector.version>3</resourcebundle-inspector.version>
		<!-- JOBJECT-EXTENSIONS versions -->
		<jobject-extensions.version>1.12</jobject-extensions.version>
		<jobject-core.version>${jobject-extensions.version}</jobject-core.version>
		<jobject-evaluate.version>${jobject-extensions.version}</jobject-evaluate.version>
		<!-- RANDOMIZER versions -->
		<randomizer.version>5.4</randomizer.version>
		<randomizer-core.version>${randomizer.version}</randomizer-core.version>
		<randomizer-api.version>${randomizer.version}</randomizer-api.version>
		<randomizer-data.version>${randomizer.version}</randomizer-data.version>
		<!-- EXTERNAL LIBRARIES versions -->
		<commons-codec.version>1.11</commons-codec.version>
		<bouncycastle.version>1.60</bouncycastle.version>
		<!-- GUAVA version -->
		<guava.version>26.0-jre</guava.version>
		<!-- MEANBEAN version -->
		<meanbean.version>2.0.3</meanbean.version>		
		<!-- RANDOM-BEANS version -->
		<random-beans.version>3.7.0</random-beans.version>
	</properties>

	<modules>
		<module>crypt-api</module>
		<module>crypt-core</module>
		<module>crypt-data</module>
	</modules>

	<developers>

		<developer>
			<id>astrapi69</id>
			<name>Asterios Raptis</name>
			<roles>
				<role>Project manager</role>
				<role>Developer</role>
			</roles>
			<timezone>Berlin</timezone>
		</developer>

	</developers>

	<scm>
		<connection>scm:git:git:@github.com:astrapi69/mystic-crypt.git</connection>
		<developerConnection>scm:git:git@github.com:astrapi69/mystic-crypt.git</developerConnection>
		<url>git:@github.com:astrapi69/mystic-crypt.git</url>
	</scm>

	<issueManagement>
		<system>github.com</system>
		<url>https://github.com/astrapi69/mystic-crypt/issues</url>
	</issueManagement>

	<dependencyManagement>

		<dependencies>
			<!-- RESOURCEBUNDLE-CORE DEPENDENCIES -->
			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>resourcebundle-inspector</artifactId>
				<version>${resourcebundle-inspector.version}</version>
			</dependency>

			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>${commons-codec.version}</version>
			</dependency>
			<!-- NEW EXTENSIONS LIB DEPENDENCIES -->
			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>silly-collections</artifactId>
				<version>${silly-collections.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>jcommons-lang</artifactId>
				<version>${jcommons-lang.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>test-objects</artifactId>
				<version>${test-objects.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>file-worker</artifactId>
				<version>${file-worker.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>vintage-time</artifactId>
				<version>${vintage-time.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>crypt-api</artifactId>
				<version>${crypt-api.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>crypt-data</artifactId>
				<version>${crypt-data.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>randomizer-core</artifactId>
				<version>${randomizer-core.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>randomizer-api</artifactId>
				<version>${randomizer-api.version}</version>
			</dependency>

			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>randomizer-data</artifactId>
				<version>${randomizer-data.version}</version>
			</dependency>

			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcprov-jdk15on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>

			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcprov-ext-jdk15on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>

			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcpkix-jdk15on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<!-- GUAVA DEPENDENCY -->
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
			</dependency>
			<!-- JOBJECT-EXTENSIONS DEPENDENCIES -->
			<!-- JOBJECT-CORE DEPENDENCY -->
			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>jobject-core</artifactId>
				<version>${jobject-core.version}</version>
			</dependency>
			<!-- MEANBEAN DEPENDENCY -->
			<dependency>
				<groupId>org.meanbean</groupId>
				<artifactId>meanbean</artifactId>
				<version>${meanbean.version}</version>
			</dependency>
			<!-- RANDOM-BEANS DEPENDENCY -->
			<dependency>
				<groupId>io.github.benas</groupId>
				<artifactId>random-beans</artifactId>
				<version>${random-beans.version}</version>
			</dependency>
			<!-- JOBJECT-EVALUATE DEPENDENCY -->
			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>jobject-evaluate</artifactId>
				<version>${jobject-evaluate.version}</version>
			</dependency>

		</dependencies>

	</dependencyManagement>
	
	<dependencies>
			<!-- JOBJECT-EVALUATE DEPENDENCY -->
			<dependency>
				<groupId>de.alpharogroup</groupId>
				<artifactId>jobject-evaluate</artifactId>
				<scope>test</scope>
			</dependency>
	
	</dependencies>

	<build>

		<resources>

			<resource>
				<filtering>false</filtering>
				<directory>src/main/java</directory>
				<includes>
					<include>**</include>
				</includes>
				<excludes>
					<exclude>**/*.java</exclude>
					<exclude>**/package.html</exclude>
				</excludes>
			</resource>

			<resource>
				<filtering>false</filtering>
				<directory>src/main/resources</directory>
			</resource>

			<resource>
				<filtering>false</filtering>
				<directory>src/site</directory>
			</resource>

		</resources>

		<testResources>

			<testResource>
				<filtering>false</filtering>
				<directory>src/test/java</directory>
				<includes>
					<include>**</include>
				</includes>
				<excludes>
					<exclude>**/*.java</exclude>
					<exclude>**/package.html</exclude>
				</excludes>
			</testResource>
			<testResource>
				<filtering>false</filtering>
				<directory>src/test/resources</directory>
			</testResource>

		</testResources>

		<pluginManagement>

			<plugins>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>cobertura-maven-plugin</artifactId>
					<configuration>
						<instrumentation>
							<excludes>
								<!-- abstract classes -->
								<exclude>de/alpharogroup/crypto/core/**/*.class</exclude>
								<!-- enums -->
								<exclude>de/alpharogroup/crypto/algorithm/**/*.class</exclude>
								<exclude>de/alpharogroup/crypto/mechanisms/**/*.class</exclude>
								<exclude>de/alpharogroup/crypto/modes/**/*.class</exclude>
								<exclude>de/alpharogroup/crypto/padding/**/*.class</exclude>
								<exclude>de/alpharogroup/crypto/provider/**/*.class</exclude>
								<exclude>de/alpharogroup/crypto/pw/**/*.class</exclude>
								<!-- beans -->
								<!-- constant classes with only constants -->
								<!-- deprecated classes -->
								<!-- interfaces -->
								<exclude>de/alpharogroup/crypto/api/**/*.class</exclude>
								<!-- exceptions -->
								<!-- experimental classes -->
								<!-- explicit abstract classes -->
								<!-- explicit annotations -->
								<!-- explicit bean classes -->
								<!-- explicit deprecated classes -->
								<!-- explicit interfaces -->
								<exclude>de/alpharogroup/crypto/obfuscation/api/Obfuscatable.class</exclude>
								<!-- explicit constant classes with only constants -->
								<!-- explicit delegation classes -->
							</excludes>
						</instrumentation>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>clean</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

			</plugins>

		</pluginManagement>

		<plugins>

			<plugin>
				<inherited>true</inherited>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>

			<plugin>
				<inherited>true</inherited>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>

			<plugin>
				<inherited>true</inherited>
				<artifactId>maven-eclipse-plugin</artifactId>
			</plugin>

		</plugins>

	</build>

</project>
