<?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>org.eclipse.mylyn.incubator-parent</artifactId>
    <version>3.9.0-SNAPSHOT</version>
  </parent>
  <artifactId>incubator-site</artifactId>
  <version>3.9.0-SNAPSHOT</version>
  <packaging>eclipse-update-site</packaging>
  <name>Mylyn Incubator for Mylyn 3.8</name>
  <properties>
    <qualifier>${project.unqualifiedVersion}</qualifier>
    <sign-dir>tools/mylyn/hudson/signing/incubator</sign-dir>
  </properties>
  <profiles>
    <profile>
      <id>hudson.eclipse.org</id>
      <activation>
        <property>
          <name>user.name</name>
          <value>hudsonbuild</value>
        </property>
      </activation>
      <properties>
        <dist.site>/home/data/httpd/download.eclipse.org/mylyn/incubator</dist.site>
        <dist.archive>${dist.site}/drops</dist.archive>
      </properties>
    </profile>
  </profiles>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>		
        <configuration>
          <environments>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86</arch>
            </environment>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
        </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/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="${dist.archive}"/>
                  <property name="siteDir" value="${dist.site}"/>
                  
                  <property name="dist" value="mylyn"/>
                  <property name="filter" value="mylyn"/>
                  <property name="repositoryName" value="${dist.repository}"/>
                  <property name="pack200" value="${dist.pack200}"/>
                  
                  <property name="skipSign" value="${sign.skip}"/>
                  <property name="skipPack" value="${pack.skip}"/>
                  <property name="skipPromote" value="${promote.skip}"/>
                  
                  <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>
