<?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:http://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>
      http://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>
