<?xml version="1.0" encoding="UTF-8"?>
<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.emf.ecp</groupId>
		<artifactId>ecp-tests-parent</artifactId>
		<version>1.7.1-SNAPSHOT</version>
		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
	</parent>
	<groupId>org.eclipse.emf.ecp</groupId>
	<artifactId>org.eclipse.emf.ecp.common.test</artifactId>
	<version>1.7.1-SNAPSHOT</version>
	<packaging>eclipse-test-plugin</packaging>

	<!-- When signing bundles we get a security exception using maven-surefire. 
		use tycho-surefire instead -->
	<profiles>
		<profile>
			<id>build-server</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<version>${mav-surefire-version}</version>
						<executions>
							<execution>
								<id>test</id>
								<phase>test</phase>
								<configuration>
									<skipTests>true</skipTests>
									<testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
									<includes>
										<include>**/*_Test.java</include>
									</includes>
									<testFailureIgnore>true</testFailureIgnore>
								</configuration>
								<goals>
									<goal>test</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.eclipse.tycho</groupId>
						<artifactId>tycho-surefire-plugin</artifactId>
						<version>${tycho-version}</version>
						<configuration>
							<includes>
								<include>**/*_PTest.java</include>
								<include>**/*_Test.java</include>
							</includes>
							<testFailureIgnore>true</testFailureIgnore>
							<skip>false</skip>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

    <!-- skip tycho surefire which is automatically started by using eclipse-test-plugin packaging type -->
	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>
