<?xml version="1.0" encoding="UTF-8"?>
<!--
// ========================================================================
// Copyright (c) 2009 Intalio, Inc.
// 
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
// The Eclipse Public License is available at 
// http://www.eclipse.org/legal/epl-v10.html
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
// You may elect to redistribute this code under either of these licenses. 
// Contributors:
//    Hugues Malphettes - initial API and implementation
// ========================================================================
-->
<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>jetty-osgi</artifactId>
    <groupId>org.eclipse.jetty.osgi</groupId>
    <version>7.6.0-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>
  <artifactId>org.eclipse.jetty.product</artifactId>
  <packaging>eclipse-repository</packaging>
  <description>Prototype: Eclipse Product for Jetty-Equinox, P2 able</description>
    <properties>
      <tycho.updatesite.with.jre>true</tycho.updatesite.with.jre>
      <tycho.publisher.with.statsUri>http://download.eclipse.org/stats</tycho.publisher.with.statsUri>
      <tycho.publisher.with.statsTrackedBundleIDs>org.eclipse.jetty.sdk,org.eclipse.jetty.starterkit.sdk,org.eclipse.jetty.starterkit,org.eclipse.jetty.tooling,org.eclipse.pde.junit4.runtime.addon,org.eclipse.pde.junit4.runtime.standalone</tycho.publisher.with.statsTrackedBundleIDs>
    </properties>
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>1.0-beta-6</version>
      </extension>
    </extensions>
  </build>
  <profiles>
    <profile>
     <id>packAndSign</id>
      <activation>
        <property>
          <name>pack-and-sign</name>
          <value>true</value>
        </property>
      </activation>
      <build>
       <plugins>
         <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>zip-repository</id>
                <phase>package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <tasks>
                    <zip destfile="${project.build.directory}/repository.zip" basedir="${project.build.directory}/repository/"/>
                  </tasks>
                </configuration>
              </execution>
              <execution>
                 <id>replace-unsigned-repository-by-signed-one</id>
                 <phase>post-package</phase>
                 <goals>
                   <goal>run</goal>
                 </goals>
                 <configuration>
                   <tasks>
                     <move file="${project.build.directory}/repository" tofile="${project.build.directory}/repository-not-signed"/>
                     <move file="${project.build.directory}/checksumFix" tofile="${project.build.directory}/repository"/>
                   </tasks>
                 </configuration>
              </execution>
              <!-- Somehow this never worked. Replaced by a shell script executed at the end of the build. -->
              <!--execution>
                <id>deploy</id>
                <phase>verify</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <tasks>
                    <delete includeemptydirs="false">
                      <fileset
                        dir="/home/data/httpd/download.eclipse.org/jetty/updates/${p2-install-parent-folder-name}/${p2-install-folder-name}">
                        <include name="**" />
                      </fileset>
                    </delete>
                    <mkdir dir="/home/data/httpd/download.eclipse.org/jetty/updates/${p2-install-parent-folder-name}/${p2-install-folder-name}"/>
                    <copy includeemptydirs="false"
                      todir="/home/data/httpd/download.eclipse.org/jetty/updates/${p2-install-parent-folder-name}/${p2-install-folder-name}">
                      <fileset dir="target/repository">
                        <include name="**" />
                      </fileset>
                    </copy>
                  </tasks>
                </configuration>
              </execution-->
           </executions>
         </plugin>
         <plugin>
           <groupId>org.eclipse.dash.maven</groupId>
           <artifactId>eclipse-signing-maven-plugin</artifactId>
           <version>${signing-plugin-version}</version>
           <executions>
             <execution>
               <id>pack</id>
               <configuration>
                 <inputFile>${project.build.directory}/repository.zip</inputFile>
               </configuration>
               <phase>package</phase>
               <goals>
                 <goal>pack</goal>
               </goals>
             </execution>
             <execution>
               <id>sign</id>
               <configuration>
                 <inputFile>${project.build.directory}/packed/repository.zip</inputFile>
                 <signerInputDirectory>/home/data/httpd/download-staging.priv/rt/jetty/wksigning</signerInputDirectory>
               </configuration>
               <phase>package</phase>
               <goals>
                 <goal>sign</goal>
               </goals>
             </execution>
             <execution>
               <id>repack</id>
               <configuration>
                 <inputFile>${project.build.directory}/signed/site_assembly.zip</inputFile>
               </configuration>
               <phase>package</phase>
               <goals>
                 <goal>pack</goal>
               </goals>
             </execution>

             <execution>
               <id>fixCheckSums</id>
               <configuration>
                 <inputFile>${project.build.directory}/packed/site_assembly.zip</inputFile>
               </configuration>
               <phase>package</phase>
               <goals>
                 <goal>fixCheckSums</goal>
               </goals>
             </execution>
           </executions>
         </plugin>
        </plugins>
       </build>
     </profile>
  </profiles>
</project>
