<?xml version="1.0" encoding="UTF-8"?>
<!--
  #%L
  %%
  Copyright (C) 2021 BMW Car IT GmbH
  %%
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
	   http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  #L%
  -->
<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>

	<groupId>io.joynr.java</groupId>
	<artifactId>jeeintegration</artifactId>
	<packaging>jar</packaging>
	<name>${project.groupId}:${project.artifactId}</name>

	<parent>
		<groupId>io.joynr</groupId>
		<artifactId>java</artifactId>
		<version>1.25.0</version>
		<relativePath>../pom.xml</relativePath>
	</parent>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<executions>
						<execution>
							<id>analyze</id>
							<goals>
								<goal>analyze-only</goal>
							</goals>
							<configuration>
								<ignoredUnusedDeclaredDependencies>
									<ignoredUnusedDeclaredDependency>javax.inject:javax.inject</ignoredUnusedDeclaredDependency>
									<ignoredUnusedDeclaredDependency>org.jboss.arquillian.junit:arquillian-junit-container</ignoredUnusedDeclaredDependency>
									<ignoredUnusedDeclaredDependency>fish.payara.arquillian:arquillian-payara-server-embedded</ignoredUnusedDeclaredDependency>
									<ignoredUnusedDeclaredDependency>fish.payara.extras:payara-embedded-all</ignoredUnusedDeclaredDependency>
									<ignoredUnusedDeclaredDependency>org.slf4j:slf4j-jdk14</ignoredUnusedDeclaredDependency>
									<ignoredUnusedDeclaredDependency>org.checkerframework:checker-qual</ignoredUnusedDeclaredDependency>
									<ignoredUnusedDeclaredDependency>com.google.j2objc:j2objc-annotations</ignoredUnusedDeclaredDependency>
								</ignoredUnusedDeclaredDependencies>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>

		<plugins>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<configuration>
					<includeDependencySources>true</includeDependencySources>
					<sourceFileExcludes>
						<sourceFileExclude>**/integrationTest/**</sourceFileExclude>
					</sourceFileExcludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<configuration>
					<destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
					<dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
				</configuration>
				<executions>
					<execution>
						<id>jacoco-initialize</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>jacoco-site</id>
						<phase>package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>io.joynr.tools.generator</groupId>
				<artifactId>joynr-generator-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>testSources</id>
						<phase>generate-test-sources</phase>
						<goals>
							<goal>generate</goal>
						</goals>
						<configuration>
							<model>${basedir}/src/main/model</model>
							<generationLanguage>java</generationLanguage>
							<outputPath>${basedir}/src/test/generated</outputPath>
						</configuration>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>io.joynr.tools.generator</groupId>
						<artifactId>java-generator</artifactId>
						<version>${project.version}</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<configuration>
					<directories>
						<directory>${basedir}/src/integrationTest/java</directory>
						<directory>${project.build.sourceDirectory}</directory>
						<directory>${project.build.testSourceDirectory}</directory>
					</directories>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-test-source</id>
						<phase>generate-test-sources</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/test/generated</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<dependencies>

		<dependency>
			<groupId>io.joynr.java</groupId>
			<artifactId>javaapi</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java</groupId>
			<artifactId>javaapi</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.common</groupId>
			<artifactId>access-control-common</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.common</groupId>
			<artifactId>infrastructure-common</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.common</groupId>
			<artifactId>status-metrics</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.core</groupId>
			<artifactId>clustercontroller</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.core</groupId>
			<artifactId>clustercontroller-inprocess-runtime</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.core</groupId>
			<artifactId>libjoynr</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.messaging</groupId>
			<artifactId>messaging-common</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.messaging.mqtt</groupId>
			<artifactId>joynr-mqtt-client</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.messaging.mqtt</groupId>
			<artifactId>joynr-mqtt-client</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.joynr.java.messaging.mqtt</groupId>
			<artifactId>hivemq-mqtt-client</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>
		<dependency>
			<groupId>com.google.inject</groupId>
			<artifactId>guice</artifactId>
		</dependency>
		<dependency>
			<groupId>org.checkerframework</groupId>
			<artifactId>checker-qual</artifactId>
		</dependency>
		<dependency>
			<groupId>com.google.j2objc</groupId>
			<artifactId>j2objc-annotations</artifactId>
			<type>jar</type>
		</dependency>
		<dependency>
			<groupId>jakarta.platform</groupId>
			<artifactId>jakarta.jakartaee-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>

		<!-- Test dependencies -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-jdk14</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<profiles>
		<profile>
			<id>integrationTests</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>

			<dependencies>
				<dependency>
					<groupId>org.jboss.arquillian.junit</groupId>
					<artifactId>arquillian-junit-container</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.jboss.arquillian.container</groupId>
					<artifactId>arquillian-container-test-api</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.jboss.arquillian.junit</groupId>
					<artifactId>arquillian-junit-core</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.jboss.arquillian.test</groupId>
					<artifactId>arquillian-test-spi</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.jboss.shrinkwrap</groupId>
					<artifactId>shrinkwrap-api</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>fish.payara.arquillian</groupId>
					<artifactId>arquillian-payara-server-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>fish.payara.extras</groupId>
					<artifactId>payara-embedded-all</artifactId>
					<scope>test</scope>
				</dependency>
			</dependencies>

			<build>
				<testResources>
					<testResource>
						<directory>${basedir}/src/integrationTest/resources</directory>
					</testResource>
				</testResources>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>add-integration-test-source</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>add-test-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${basedir}/src/integrationTest/java</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<argLine>--add-exports java.base/sun.net.www=ALL-UNNAMED --add-exports java.base/sun.security.util=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED ${surefireArgs}</argLine>
							<systemPropertyVariables>
								<!-- configure log levels for arquillian tests -->
								<java.util.logging.config.file>src/integrationTest/resources/logging.properties</java.util.logging.config.file>
							</systemPropertyVariables>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
