<?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
     Mickael Istria (Red Hat Inc.) - 416912: tycho-surefire-plugin configuration
-->
<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>tests-pom</artifactId>
    <groupId>eclipse.jdt.core</groupId>
    <version>4.13.0-SNAPSHOT</version>
    <relativePath>../tests-pom/</relativePath>
  </parent>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.core.tests.compiler</artifactId>
  <version>3.12.950-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
    <defaultSigning-excludeInnerJars>true</defaultSigning-excludeInnerJars>
  </properties>

  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
	  		<artifactId>tycho-surefire-plugin</artifactId>
	  		<version>${tycho.version}</version>
	  		<configuration>
	  			<includes>
	  				<include>org/eclipse/jdt/core/tests/compiler/parser/TestAll.class</include>
	  				<include>org/eclipse/jdt/core/tests/compiler/regression/TestAll.class</include>
	  				<include>org/eclipse/jdt/core/tests/eval/TestAll.class</include>
	  			</includes>
	  			<argLine>${tycho.surefire.argLine}</argLine>
	  		</configuration>
  		</plugin>
  	</plugins>
  </build>

  <profiles>
	<profile>
		<id>test-on-javase-9</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-toolchains-plugin</artifactId>
					<version>1.1</version>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>toolchain</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<toolchains>
							<jdk>
								<id>JavaSE-9</id>
							</jdk>
						</toolchains>
					</configuration>
				</plugin>
			</plugins>
		</build>
		<properties>
			<tycho.surefire.argLine>--add-modules ALL-SYSTEM</tycho.surefire.argLine>
		</properties>
	</profile>
	<profile>
		<id>test-on-javase-10</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-toolchains-plugin</artifactId>
					<version>1.1</version>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>toolchain</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<toolchains>
							<jdk>
								<id>JavaSE-10</id>
							</jdk>
						</toolchains>
					</configuration>
				</plugin>
			</plugins>
		</build>
		<properties>
			<!-- Overridden in https://ci.eclipse.org/jdt/job/eclipse.jdt.core-run.javac-10/configure  -->
			<tycho.surefire.argLine>--add-modules ALL-SYSTEM -Dcompliance=1.4,1.7,1.8,10</tycho.surefire.argLine>
		</properties>
	</profile>
	<profile>
		<id>test-on-javase-11</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-toolchains-plugin</artifactId>
					<version>1.1</version>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>toolchain</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<toolchains>
							<jdk>
								<id>JavaSE-11</id>
							</jdk>
						</toolchains>
					</configuration>
				</plugin>
			</plugins>
		</build>
		<properties>
			<!-- Overridden in https://ci.eclipse.org/jdt/job/eclipse.jdt.core-run.javac-11/configure  -->
			<tycho.surefire.argLine>--add-modules ALL-SYSTEM -Dcompliance=1.4,1.7,1.8,11</tycho.surefire.argLine>
		</properties>
	</profile>
	<profile>
		<id>test-on-javase-12</id>
		<build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-toolchains-plugin</artifactId>
					<version>1.1</version>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>toolchain</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<toolchains>
							<jdk>
								<id>JavaSE-12</id>
							</jdk>
						</toolchains>
					</configuration>
				</plugin>
			</plugins>
		</build>
		<properties>
			<!-- Overridden in https://ci.eclipse.org/jdt/job/eclipse.jdt.core-run.javac-12/configure  -->
			<tycho.surefire.argLine>--add-modules ALL-SYSTEM -Dcompliance=1.4,1.7,1.8,12</tycho.surefire.argLine>
		</properties>
	</profile>
  </profiles>

</project>
