<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-->
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>uimaj-parent</artifactId>
    <version>2.10.3</version>  <!-- change to non-snapshot version after release of uimaj-parent -->
    <relativePath />
  </parent>

  <artifactId>uimaj-eclipse-update-site</artifactId>
  <version>2.10.4-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache UIMA Eclipse: ${project.artifactId}</name>
  <description>The UIMA Java SDK Eclipse update site</description>
  <url>${uimaWebsiteUrl}</url>

  <scm>
    <connection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uimaj/trunk/uimaj-eclipse-update-site
    </connection>
    <developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uimaj/trunk/uimaj-eclipse-update-site
    </developerConnection>
    <url>
      https://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-eclipse-update-site
    </url>
  </scm>

  <properties>
    <uimaScmRoot>uimaj</uimaScmRoot>
    <uimaScmProject>${project.artifactId}</uimaScmProject>

    <eclipseUpdateSiteComponent>uimaj</eclipseUpdateSiteComponent>

    <eclipseUpdateSubSite>${project.build.directory}/eclipse-update-site/${eclipseUpdateSiteComponent}</eclipseUpdateSubSite>
    
    <dropPrevVersions>false</dropPrevVersions>

  </properties>

  <build>
    
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-new-plugins</id>
            <goals><goal>copy</goal></goals>
            <configuration>
              <!-- ===================================================================
                                       the PLUGINS
                      note: rename to add org.apache.uima. and
                                   hyphen change to underscore in destination to follow
                                   Eclipse conventions
                            Name must be the same as the ID for the plugin or feature
                ======================================================================= -->
              <artifactItems>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-cas-editor</artifactId>    <version>${project.version}</version><destFileName>org.apache.uima.caseditor_${parsedVersion.osgiVersion}.jar    </destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-cas-editor-ide</artifactId><version>${project.version}</version><destFileName>org.apache.uima.caseditor.ide_${parsedVersion.osgiVersion}.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-configurator</artifactId>  <version>${project.version}</version><destFileName>org.apache.uima.desceditor_${parsedVersion.osgiVersion}.jar   </destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-debug</artifactId>         <version>${project.version}</version><destFileName>org.apache.uima.debug_${parsedVersion.osgiVersion}.jar        </destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-jcasgen</artifactId>       <version>${project.version}</version><destFileName>org.apache.uima.jcas.jcasgenp_${parsedVersion.osgiVersion}.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-pear-packager</artifactId> <version>${project.version}</version><destFileName>org.apache.uima.pear_${parsedVersion.osgiVersion}.jar         </destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-runtime</artifactId>       <version>${project.version}</version><destFileName>org.apache.uima.runtime_${parsedVersion.osgiVersion}.jar      </destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-launcher</artifactId>      <version>${project.version}</version><destFileName>org.apache.uima.launcher_${parsedVersion.osgiVersion}.jar     </destFileName></artifactItem>
              </artifactItems>
              <outputDirectory>${toBePacked}</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>copy-features</id>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <!-- ===================================================================
                                         the FEATURES
                      note: rename to add org.apache.uima. and
                                   hyphen change to underscore in destination to follow
                                   Eclipse conventions
                            Name must be the same as the ID for the plugin or feature
                ======================================================================= -->
              <artifactItems>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-eclipse-feature-runtime</artifactId><version>${project.version}</version><destFileName>org.apache.uima.runtime_${parsedVersion.osgiVersion}.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-eclipse-feature-tools</artifactId>  <version>${project.version}</version><destFileName>org.apache.uima.tools_${parsedVersion.osgiVersion}.jar  </destFileName></artifactItem>
              </artifactItems>
              <outputDirectory>${eusWork}/features</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>

           <!-- ==================================================== -->
           <!--                                                      -->
           <!--       P O S T   JAR   S I G N I N G by Digicert      -->
           <!--                                                      -->
           <!--       is not here, it was                            -->
           <!--       moved to uima-wide parent pom 10/2018          -->
           <!-- ==================================================== -->
 
          <execution>
            <id>BuildUpdateSite-pack-svnget-buildMetadata-commit-to-dev</id>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration combine.self="override">
              <target>
                <taskdef classname="net.sf.antcontrib.logic.IfTask" name="if" />
                
                <condition property="eclipse.home" value="${uima-maven-build-eclipse-home}">
                  <not>
                    <equals arg1="${uima-maven-build-eclipse-home}" arg2="$${uima-maven-build-eclipse-home}" />
                  </not>
                </condition>

                <property environment="envVar" />
                <condition property="eclipse.home" value="${envVar.ECLIPSE_HOME}">
                  <isset property="envVar.ECLIPSE_HOME" />
                </condition>
                
                <fail unless="eclipse.home" message="********** Please set up and use an ant property eclipse.home set to an Eclipse installation at level 3.3 or later, e.g. c:/eclipses/3.3/eclipse" />
                <fail unless="uima-eclipse-jar-processor" message="********** Please add to your settings.xml file the property uima-eclipse-jar-processor, point to this within an Eclipse installation at level 4.2 or later, e.g. \$\{uima-maven-build-eclipse-home\}/plugins/org.eclipse.equinox.p2.jarprocessor_1.0.200.v20110808-1657.jar" />
                <!--  skip this when dropping previous versions -->
                <if> 
                    <equals arg1="${dropPrevVersions}" arg2="false" />
                  <then>
	                  <if>
	                      <equals arg1="${isApacheRelease}" arg2="true" />
	                      <then>
	    
	                        <echo>checking out eclipse update subsite ${eclipseUpdateSiteComponent} from dist ...release...</echo>
	                        <delete dir="${eclipseUpdateSubSite}" quiet="true" />
	                        <exec executable="svn" failonerror="true">
	                          <arg value="checkout" />
	                          <arg value="${distsvnroot}repos/dist/release/uima/eclipse-update-site/${eclipseUpdateSiteComponent}" />
	                          <arg value="${eclipseUpdateSubSite}" />
	                        </exec> 
	                        
	                        <!-- abandon safety for now
	                        <echo>switching this checkout to ...dev... for safety</echo>
	                        <exec executable="svn">
	                          <arg value="switch" />
	                          <arg value="- -force" />  remove space between 2 dashes if uncommented
	                          <arg value="- -accept" />  remove space between 2 dashes if uncommented
	                          <arg value="mine-full" />
	                          <arg value="${distsvnroot}repos/dist/dev/uima/eclipse-update-site/${eclipseUpdateSiteComponent}" />
	                          <arg value="${eclipseUpdateSubSite}" />
	                        </exec> 
	                         -->
	                      </then>
	                      <else>
	                        <echo>skipping checkout of current svn dist release (because not apache-release)</echo>
	                        <!-- https://issues.apache.org/jira/browse/UIMA-3501 -->
	                        <delete dir="${eclipseUpdateSubSite}" quiet="true" />
	                      </else>
	                    </if>
                   </then>
                </if>
                    
                <echo>Compress plugin Jars using pack200 - this may take a minute or 2</echo>
                <java fork="true" maxmemory="256m" jar="${uima-eclipse-jar-processor}" failonerror="true">
                  <arg line="-processAll" />
                  <arg line="-repack" />
                  <arg line="-pack" />
                  <arg line="-verbose" />
                  <arg line="-outputDir ${eusWork}/plugins" />
                  <arg line="${toBePacked}" />
                </java>
                
                <echo>Save conditioned Jars prior to signing, in case of redo</echo>
                <echo>-------------------------------------------------------</echo> 
                <copy todir="${project.build.directory}/saved/features" failonerror="true">
                  <fileset dir="${eusWork}/features" includes="*.jar" />                 
                </copy>
                <copy todir="${project.build.directory}/saved/plugins" failonerror="true">
                   <fileset dir="${eusWork}/plugins" includes="*.jar" />                 
                </copy>
                
                <echo>Generate the p2 metadata and publish new artifacts</echo>
                <java fork="true" maxmemory="256m" jar="${eclipse-equinox-launcher}" failonerror="true">
                  <arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher" />
                  <arg line="-metadataRepository file:///${eclipseUpdateSubSite}" />
                  <arg line="-artifactRepository file:///${eclipseUpdateSubSite}" />
                  <arg line="-source ${eusWork}" />
                  <arg line="-configs ANY.ANY.ANY" />
                  <arg line="-publishArtifacts" />
                  <arg line="-reusePack200Files" />
                  <arg line="-compress" />
                  <arg line="-append" />
                </java>
                <echo>Augment p2 metadata with category information</echo>
                <java fork="true" maxmemory="256m" jar="${eclipse-equinox-launcher}" failonerror="true">
                  <arg line="-application org.eclipse.equinox.p2.publisher.CategoryPublisher" />
                  <arg line="-metadataRepository file:///${eclipseUpdateSubSite}" />
                  <arg line="-categoryDefinition file:///${basedir}/category.xml" />
                  <arg line="-categoryQualifier apache-uima" />
                  <arg line="-compress" />
                </java>
                <if>
                  <equals arg2="true" arg1="${isApacheRelease}" />
                  <then>
                    <echo message="Generating checksums for new features and plugins" />
                     <checksum algorithm="SHA-512" fileext=".sha512" format="MD5SUM" forceoverwrite="yes">
                      <fileset dir="${eusWork}">
                        <include name="**/*.gz" />
                        <include name="**/*.jar" />
                      </fileset>
                    </checksum>
                    
                    <echo message="Generating gpg signatures for new features and plugins" />
                    <apply failonerror="true" dir="${eusWork}" executable="gpg">
                      <arg value="--detach-sign" />
                      <arg value="--armor" />
                      <arg value="--batch" />
                      <fileset dir="${eusWork}">
                        <include name="**/*.jar" />
                        <include name="**/*.jar.pack.gz" />
                      </fileset>
                    </apply>
                    <echo message="Copying the checksums and signatures to the update subsite" />
                    <copy todir="${eclipseUpdateSubSite}" failonerror="true">
                      <fileset dir="${eusWork}">
                        <include name="**/*.asc" />
                        <include name="**/*.sha512" />
                      </fileset>
                    </copy>
                    <echo message="Clearing previous checksums and signatures for update artifacts.jar and content.jar" />
                    <delete dir="${eclipseUpdateSubSite}">
                      <include name="*.sha512" />
                      <include name="*.asc" />
                    </delete>
                    <echo message="Generating checksums for updated artifacts.jar and content.jar" />
                        <checksum algorithm="SHA-512" fileext=".sha512" format="MD5SUM" forceoverwrite="yes">
                      <fileset dir="${eclipseUpdateSubSite}">
                        <include name="*.jar" />
                      </fileset>
                    </checksum>
                    <echo message="Generating gpg signatures for artifacts.jar and content.jar" />
                    <apply failonerror="true" dir="${eclipseUpdateSubSite}" executable="gpg">
                      <arg value="--detach-sign" />
                      <arg value="--armor" />
                      <arg value="--batch" />
                      <fileset dir="${eclipseUpdateSubSite}">
                        <include name="*.jar" />
                      </fileset>
                    </apply>
                  </then>
                </if>
              </target>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>ant-contrib</groupId>
            <artifactId>ant-contrib</artifactId>
            <version>1.0b3</version>
            <scope>runtime</scope>
            <exclusions>
              <exclusion>
                <artifactId>ant</artifactId>
                <groupId>ant</groupId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-apache-regexp</artifactId>
            <version>1.9.2</version>
            <scope>compile</scope>
          </dependency>
          <dependency>
            <groupId>jakarta-regexp</groupId>
            <artifactId>jakarta-regexp</artifactId>
            <version>1.4</version>
            <scope>compile</scope>
          </dependency>
        </dependencies>
      </plugin>

   </plugins>
  </build>

</project>
