<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2009, Igor Fedorenko <igor@ifedorenko.com>

   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
  -->
<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.incubator</groupId>
    <artifactId>mylyn-incubator-parent</artifactId>
    <version>3.7.0-SNAPSHOT</version>
  </parent>
  <artifactId>incubator-site</artifactId>
  <version>3.7.0-SNAPSHOT</version>
  <packaging>eclipse-update-site</packaging>
  <name>Mylyn Incubator</name>
  <properties>
    <qualifier>${project.unqualifiedVersion}</qualifier>
    <sign-dir>tools/mylyn/hudson/signing/incubator</sign-dir>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <resolver>p2</resolver>
          <environments>
            <environment>
              <os>win32</os>
              <arch>x86</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2-beta-4</version>
        <configuration>
          <descriptors>
            <descriptor>assembly.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </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/site</outputDirectory>
              <resources>
                <resource>
                  <directory>.</directory>
                  <includes>
                    <include>index.html</include>
					<include>web/*</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
	  <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-antrun-plugin</artifactId>
		<version>1.6</version>
		<executions>
		  <execution>
			<id>pack-and-sign</id>
			<phase>install</phase>
			<configuration>
			  <target>
				<ant antfile="pack-and-sign/build.xml">
				  <property name="localRepository" value="${settings.localRepository}"/>
				  <property name="projectDir" value="${project.build.directory}"/>
				  <property name="signDir" value="${sign-dir}"/>
				  <property name="archiveDir" value="${mylyn-archive}"/>
				  <property name="siteDir" value="${mylyn-site}"/>
				  
				  <property name="dist" value="mylyn"/>
				  <property name="filter" value="mylyn"/>
				  <property name="repositoryName" value="${mylyn-incubator-repository}"/>
				  <property name="pack200" value="${mylyn-pack200}"/>
				  
				  <property name="skipSign" value="${mylyn-skip-sign}"/>
				  <property name="skipPack" value="${mylyn-skip-pack}"/>
				  <property name="skipPromote" value="${mylyn-skip-promote}"/>
				  
				  <property name="version" value="${unqualifiedVersion}"/>
				  <property name="qualifier" value="${buildQualifier}"/>
				</ant>
				<echo file="${project.build.directory}/version.properties">
				  <![CDATA[
${unqualifiedVersion}
${buildQualifier}
]]>
				</echo>
			  </target>
			</configuration>
			<goals>
			  <goal>run</goal>
			</goals>
		  </execution>
		</executions>
	  </plugin>

    </plugins>
  </build>
</project>
