<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2016 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
     Lars Vogel <Lars.Vogel@vogella.com> - Bug 474876
     Mickael Istria (Red Hat Inc.) - 486480 Allow tests to run with surefire
-->
<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.runtime.tests</artifactId>
    <groupId>eclipse.platform.runtime</groupId>
    <version>4.7.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.core</groupId>
  <artifactId>org.eclipse.core.tests.runtime</artifactId>
  <version>3.11.100-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  <properties>
    <defaultSigning-excludeInnerJars>true</defaultSigning-excludeInnerJars>
    <testSuite>${project.artifactId}</testSuite>
	<testClass>org.eclipse.core.tests.runtime.AutomatedTests</testClass>
  </properties>

  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
  			<artifactId>target-platform-configuration</artifactId>
  			<version>${tycho.version}</version>
  			<configuration>
  				<dependency-resolution>
  					<extraRequirements>
  						<requirement>
  							<id>org.eclipse.update.configurator</id>
  							<type>p2-installable-unit</type>
  							<versionRange>0.0.0</versionRange>
  						</requirement>
  						<requirement>
  							<id>org.eclipse.jdt.junit.runtime</id>
  							<type>p2-installable-unit</type>
  							<versionRange>0.0.0</versionRange>
  						</requirement>
  						<requirement>
  							<id>org.eclipse.jdt.junit4.runtime</id>
  							<type>p2-installable-unit</type>
  							<versionRange>0.0.0</versionRange>
  						</requirement>
  						<requirement>
  							<id>org.eclipse.pde.junit.runtime</id>
  							<type>p2-installable-unit</type>
  							<versionRange>0.0.0</versionRange>
  						</requirement>
  					</extraRequirements>
  				</dependency-resolution>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>

</project>
