<?xml version="1.0" encoding="UTF-8"?>
<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.papyrus.robotics</groupId>
		<artifactId>org.eclipse.papyrus.robotics.releng</artifactId>
		<version>0.8.0-SNAPSHOT</version>
	</parent>
	
	<artifactId>org.eclipse.papyrus.robotics.p2</artifactId>
	<packaging>eclipse-repository</packaging>
	<name>org.eclipse.papyrus.robotics.p2</name>
	<description>This plugin defines the update site for Papyrus for Robotics plugins and feature.</description>
	
	<pluginRepositories>
		<pluginRepository>
			<id>org.jboss.tools.tycho-plugins</id>
			<url>https://repository.jboss.org/</url>
		</pluginRepository>
	</pluginRepositories>

	<build>
		<plugins>			
			<!-- workaround https://bugs.eclipse.org/bugs/show_bug.cgi?id=453708 -->
			<plugin>
				<groupId>org.jboss.tools.tycho-plugins</groupId>
				<artifactId>repository-utils</artifactId>
				<executions>
					<execution>
					<phase>package</phase>
						<goals>
							<goal>generate-repository-facade</goal>
						</goals>
						<configuration>
						<!-- components update facade -->
							<symbols>
								<update.site.name>Papyrus for Robotics</update.site.name>
								<update.site.description>Use this URL in Eclipse to install	Papyrus for Robotics</update.site.description>
								<update.site.version>${project.version}</update.site.version>
								<project.website>https://www.eclipse.org/papyrus/components/robotics</project.website>
								<project.issues>${project.issueManagement.url}</project.issues>
								<eclipse.target>${eclipse.targetrelease}</eclipse.target>
							</symbols>
							<siteTemplateFolder>siteTemplate</siteTemplateFolder>
							<p2StatsUrl>http://download.eclipse.org/stats</p2StatsUrl>
						
						<!-- p2 update site transitive dependencies repositories -->
							<associateSites>
								<!-- <site>https://download.eclipse.org/modeling/mdt/papyrus/components/designer/</site> -->
								<site>https://download.eclipse.org/modeling/mdt/papyrus/components/designer/2.0.0/</site>
								<site>https://download.eclipse.org/modeling/mdt/papyrus/components/marte/</site>
								<site>https://ci.eclipse.org/esf/job/esf-infra-nightly-build/lastSuccessfulBuild/artifact/p2/target/repository/</site>
								<!-- <site>https://ci.eclipse.org/esf/job/esf-tools-nightly-build/lastSuccessfulBuild/artifact/p2/target/repository/</site> -->
							</associateSites>
						</configuration>
					</execution>
				</executions>
				
				<!-- components dependencies -->
				<dependencies>
					<dependency>
						<groupId>org.eclipse.tycho</groupId>
						<artifactId>tycho-packaging-plugin</artifactId>
						<version>${tycho.version}</version>
					</dependency>
				</dependencies>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
