<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2021 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.23.0-SNAPSHOT</version>
    <relativePath>../../</relativePath>
  </parent>
  <groupId>org.eclipse.ant</groupId>
  <artifactId>org.eclipse.ant.tests.ui</artifactId>
  <version>3.10.200-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>
