<!--
 * Copyright (c) 2011 PetalsLink
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *  
 *   Contributors:
 *      Mickael istria (PetalsLink)
-->
<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>
	<groupId>org.eclipse.gmf-tooling</groupId>
	<artifactId>repository</artifactId>
	<version>2.4.1-SNAPSHOT</version>
	<packaging>eclipse-repository</packaging>

	<parent>
		<groupId>org.eclipse.gmf-tooling</groupId>
		<artifactId>parent</artifactId>
		<version>2.4.1-SNAPSHOT</version>
		<relativePath>../</relativePath>
	</parent>

	<profiles>
		<profile>
			<id>build-at-eclipse-org</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.dash.maven</groupId>
						<artifactId>eclipse-signing-maven-plugin</artifactId>
						<version>1.0.3</version>
						<executions>
							<!-- Pack the p2 repository. -->
							<execution>
								<id>pack</id>
								<phase>package</phase>
								<configuration>
									<inputFile>${project.build.directory}/${project.artifactId}.zip</inputFile>
								</configuration>
								<goals>
									<goal>pack</goal>
								</goals>
							</execution>
							<!-- Sign the p2 repository -->
							<execution>
								<id>sign</id>
								<configuration>
									<inputFile>${project.build.directory}/${project.artifactId}.zip</inputFile>
									<signerInputDirectory>/home/data/httpd/download-staging.priv/modeling/gmf/gmf-tooling</signerInputDirectory>
								</configuration>
								<phase>package</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
							<!-- Repack the p2 repository -->
							<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 packing alters checksums so fix them -->
							<execution>
								<id>fixCheckSums</id>
								<phase>package</phase>
								<goals>
									<goal>fixCheckSums</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<id>deploy</id>
								<phase>install</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<tasks>
										<delete includeemptydirs="false">
											<fileset dir="/home/data/httpd/download.eclipse.org/modeling/gmp/gmf-tooling/updates/dev-snapshots/3.0">
												<include name="**" />
											</fileset>
										</delete>
										<copy includeemptydirs="false" todir="/home/data/httpd/download.eclipse.org/modeling/gmp/gmf-tooling/updates/dev-snapshots/3.0">
											<fileset dir="target/checksumFix">
												<include name="**" />
											</fileset>
										</copy>
									</tasks>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<pluginRepositories>
		<pluginRepository>
			<id>eclipse-nexus</id>
			<url>http://maven.eclipse.org/nexus/content/groups/public/</url>
		</pluginRepository>
	</pluginRepositories>

</project>