<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>org.eclipse.basyx</groupId>
		<artifactId>basyx.components.docker</artifactId>
		<version>1.0.1</version>
    </parent>
	
	<artifactId>basyx.components.registry</artifactId>
	<name>BaSyx Registry</name>
	<version>1.0.3</version>
	
	<properties>
		<basyx.components.executable>org.eclipse.basyx.components.registry.executable.RegistryExecutable</basyx.components.executable>
	</properties>
	
	<packaging>jar</packaging>
	
	<build>
		<!-- Define additional plugins that are not included by default -->
		<!-- Plugin configuration is done in parent project(s) -->
		<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
				</plugin>

				<!-- Signing the artifacts -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-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>
	
				<!-- Run integration tests (IT*.java, *IT.java and *ITCase.java) -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
				</plugin>
				
				<!-- Upload to maven central -->
				<plugin>
					<groupId>org.sonatype.plugins</groupId>
					<artifactId>nexus-staging-maven-plugin</artifactId>
				</plugin>
				
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
				</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>
	</profiles>
</project>