<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>
	<artifactId>org.eclipse.egerrit.ui.rcptt.tests</artifactId>
	<packaging>rcpttTest</packaging>

	<parent>
		<groupId>org.eclipse.egerrit</groupId>
		<artifactId>org.eclipse.egerrit.parent</artifactId>
		<version>1.4.0-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>

	<dependencies>
		<!-- we use this dependency to obtain the archive of the plug-ins to test -->
		<dependency>
			<groupId>org.eclipse.egerrit</groupId>
			<artifactId>org.eclipse.egerrit.updatesite</artifactId>
			<version>1.4.0-SNAPSHOT</version>
			<type>zip</type>
		</dependency>
		<!-- we use this dependency to obtain the archive of the plug-ins to test -->
		<dependency>
			<groupId>org.eclipse.egerrit</groupId>
			<artifactId>org.eclipse.egerrit.updatesite.tests</artifactId>
			<version>1.4.0-SNAPSHOT</version>
			<type>zip</type>
		</dependency>
	</dependencies>

	<pluginRepositories>
		<pluginRepository>
			<id>rcptt-releases</id>
			<name>RCPTT Maven repository</name>
			<url>https://repo.eclipse.org/content/repositories/rcptt-releases/</url>
		</pluginRepository>
		<pluginRepository>
			<id>rcptt-snapshots</id>
			<name>RCPTT Maven Snapshots repository</name>
			<snapshots>
				<updatePolicy>always</updatePolicy>
			</snapshots>
			<url>https://repo.eclipse.org/content/repositories/rcptt-snapshots/</url>
		</pluginRepository>
	</pluginRepositories>
	<properties>
		<rcptt-maven-version>2.1.0</rcptt-maven-version>
		<!-- To make tests run faster, you can replace this URL by path of a file 
			on the local filesystem -->
		<base-aut>http://download.eclipse.org/eclipse/downloads/drops4/R-4.6.3-201703010400/eclipse-SDK-4.6.3-linux-gtk-x86_64.tar.gz</base-aut>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.10</version>
				<executions>
					<execution>
						<id>unpack-dependencies</id>
						<phase>generate-resources</phase>
						<goals>
							<goal>unpack-dependencies</goal>
						</goals>
						<configuration>
							<useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact>
							<stripVersion>true</stripVersion>
							<stripClassifier>true</stripClassifier>
							<excludeTransitive>true</excludeTransitive>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.rcptt</groupId>
				<artifactId>rcptt-maven-plugin</artifactId>
				<version>${rcptt-maven-version}</version>
				<extensions>true</extensions>
				<configuration>
					<aut>
						<vmArgs>
							<vmArg>${argLine}</vmArg>
							<vmArg>-DEGerritGerritTestServerHost=${EGerritGerritTestServerHost}</vmArg>
							<vmArg>-DEGerritGerritTestServerPort=${EGerritGerritTestServerPort}</vmArg>
							<vmArg>-DRCPTTWaitTime=${RCPTTWaitTime}</vmArg>
							<!-- Argument to enable remote debugging of the AUT -->
							<!-- <vmArg>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=6677</vmArg> -->
						</vmArgs>

						<explicit>${base-aut}</explicit>
						<injections>
							<injection>
								<site>http://download.eclipse.org/releases/oxygen</site>
								<features>
									<feature>org.eclipse.egit.feature.group</feature>
									<feature>org.eclipse.jgit.feature.group</feature>
									<feature>org.eclipse.emf.feature.group</feature>
									<feature>org.eclipse.swtbot.eclipse.feature.group</feature>
								</features>
							</injection>
							<injection>
								<site>file:${project.build.directory}/dependency/org.eclipse.egerrit.updatesite-zip/</site>
								<features>
									<feature>org.eclipse.egerrit.feature.feature.group</feature>
								</features>
							</injection>
							<injection>
								<site>file:${project.build.directory}/dependency/org.eclipse.egerrit.updatesite.tests-zip/</site>
								<features>
									<feature>org.eclipse.egerrit.ui.tests</feature>
									<feature>org.eclipse.egerrit.core.tests</feature>
								</features>
							</injection>
							<injection>
								<site>http://download.eclipse.org/tools/orbit/downloads/drops/R20150821153341/repository/</site>
								<features>
									<feature>org.slf4j.api</feature>
									<feature>org.apache.commons.lang3</feature>
									<feature>org.hamcrest.library</feature>
									<feature>org.hamcrest.core</feature>
								</features>
							</injection>
						</injections>
					</aut>
					<runner>
						<version>${rcptt-maven-version}</version>
					</runner>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.eclipse.rcptt
										</groupId>
										<artifactId>
											rcptt-maven-plugin
										</artifactId>
										<versionRange>
											[2.0.0,)
										</versionRange>
										<goals>
											<goal>resources</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>hudson</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.rcptt</groupId>
						<artifactId>rcptt-maven-plugin</artifactId>
						<version>${rcptt-maven-version}</version>
						<extensions>true</extensions>
						<configuration>
							<aut>
								<vmArgs>
									<vmArg>${argLine}</vmArg>
									<vmArg>-DEGerritGerritTestServerHost=${EGerritGerritTestServerHost}</vmArg>
									<vmArg>-DEGerritGerritTestServerPort=${EGerritGerritTestServerPort}</vmArg>
									<vmArg>-DRCPTTWaitTime=${RCPTTWaitTime}</vmArg>
									<vmArg>-Declipse.pluginCustomization=${project.basedir}/../org.eclipse.egerrit.releng/eclipseFoundation-proxy-settings.ini</vmArg>
									<vmArg>-DEGerritUseDefinedProxy=true</vmArg>
									<!-- Argument to enable remote debugging of the AUT -->
									<!-- <vmArg>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=6677</vmArg> -->
								</vmArgs>
							</aut>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
