<?xml version="1.0" encoding="UTF-8"?>
<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>
		<relativePath>../../releng/org.eclipse.emf.parsley.parent/pom.xml</relativePath>
		<groupId>org.eclipse.emf.parsley</groupId>
		<artifactId>org.eclipse.emf.parsley.parent</artifactId>
		<version>1.8.0-SNAPSHOT</version>
	</parent>

	<artifactId>org.eclipse.emf.parsley.dsl.ui.tests</artifactId>
	<packaging>eclipse-test-plugin</packaging>

	<profiles>
		<profile>
			<id>macosx-jvm-flags</id>
			<activation>
				<os>
					<family>mac</family>
				</os>
			</activation>
			<properties>
				<os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
			</properties>
		</profile>
	</profiles>

	<build>
		<plugins>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.eclipse.xtend</groupId>
				<artifactId>xtend-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>default-test</id>
						<phase>integration-test</phase>
						<configuration>
							<skip>${dsl.tests.skip}</skip>
							<useUIHarness>true</useUIHarness>
							<useUIThread>true</useUIThread>
							<!-- tycho.testArgLine repeated to re-use the configuration for argLine 
								for jacoco agent -->
							<argLine>${tycho.testArgLine} ${uiTestsArgs} ${pdeTestsArgs}</argLine>
							<includes>
								<include>**/org/eclipse/emf/parsley/dsl/ui/tests/*Test.java</include>
							</includes>
							<!-- TODO remove with tycho 1.3 -->
							<bundleStartLevel>
								<bundle>
									<id>org.apache.felix.scr</id>
									<level>1</level>
									<autoStart>true</autoStart>
								</bundle>
							</bundleStartLevel>
						</configuration>
						<goals>
							<goal>test</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<configuration>
					<dependency-resolution>
						<extraRequirements>
							<!-- to get the org.eclipse.osgi.compatibility.state plugin iff 
							the targeted Eclipse version (e.g., Luna) has it
							(backwards compatible with kepler and previous versions) -->
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.rcp</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-plugin</type>
								<id>org.apache.felix.scr</id>
								<versionRange>1.0.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>