<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2012, 2017 Eclipse Foundation. 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>
		<groupId>org.eclipse</groupId>
		<artifactId>org.eclipse.equinox.p2.tests-parent</artifactId>
		<version>4.17.0-SNAPSHOT</version>
		<relativePath>../../org.eclipse.equinox.p2.releng/org.eclipse.equinox.p2.tests-parent</relativePath>
	</parent>

	<groupId>org.eclipse.equinox</groupId>
	<artifactId>org.eclipse.equinox.p2.tests</artifactId>
	<version>1.7.1000-SNAPSHOT</version>
	<packaging>eclipse-test-plugin</packaging>

	<properties>
		<testSuite>${project.artifactId}</testSuite>
		<testClass>org.eclipse.equinox.p2.tests.AutomatedTests</testClass>
		<!-- despite best inentions I was not able to add automatiz detection here -->
		<!-- Linux is default because Hudson runs those tests on Linux -->
		<dropinsProduct>org.eclipse.equinox.p2.reconciler-linux.gtk.x86_64.tar.gz</dropinsProduct>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<configuration>
					<argLine>-Xmx512m -Dorg.eclipse.equinox.p2.reconciler.tests.platform.archive=${project.build.directory}/../../org.eclipse.equinox.p2.tests.reconciler.product/target/products/${dropinsProduct} -Dorg.eclipse.equinox.p2.reconciler.tests.35.platform.archive=${platform.archive.name} -Dorg.eclipse.equinox.p2.repository -Dorg.eclipse.equinox.p2.transport.ecf.retry=5</argLine>
					<appArgLine>-consoleLog -debug</appArgLine>
					<explodedBundles>
						<explodedBundle>org.apache.ant</explodedBundle>
					</explodedBundles>
					<dependencies>
						<dependency>
							<type>eclipse-plugin</type>
							<artifactId>org.eclipse.osgi.compatibility.state</artifactId>
							<version>0.0.0</version>
						</dependency>
					</dependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
