<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.eclipse.stem.tycho</groupId>
	<artifactId>org.eclipse.stem.tycho.configuration</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<properties>
		<tycho.version>2.2.0</tycho.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<eclipse-repo.url>http://download.eclipse.org/releases/2021-03/202102261000/
		</eclipse-repo.url>
	</properties>
	<repositories>
		<repository>
			<id>eclipse-release</id>
			<url>${eclipse-repo.url}</url>
			<layout>p2</layout>
		</repository>
		<repository>
			<id>BIRT</id>
			<url>http://download.eclipse.org/releases/2019-09/</url>
			<layout>p2</layout>
		</repository>
		<repository>
			<id>Utils</id>
			<url>https://download.eclipse.org/tools/orbit/downloads/drops2/S20210216215844/repository/</url>
			<layout>p2</layout>
		</repository>
		<repository>
			<id>STEMData</id>
			<url>http://download.eclipse.org/stem/update-site/data/</url>
			<layout>p2</layout>
		</repository>
		<repository>
			<id>justj</id>
			<url>https://download.eclipse.org/justj/jres/11/updates/release/latest/</url>
			<layout>p2</layout>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>tycho-snapshots</id>
			<url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
		</pluginRepository>
	</pluginRepositories>
	<build>
		<!-- To use the plugin goals in your POM or parent POM -->
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-p2-repository-plugin</artifactId>
				<version>2.2.0</version>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-maven-plugin</artifactId>
				<version>${tycho.version}</version>
				<extensions>true</extensions>
			</plugin>
			<!--Enable the replacement of the SNAPSHOT version in the final product 
				configuration -->
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-packaging-plugin</artifactId>
				<version>${tycho.version}</version>
				<executions>
					<execution>
						<phase>package</phase>
						<id>package-feature</id>
						<configuration>
							<finalName>${project.artifactId}_${unqualifiedVersion}.${buildQualifier}
							</finalName>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho.version}</version>
				<configuration>
					<environments>
						<environment>
							<os>linux</os>
							<ws>gtk</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>win32</os>
							<ws>win32</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>macosx</os>
							<ws>cocoa</ws>
							<arch>x86_64</arch>
						</environment>
					</environments>
					<!--  for dev enironment -->
					<executionEnvironment>JavaSE-11</executionEnvironment>
					<!--  for distribution build -->
					<executionEnvironmentDefault>org.eclipse.justj.openjdk.hotspot.jre.full-11</executionEnvironmentDefault>
					<dependency-resolution>
						<profileProperties>
							<org.eclipse.justj.buildtime>true</org.eclipse.justj.buildtime>
						</profileProperties>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>