<?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.21.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.core</groupId>
  <artifactId>org.eclipse.core.tests.runtime</artifactId>
  <version>3.19.200-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.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>
  						<requirement>
  							<id>org.junit.jupiter.api</id>
  							<type>p2-installable-unit</type>
  							<versionRange>0.0.0</versionRange>
  						</requirement>
  					</extraRequirements>
  				</dependency-resolution>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>

</project>
