<?xml version="1.0" encoding="UTF-8"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<artifactId>workspace</artifactId>
		<groupId>org.eclipse.epp.usagedata</groupId>
		<version>1.3.1-SNAPSHOT</version>
		<relativePath>../../releng/org.eclipse.epp.usagedata.releng.tycho/pom.xml</relativePath>
	</parent>
	<groupId>org.eclipse.epp.usagedata</groupId>
	<artifactId>org.eclipse.epp.usagedata.repository</artifactId>
	<version>1.3.1-SNAPSHOT</version>
	<packaging>eclipse-update-site</packaging>
	<name>Usage Data Collector Repository</name>
	<build>
		<plugins>
			<plugin>
				<groupId>org.sonatype.tycho</groupId>
				<artifactId>maven-osgi-packaging-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<archiveSite>true</archiveSite>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>build-server</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.mortbay.jetty.toolchain</groupId>
						<artifactId>eclipse-signing-maven-plugin</artifactId>
						<version>1.0-SNAPSHOT</version>
						<executions>
							<!-- example of executing locally for pack -->
							<execution>
								<id>pack</id>
								<phase>package</phase>
								<goals>
									<goal>pack</goal>
								</goals>
							</execution>
							<!-- the sign remote -->
							<execution>
								<id>sign</id>
								<configuration>
									<signerInputDirectory>/home/data/httpd/download-staging.priv/technology/epp</signerInputDirectory>
								</configuration>
								<phase>package</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
							<!-- example of remote pack -->
							<execution>
								<id>repack</id>
								<configuration>
									<inputFile>${project.build.directory}/signed/site_assembly.zip</inputFile>
								</configuration>
								<phase>package</phase>
								<goals>
									<goal>pack</goal>
								</goals>
							</execution>
							<!-- signing and pack alters tycho checksums so fix them -->
							<execution>
								<id>fixCheckSums</id>
								<phase>package</phase>
								<goals>
									<goal>fixCheckSums</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>deploy</id>
								<phase>install</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<tasks>
										<mkdir dir="/shared/technology/epp/updates/1.3/1.3.1.${buildQualifier}"/>
										<copy includeemptydirs="false"
											todir="/shared/technology/epp/updates/1.3/1.3.1.${buildQualifier}">
											<fileset dir="target/checksumFix">
												<include name="**" />
											</fileset>
										</copy>
									</tasks>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
