<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.eclipse.basyx</groupId>
		<artifactId>basyx.components.docker</artifactId>
		<version>1.0.2</version>
    </parent>
	
	<artifactId>basyx.components.registry</artifactId>
	<name>BaSyx Registry</name>
	<version>1.0.4</version>
	
	<properties>
		<basyx.components.executable>org.eclipse.basyx.components.registry.executable.RegistryExecutable</basyx.components.executable>
	</properties>
	
	<packaging>jar</packaging>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>

			<!-- Attach sources to jar file -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>
			
			<!-- Generate separate jar for tests and exclude logback.xml from generated jars -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>
	
			<!-- Run unit tests (Test*.java, *Test.java, *Tests.java and *TestCase.java excluding HTTP and TCP tests) -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.2.0</version>
				<configuration>
					<source>8</source>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>jar</goal>
						</goals>
						<id>generate-javadoc</id>
						<phase>package</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	
	<dependencies>
		<!-- Use MongoDB Java Drivers for db connections -->
	    <dependency>
	        <groupId>org.mongodb</groupId>
	        <artifactId>mongodb-driver-sync</artifactId>
	        <version>4.0.5</version>
	    </dependency>

		<!-- Use Spring Data MongoDB for db data management -->		
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-mongodb</artifactId>
			<version>3.0.2.RELEASE</version>
		</dependency>
	
		<!-- Adds additional classes of the BaSys SDK for tests (for TestRegistryProvider) -->
		<dependency>
			<groupId>org.eclipse.basyx</groupId>
			<artifactId>basyx.sdk</artifactId>
			<classifier>tests</classifier>
		</dependency>
	</dependencies>
	
	<profiles>
		<profile>
			<id>docker</id>
			<build>
				<plugins>
					<!-- Read maven properties from file -->
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>properties-maven-plugin</artifactId>
					</plugin>
				
					<!-- Copy the dependencies necessary to run the jar -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-dependency-plugin</artifactId>
					</plugin>
				
					<!-- Build the docker image -->
					<plugin>
						<groupId>com.spotify</groupId>
						<artifactId>dockerfile-maven-plugin</artifactId>
					</plugin>
				
					<!-- Create integration test environment -->
					<plugin>
						<groupId>com.dkanejs.maven.plugins</groupId>
						<artifactId>docker-compose-maven-plugin</artifactId>
					</plugin>
					
					<!-- Run integration tests -->
					<plugin>    
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		
		<profile>
			<id>MavenCentral</id>
			<build>
				<plugins>
					<!-- Upload to maven central -->
					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
					</plugin>
					
					<!-- Signing the artifacts -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>