<?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>
		<relativePath>../../releng/org.eclipse.emf.parsley.parent/pom.xml</relativePath>
		<groupId>org.eclipse.emf.parsley</groupId>
		<artifactId>org.eclipse.emf.parsley.parent</artifactId>
		<version>1.0.0-SNAPSHOT</version>
	</parent>

	<artifactId>org.eclipse.emf.parsley.rap.repository</artifactId>
	<packaging>eclipse-repository</packaging>

	<build>
		<plugins>
			<plugin>
				<!-- copy the p2 repository into the project root folder 
					to allow for easier archiving in CI server -->
				<artifactId>maven-antrun-plugin</artifactId>
				<version>${maven-antrun-plugin.version}</version>
				<executions>
					<execution>
						<id>copy-to-root-target</id>
						<phase>package</phase>
						<configuration>
							<target>
								<echo message="" />
								<echo message="Repository path: ${project.build.directory}/repository" />
								<echo message="Built version: ${unqualifiedVersion}.${buildQualifier}" />
								<echo message="" />

								<delete includeemptydirs="false" failonerror="false">
									<fileset dir="${p2.repository.dest}">
										<include name="**" />
									</fileset>
								</delete>
								<copy includeemptydirs="false" todir="${p2.repository.dest}">
									<fileset dir="target/repository">
										<include name="**" />
									</fileset>
								</copy>
							</target>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<!-- this will create a .target file pointing to the repository we've just built;
							we'll use that during another maven build to test that we can compile
							the our RAP examples (see org.eclipse.emf.parsley.rap.test.parent) -->
						<id>prepare-target-platform-for-rap-tests</id>
						<phase>package</phase>
						<configuration>
							<target>
								<ant antfile="${basedir}/../../devtools/org.eclipse.emf.parsley.targetplatform/create_test_target.ant" 
									target="create-target-file" />
							</target>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>release-composite</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>

			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-eclipserun-plugin</artifactId>
						<version>${tycho-version}</version>
						<configuration>
							<appArgLine>-application org.eclipse.ant.core.antRunner -buildfile ${project.basedir}/../org.eclipse.emf.parsley.parent/ant/packaging-p2composite.ant p2.composite.add -Dsoftware.download.area=${parsley.download.area} -Dupdates.dir=${parsley.rap.updates.dir} -Dsite.label="Emf Parsley Target Components" -Dproject.build.directory=${project.build.directory} -DunqualifiedVersion=${unqualifiedVersion} -DbuildQualifier=${buildQualifier}</appArgLine>
							<repositories>
								<repository>
									<id>luna</id>
									<layout>p2</layout>
									<url>http://download.eclipse.org/releases/luna</url>
								</repository>
							</repositories>
							<dependencies>
								<dependency>
									<artifactId>org.eclipse.ant.core</artifactId>
									<type>eclipse-plugin</type>
								</dependency>
								<dependency>
									<artifactId>org.apache.ant</artifactId>
									<type>eclipse-plugin</type>
								</dependency>
								<dependency>
									<artifactId>org.eclipse.equinox.p2.repository.tools</artifactId>
									<type>eclipse-plugin</type>
								</dependency>
								<dependency>
									<artifactId>org.eclipse.equinox.p2.core.feature</artifactId>
									<type>eclipse-feature</type>
								</dependency>
								<dependency>
									<artifactId>org.eclipse.equinox.p2.extras.feature</artifactId>
									<type>eclipse-feature</type>
								</dependency>
								<dependency>
									<artifactId>org.eclipse.equinox.ds</artifactId>
									<type>eclipse-plugin</type>
								</dependency>
							</dependencies>
						</configuration>
						<executions>
							<execution>
								<id>add-p2-composite-repository</id>
								<phase>package</phase>
								<goals>
									<goal>eclipse-run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>

		</profile>
	</profiles>
</project>