<!--
 * 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>
	<packaging>eclipse-repository</packaging>

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

	<profiles>
		<profile>
			<id>deploy</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<id>deploy</id>
								<phase>verify</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<delete includeemptydirs="false" quiet="true">
											<fileset dir="${publish-path}">
												<include name="**" />
											</fileset>
										</delete>
										<copy includeemptydirs="false" todir="${publish-path}">
											<fileset dir="target/repository/">
												<include name="**" />
											</fileset>
										</copy>
										<ant
											antfile="/shared/modeling/tools/promotion/manage-composite.xml"
											target="add">
											<property name="user.dir" value="${composite-path}"/>
											<property name="composite.name" value="GMF Tooling"/>
											<property name="child.repository" value="${buildQualifier}"/>
										</ant>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
