<?xml version="1.0" encoding="UTF-8"?>
<!--
    ========================================================================
    // Copyright (c) 2009-2010 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
    // Jesse Mcconnell - Signing
    ========================================================================
-->
<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.eclipse.jetty.p2repo</groupId>
    <artifactId>jetty-p2repo</artifactId>
    <version>9.1.0-SNAPSHOT</version>
  </parent>
  <artifactId>org.eclipse.jetty.bundles.repo</artifactId>
  <!--packaging>eclipse-repository</packaging-->
  <packaging>eclipse-update-site</packaging>
  <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}/bundles-site.zip" basedir="${project.build.directory}/site/"/>
                  </tasks>
                </configuration>
              </execution>
              <execution>
                 <id>replace-unsigned-repository-by-signed-one</id>
                 <phase>verify</phase>
                 <goals>
                   <goal>run</goal>
                 </goals>
                 <configuration>
                   <tasks>
                     <move file="${project.build.directory}/site" tofile="${project.build.directory}/site-not-signed"/>
                     <move file="${project.build.directory}/checksumFix" tofile="${project.build.directory}/site"/>
                   </tasks>
                 </configuration>
              </execution>
           </executions>
         </plugin>
         <plugin>
           <groupId>org.eclipse.jetty.toolchain</groupId>
           <artifactId>eclipse-signing-maven-plugin</artifactId>
           <version>${signing-plugin-version}</version>
           <executions>
             <execution>
               <id>pack</id>
               <configuration>
                 <inputFile>${project.build.directory}/bundles-site.zip</inputFile>
               </configuration>
               <phase>integration-test</phase>
               <goals>
                 <goal>pack</goal>
               </goals>
             </execution>
             <execution>
               <id>sign</id>
               <configuration>
                 <inputFile>${project.build.directory}/packed/bundles-site.zip</inputFile>
                 <signerInputDirectory>/home/data/httpd/download-staging.priv/rt/jetty/wksigning</signerInputDirectory>
               </configuration>
               <phase>integration-test</phase>
               <goals>
                 <goal>sign</goal>
               </goals>
             </execution>
             <execution>
               <id>repack</id>
               <configuration>
                 <inputFile>${project.build.directory}/signed/site_assembly.zip</inputFile>
               </configuration>
               <phase>integration-test</phase>
               <goals>
                 <goal>pack</goal>
               </goals>
             </execution>
             <execution>
               <id>fixCheckSums</id>
               <configuration>
                 <inputFile>${project.build.directory}/packed/site_assembly.zip</inputFile>
               </configuration>
               <phase>integration-test</phase>
               <goals>
                 <goal>fixCheckSums</goal>
               </goals>
             </execution>
           </executions>
         </plugin>
        </plugins>
       </build>
     </profile>
  </profiles>
</project>
