<?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.19.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.core</groupId>
  <artifactId>org.eclipse.core.tests.runtime</artifactId>
  <version>3.19.0-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>
