<?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.25.0-SNAPSHOT</version>
		<relativePath>../../releng/org.eclipse.emf.ecp.releng.tests/</relativePath>
	</parent>
	<groupId>org.eclipse.emf.ecp</groupId>
	<artifactId>org.eclipse.emf.ecp.edit.swt.test</artifactId>
	<version>1.25.0-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>
		          	<useUIHarness>true</useUIHarness>
		          	<useUIThread>true</useUIThread>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>
