<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2017 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Igor Fedorenko - initial implementation
-->
<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>
    <artifactId>eclipse.platform</artifactId>
    <groupId>eclipse.platform</groupId>
    <version>4.16.0-SNAPSHOT</version>
    <relativePath>../../</relativePath>
  </parent>
  <groupId>org.eclipse.ant</groupId>
  <artifactId>org.eclipse.ant.tests.ui</artifactId>
  <version>3.9.700-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  <properties>
    <code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
  </properties>
  <build>
  	<plugins>
  	    <plugin>
			<groupId>org.eclipse.tycho</groupId>
			<artifactId>target-platform-configuration</artifactId>
			<configuration>
				<dependency-resolution>
					<extraRequirements>
						<requirement>
							<type>eclipse-plugin</type>
							<id>org.eclipse.pde.core</id>
							<versionRange>0.0.0</versionRange>
						</requirement>
					</extraRequirements>
				</dependency-resolution>
			</configuration>
		</plugin>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
  			<artifactId>tycho-surefire-plugin</artifactId>
			<configuration>
				<testClass>org.eclipse.ant.tests.ui.testplugin.AntUITests</testClass>
				<testClassesDirectory>target/anttestsui.jar-classes</testClassesDirectory>
				<useUIHarness>true</useUIHarness>
				<useUIThread>true</useUIThread>
			</configuration>
  		</plugin>
  	</plugins>
  </build>
</project>
