<?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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>parent-pom</artifactId>
    <version>4</version>
    <relativePath />
  </parent>

  <artifactId>uimaj-eclipse-update-site</artifactId>
  <packaging>pom</packaging>
  <version>2.4.0</version>

  <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>
    <eclipseUpdateSite>${project.build.directory}/eclipse-update-site</eclipseUpdateSite>
  </properties>

  <!-- don't use dependency mechanism - use dependency:copy because we need to get multiple versions 
    for the eclipse-feature-projects, and Maven wants to resolve multiple versions into one. -->

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-all-plugins</id>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <!-- ===================================================================
                List here all the PLUGINS, with all versions - needed by P2 build 
                ======================================================================= -->
              <artifactItems>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-cas-editor</artifactId><version>2.4.0</version><destFileName>org.apache.uima.caseditor_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-cas-editor</artifactId><version>2.3.1</version><destFileName>org.apache.uima.caseditor_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-cas-editor-ide</artifactId><version>2.4.0</version><destFileName>org.apache.uima.caseditor.ide_2.4.0.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-configurator</artifactId><version>2.4.0</version><destFileName>org.apache.uima.desceditor_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-configurator</artifactId><version>2.3.1</version><destFileName>org.apache.uima.desceditor_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-debug</artifactId><version>2.4.0</version><destFileName>org.apache.uima.debug_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-debug</artifactId><version>2.3.1</version><destFileName>org.apache.uima.debug_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-jcasgen</artifactId><version>2.4.0</version><destFileName>org.apache.uima.jcas.jcasgenp_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-jcasgen</artifactId><version>2.3.1</version><destFileName>org.apache.uima.jcas.jcasgenp_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-pear-packager</artifactId><version>2.4.0</version><destFileName>org.apache.uima.pear_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-pear-packager</artifactId><version>2.3.1</version><destFileName>org.apache.uima.pear_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-runtime</artifactId><version>2.4.0</version><destFileName>org.apache.uima.runtime_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-runtime</artifactId><version>2.3.1</version><destFileName>org.apache.uima.runtime_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-ep-launcher</artifactId><version>2.4.0</version><destFileName>org.apache.uima.launcher_2.4.0.jar</destFileName></artifactItem>
                
              </artifactItems>            
              <outputDirectory>${eclipseUpdateSite}/plugins</outputDirectory>              
              <!-- outputDirectory>${project.build.directory}/work/plugins</outputDirectory-->
            </configuration>
          </execution>
          <execution>
            <id>copy-features</id>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <!-- ===================================================================
                List here all the FEATURES, with all versions - needed by P2 build 
                ======================================================================= -->
              <artifactItems>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-eclipse-feature-runtime</artifactId><version>2.4.0</version><destFileName>org.apache.uima.runtime_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-eclipse-feature-runtime</artifactId><version>2.3.1</version><destFileName>org.apache.uima.runtime_2.3.1.jar</destFileName></artifactItem>

                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-eclipse-feature-tools</artifactId><version>2.4.0</version><destFileName>org.apache.uima.tools_2.4.0.jar</destFileName></artifactItem>
                <artifactItem><groupId>org.apache.uima</groupId><artifactId>uimaj-eclipse-feature-tools</artifactId><version>2.3.1</version><destFileName>org.apache.uima.tools_2.3.1.jar</destFileName></artifactItem>
                
              </artifactItems>
              <outputDirectory>${eclipseUpdateSite}/features</outputDirectory>              
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>BuildUpdateSite</id>
            <phase>package</phase>
            <configuration>
              <target>
                <!-- if the property uima-maven-build-eclipse-home is set, use it, otherwise don't -->
                <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" />
                  
                <echo>Compress plugin Jars using pack200 - this may take a minute or 2</echo>
                <java jar="${uima-eclipse-jar-processor}" fork="true" failonerror="true" maxmemory="256m">
                  <arg line="-processAll"/>
                  <arg line="-repack"/>
                  <arg line="-pack"/>
                  <arg line="-verbose"/>
                  <!--  only pack the plugins.  The publisher won't copy packed "features", 
                        they are tiny anyways -->
                  <arg line="-outputDir ${eclipseUpdateSite}/plugins"/>
                  <arg line="${eclipseUpdateSite}/plugins"/>
                                
                </java>
                
                <echo>Generate p2 metadata</echo>
                <!-- Generate p2 metadata -->
                
                <java jar="${eclipse-equinox-launcher}" fork="true" failonerror="true"
                  maxmemory="256m">
                  <arg line="-application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher" />
                  <arg line="-metadataRepository file://${eclipseUpdateSite}" />
                  <arg line="-artifactRepository file://${eclipseUpdateSite}" />
                  <arg line="-source ${eclipseUpdateSite}" />
                  <arg line="-configs ANY.ANY.ANY" />
                  <arg line="-publishArtifacts" />
                  <arg line="-reusePack200Files"/>
                  <arg line="-compress"/>
                </java>
                
                <echo>Generate category information</echo>
                <java jar="${eclipse-equinox-launcher}" fork="true" failonerror="true"
                  maxmemory="256m">
                  <arg line="-application org.eclipse.equinox.p2.publisher.CategoryPublisher" />
                  <arg line="-metadataRepository file://${eclipseUpdateSite}" />
                  <arg line="-categoryDefinition file://${basedir}/category.xml" />
                  <arg line="-categoryQualifier apache-uima" />
                  <arg line="-compress"/>
                </java>
                
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      
    </plugins>
  </build>

</project>