<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011 Obeo
 
   Cedric Brun <cedric.brun@obeo.fr>

-->

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse.mylyn.docs.intent-group</groupId>
    <artifactId>intent-parent</artifactId>
    <version>0.9.0-SNAPSHOT</version>
    <relativePath>../..</relativePath>
  </parent>

  <artifactId>org.eclipse.mylyn.docs.intent.update</artifactId>
  <packaging>eclipse-repository</packaging>

  <!-- see http://issues.sonatype.org/browse/TYCHO-313 -->
  <version>0.9.0-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
      		<groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-repository-plugin</artifactId>
                <version>${tycho-version}</version>
                <configuration>
                    <createArtifactRepository>true</createArtifactRepository>
                    <finalName>${project.artifactId}</finalName>
                    <compress>true</compress>
                </configuration>
            </plugin>
            <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/repository</outputDirectory>
              <resources>
                <resource>
                  <directory>.</directory>
                  <includes>
                    <include>index.html</include>
	            <include>web/*</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>prepare_promotion</id>
						<phase>verify</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<!-- create a properties file for promotion process -->
								<mkdir dir="${project.build.directory}/promotion"/>
								<echo file="${project.build.directory}/promotion/promote.properties"
									message="#Intent promotion process.${line.separator}build.alias=${BUILD_ALIAS}${line.separator}build.qualifier=${env.BUILD_TYPE}${buildQualifier}${line.separator}version=${unqualifiedVersion}"/>
								<!-- copy necessary scripts to archive location -->
								<copy file="addDownloadStats.xsl" todir="${project.build.directory}/promotion"/>
								<copy file="p2.xsl" todir="${project.build.directory}/promotion"/>
								<copy file="promoter.xml" todir="${project.build.directory}/promotion" />
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
