<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>
  <groupId>org.eclipse.basyx</groupId>
  <artifactId>basyx.tck</artifactId>
  <version>1.0.0</version>
  
  
  <packaging>pom</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	</properties>
	
	<!-- Includes all components in this project as separated modules -->
	<modules>
		<module>basyx.tck.AASServer</module>
		<module>basyx.tck.registry</module>
	</modules>
	
	
	<build>
		<!-- Specifies plugin settings that are common for all submodules -->
		<pluginManagement>
			<plugins>
				<!-- Compile Java sources using Java 8 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.8.1</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
					</configuration>
				</plugin>
	
				<!-- Attach sources to jar file -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.2.1</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
				</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>
					<version>3.1.1</version>
					<configuration>
						<excludes>
							<exclude>**/logback.xml</exclude>
						</excludes>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>test-jar</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
		
				<!-- Run unit tests -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.0.0-M3</version>
				</plugin>
	
				<!-- Run integration tests -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>3.0.0-M3</version>
					<executions>
						<execution>
							<goals>
								<goal>integration-test</goal>
								<goal>verify</goal>
							</goals>
						</execution>
					</executions>
				</plugin> 
			</plugins>
		</pluginManagement>
	</build>
	
	<!-- Every submodule depends on these dependencies -->
	<dependencies>
		<!-- JUnit 4 for running JUnit tests -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<!-- Specifies dependency settings for all submodules using these dependencies -->
	<dependencyManagement>
		<dependencies>
			<!-- BaSyx SDK -->
			<dependency>
				<groupId>org.eclipse.basyx</groupId>
				<artifactId>basyx.sdk</artifactId>
				<version>1.1.0-SNAPSHOT</version>
			</dependency>
			<!-- BaSyx SDK tests -->
			<dependency>
				<groupId>org.eclipse.basyx</groupId>
				<artifactId>basyx.sdk</artifactId>
				<version>1.1.0-SNAPSHOT</version>
				<classifier>tests</classifier>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>