<!-- Copyright (c) 2011, 2019 PetalsLink and others.
All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v1.0 which accompanies this distribution,
and is available at http://www.eclipse.org/legal/epl-v10.html

Authors:
* Mickael Istria (PetalsLink)
-->
<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.swtbot.plugins</groupId>
  <artifactId>org.eclipse.swtbot.generator.test</artifactId>
  <packaging>eclipse-test-plugin</packaging>
  <parent>
  	<groupId>org.eclipse.swtbot</groupId>
  	<artifactId>parent</artifactId>
  	<version>2.9.0-SNAPSHOT</version>
  	<relativePath>../pom.xml</relativePath>
  </parent>

  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
  			<artifactId>tycho-surefire-plugin</artifactId>
  			<version>${tycho-version}</version>
  			<configuration>
  				<useUIHarness>true</useUIHarness>
  				<useUIThread>false</useUIThread>
  				<trimStackTrace>false</trimStackTrace>
  			</configuration>
  		</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 if 
						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>
					</extraRequirements>
				</dependency-resolution>
			</configuration>
		</plugin>
  	</plugins>
  </build>
</project>
