<?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.
-->

<!--
  This is the common UIMA parent pom.
  It contains the project-wide defaults:
  
    Parent is the official common Apache POM
    
    Defines repositories for
      Snapshots - at Apache - used during development, and for docbook olinks 
      Eclipse - where the good poms are
      Central - adds default check-the checksums
      
    PluginManagement defaults:
      Java 1.5 as the base
      Javadoc at 1.5 too
      Jar Manifest entries, including the build-time
      AntRun to pick a later version of ant with support for ant extensions like "if"
      
    Specify plugin levels for non-standard plugins:
      RAT
      eclipse   
    
-->

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <artifactId>apache</artifactId>
    <groupId>org.apache</groupId>
    <version>7</version>
    <relativePath />
  </parent>

  <groupId>org.apache.uima</groupId>
  <artifactId>parent-pom</artifactId>
  <version>1</version>
  <packaging>pom</packaging>
  
  <name>UIMA ${project.artifactId}</name>
  <description>UIMA (Unstructured Information Management Architecture).
    UIMA promotes community development and reuse of annotators
    that extract metadata from unstructured information (text, audio, video, etc.);
    it provides for externalized declaration of type systems,
    component configuration, aggregation, and more,
    supports scalablity, and provides tooling.</description>
    
  <url>${uimaWebsiteUrl}</url>
  <inceptionYear>2006</inceptionYear>
 
  <mailingLists>
    <mailingList>
      <name>UIMA Development List</name>
      <subscribe>dev-subscribe@uima.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@uima.apache.org</unsubscribe>
      <post>mailto:dev@uima.apache.org</post>
      <archive>
        http://mail-archives.apache.org/mod_mbox/uima-dev
      </archive>
      <otherArchives>
        <otherArchive>
          http://dir.gmane.org/gmane.comp.apache.uima.devel
        </otherArchive>
         <otherArchive>       
           http://uima.markmail.org
        </otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>UIMA Users List</name>
      <subscribe>user-subscribe@uima.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@uima.apache.org</unsubscribe>
      <post>mailto:user@uima.apache.org</post>
      <archive>
        http://mail-archives.apache.org/mod_mbox/uima-user
      </archive>
      <otherArchives>
        <otherArchive>
          http://dir.gmane.org/gmane.comp.apache.uima.general
        </otherArchive>
         <otherArchive>       
           http://uima.markmail.org
        </otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>UIMA Commits List</name>
      <subscribe>commits-subscribe@uima.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@uima.apache.org</unsubscribe>
      <post>mailto:commits@uima.apache.org</post>
      <archive>
        http://mail-archives.apache.org/mod_mbox/uima-commits
      </archive>
    </mailingList>
  </mailingLists>

  <prerequisites>
    <!-- 2.2.0 is broken when deploying - checksums invalid -->
    <!-- 2.2.1 doesn't work -->
    <maven>3.0</maven>
  </prerequisites>
  
  <!-- modules>
    <module>../uima-build-resources</module>
  </modules -->
       
  <scm>
    <connection>
      scm:svn:http://svn.apache.org/repos/asf/uima/build/tags/parent-pom-1-rc4
    </connection>
    <developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/build/tags/parent-pom-1-rc4
    </developerConnection>
    <url>
      http://svn.apache.org/viewvc/uima/build/tags/parent-pom-1-rc4
    </url>
  </scm>
  
  <issueManagement>
    <system>Jira</system>
    <!-- the form of the url is from http://maven.apache.org/plugins/maven-changes-plugin/usage.html -->
    <!--url>https://issues.apache.org/jira/BrowseProject.jspa?projectId=12310570</url-->
    <url>https://issues.apache.org/jira/browse/UIMA</url>
        
  </issueManagement>
  
  <!--ciManagement>
    <system>Hudson</system>
    <url />
    <notifiers />
  </ciManagement-->
  
  <!-- distribution management - is inherited from Apache pom
       and specifies 
         https://repository.apache.org/service/local/staging/deploy/maven2
       and for snapshots:
         https://repository.apache.org/content/repositories/snapshots -->
  <!-- for children POMs maven automatically adds their artifactId to the URL below
       unless overridden -->
  <distributionManagement>
    <site>
      <id>uima.apache.org</id> <!-- following maven convention -->
      <name>UIMA Website</name>
      <url>${uimaWebsiteDistributionUrl}</url>  <!-- on people.apache.org: /www/uima.apache.org -->
    </site>  
  </distributionManagement>

  <properties>
    <!--  this property is overridden in child projects that are released, to correspond to the 
          Jira release category(ies) 
          We specify something here, because if accidentally left blank, it 
          generates a giant request for all changes -->
    <jiraVersion>12315481</jiraVersion>  <!-- for parent-pom-1, override from the command line -->
    <uimaBuildResourcesVersion>1</uimaBuildResourcesVersion>
    <uimaWebsiteUrl>http://uima.apache.org</uimaWebsiteUrl>
    <uimaWebsiteDistributionUrl>scp://people.apache.org/www/uima.apache.org/</uimaWebsiteDistributionUrl>
    <maven.build.timestamp.format>yyMMdd_HHmm</maven.build.timestamp.format>
    <buildDateTime>${maven.build.timestamp}</buildDateTime>

    <!-- these properties are for docbook processing. -->     
    <!-- olink databases -->
    <dolArtifactId>uima-docbook-olink</dolArtifactId>
    <dolClassifier>olink</dolClassifier>
    <dolRepo>${settings.localRepository}/org/apache/uima/${dolArtifactId}/1-SNAPSHOT</dolRepo>
    <dolZip>${dolArtifactId}-1-SNAPSHOT-${dolClassifier}.zip</dolZip>
    <dolUnzipped>${dolRepo}/docbook-olink</dolUnzipped>
    <dolBuiltFile>${project.build.directory}/</dolBuiltFile>
    <dolBuiltArtifactFile>${project.build.directory}/${dolZip}</dolBuiltArtifactFile>
    
    <pdfPaperType>USletter</pdfPaperType>
    
    <pearPackagingDir>${project.build.directory}/pearPackaging</pearPackagingDir>    
  
    <!-- poms wanting this need to set the postNoticeText to this value -->          
    <ibmNoticeText>
Portions of Apache UIMA were originally developed by
International Business Machines Corporation and are
licensed to the Apache Software Foundation under the
"Software Grant License Agreement", informally known as the
"IBM UIMA License Agreement".
Copyright (c) 2003, 2006 IBM Corporation.         
    </ibmNoticeText> 
    <sourceReleaseAssemblyDescriptor>multimodule-source-release</sourceReleaseAssemblyDescriptor>  
  </properties>
 
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  
  <!-- can't put this dependency at the top level - 
       causes them to be included in children -->
  <!--dependencies>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uima-build-resources</artifactId>
      <version>1-SNAPSHOT</version>
    </dependency>
  </dependencies-->
  
  <repositories>
    <!-- note: inheritance does *NOT* merge subparts,
         so, redeclare them -->           
    <!-- define repositories for getting Eclipse parts
         because the one in "central" gives broken parts -->
    <repository>
      <id>eclipsePlugins</id>
      <name>Eclipse components</name>
      <layout>default</layout>
      <url>http://repo1.maven.org/eclipse</url>
      
      <releases>
        <updatePolicy>never</updatePolicy>
        <checksumPolicy>fail</checksumPolicy>
      </releases>
      
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>

    <!-- modify central repository access:
         Turn on checksum checking-->
    <repository>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <layout>default</layout>
      <url>http://repo1.maven.org/maven2</url>

      <releases>
        <enabled>true</enabled>
        <checksumPolicy>fail</checksumPolicy>
        <updatePolicy>never</updatePolicy>
      </releases>

      <snapshots>
        <enabled>false</enabled>
      </snapshots>

    </repository>

  </repositories>
  
  <pluginRepositories>
    <pluginRepository>
      <id>apache.snapshots.plugins</id>
      <name>Apache Snapshot Repository - Maven plugins</name>
      <url>http://repository.apache.org/snapshots</url>
      <layout>default</layout>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <checksumPolicy>fail</checksumPolicy>
        <updatePolicy>never</updatePolicy>        
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
  
  <build>
    <pluginManagement>
      <plugins>
        
        <!-- assembly plugin 
             Disable running assembly:assembly with
             warning message to use install instead -->
        <plugin> 
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2</version>
          <executions>
            <execution>
              <id>default-cli</id>
              <configuration>
                <descriptors>
                  <descriptor>do-not-use--mvn-assembly-assembly--instead-use-mvn-install</descriptor>
                </descriptors>
              </configuration>
            </execution>
            <!-- these next insure version 2.2 is used for these executions -->
            <!-- execution><id>source-release-assembly</id></execution>
            <execution><id>uima-distr</id></execution>
            <execution><id>binary-release</id></execution-->
          </executions>
        </plugin>
        
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.5</version>
        </plugin>
        
        <!-- set Java 1.5 as the source and target of compilation -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.3.1</version>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
            <!--encoding>UTF-8</encoding this inherited from apache pom 7 -->
          </configuration>
        </plugin>
        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.1</version>
        </plugin>
        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.1</version>
        </plugin>
      
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.7</version>
          <configuration>
            <source>5</source> <!-- needed to do Enums -->
            <encoding>UTF-8</encoding>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>          
              <goals><goal>jar</goal></goals>
              <!-- turn off javadoc build for each module by default 
                   override in individual cases to turn back on if wanted --> 
              <phase />            
              <configuration>
                <!-- if next is omitted, causes all projects in reactor that don't
                     already have full javadocs built, to have them built -->
                <detectOfflineLinks>false</detectOfflineLinks>
                <quiet>true</quiet>
                <!-- identify tags we use so we don't get warning messages for them -->
                <tags>
                  <tag>
                    <name>generated</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>ordered</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>modifiable</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>model</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>pre</name>
                    <placement>X</placement>
                  </tag>
                </tags>                
              </configuration>
            </execution>
            <execution>
              <id>javadocs-distr</id>          
              <configuration>
                <quiet>true</quiet>
                <!-- if next is omitted, causes all projects in reactor that don't
                     already have full javadocs built, to have them built -->
                <detectOfflineLinks>false</detectOfflineLinks>
                <!-- identify tags we use so we don't get warning messages for them -->
                <tags>
                  <tag>
                    <name>generated</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>ordered</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>modifiable</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>model</name>
                    <placement>X</placement>
                  </tag>
                  <tag>
                    <name>pre</name>
                    <placement>X</placement>
                  </tag>
                </tags>                
              </configuration>
            </execution>            
          </executions>          
        </plugin>
        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.3.1</version>
          <configuration>
            <archive>
              <manifestEntries>
                <Project-Title>Apache UIMA</Project-Title>
                <!-- Implementation-Title>${pom.name}</Implementation-Title from addDefaultImplementationEntries-->
                <!-- Implementation-Version>${pom.version}</Implementation-Version from addDefaultImplementationEntries-->
                <!-- Implementation-Vendor>Apache Software Foundation</Implementation-Vendor from addDefaultImplementationEntries-->
                <!-- also added by default: 
                       Implementation-Vendor-Id: ${pom.groupId} -->
                <Implementation-Url>${uimaWebsiteUrl}</Implementation-Url>
                <Implementation-License>http://www.apache.org/licenses/LICENSE-2.0.txt</Implementation-License>
                <Build-Date>${buildDateTime}</Build-Date>
              </manifestEntries>
              <manifest>
                <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.6</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.ant</groupId>
              <artifactId>ant</artifactId>
              <!-- version 1.8.0 seems to be incompatible with some part of maven or m2eclipse -->
              <version>1.7.1</version>
            </dependency>
            <dependency> <!-- for ant extension supporting "if" -->
              <groupId>ant-contrib</groupId>
              <artifactId>ant-contrib</artifactId>
              <version>1.0b3</version>
              <scope>runtime</scope>
            </dependency>
            <!-- next two enable <containsregexp> form for filesets -->
            <dependency>
              <groupId>ant</groupId>
              <artifactId>ant-apache-regexp</artifactId>
              <version>1.6.5</version>
            </dependency>
            <dependency>
              <groupId>jakarta-regexp</groupId>
              <artifactId>jakarta-regexp</artifactId>
              <version>1.4</version>
            </dependency>
          </dependencies>          
        </plugin>
      
        <!-- deprecated - move to m2eclipse, but keeping for now -->  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.7</version>
          <configuration>
            <downloadSources>true</downloadSources>
          </configuration>
        </plugin>
        
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <!-- version 2.0.0 fails -->
          <version>2.1.0</version>
          <extensions>true</extensions>
          <executions>
            <execution>
              <id>uima-bundle</id>
              <goals><goal>manifest</goal></goals>
              <phase>process-classes</phase>
            </execution>
          </executions>
        </plugin>
        
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.6</version>
          <executions>
            <execution>
              <id>default-cli</id>
              <goals><goal>check</goal></goals>
              <phase>verify</phase>
            </execution>
          </executions>
        </plugin>
        
        <!-- set release-plugin version to > than 2.0,
             needed for "flat" hierarchy support -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.1</version>         
          <configuration>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>deploy</goals>
            <arguments>-Papache-release</arguments>
          </configuration>
        </plugin>
        
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.4.3</version>
        </plugin>
        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.1.2</version>  
        </plugin>
        
        <!-- generate the issuesFixed report of Jiras fixed in this release -->
        <!-- uses the property "jiraVersion" to select the version -->
        <!-- run using mvn changes:jira-report -N -DjiraVersion=xxxxxx  where
             xxxxxx is the jira internal version number which you can get 
             from the Jira url (see parameter fixforversion=xxxxxx) 
             by going to https://issues.apache.org/jira/browse/UIMA 
             and selecting "Releases" and then going to the 
             particular version and looking in the url for
             that version. -->        
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changes-plugin</artifactId>
          <version>2.3</version>
          <executions>
            <execution>
              <id>default-cli</id>
              <goals><goal>jira-report</goal></goals>
              <!-- don't use generate-sources - because javadoc plugin re-exec's that -->
              <phase>generate-resources</phase>        
              <configuration>
                <fixVersionIds>${jiraVersion}</fixVersionIds>
                <columnNames>Type,Key,Summary</columnNames>
                <resolutionIds>Fixed</resolutionIds>
                <statusIds>Closed</statusIds>
                <sortColumnNames>Type, Key</sortColumnNames>
                <outputDirectory>${basedir}/issuesFixed/</outputDirectory>
                <maxEntries>1000</maxEntries> <!-- hopefully, bigger than ever needed -->
              </configuration>
            </execution>
          </executions>
        </plugin>      
                     
      </plugins>
    </pluginManagement>
    
    <plugins>
            
      <!-- sets the following properties:
            parsedVersion.majorVersion
            parsedVersion.minorVersion
            parsedVersion.incrementalVersion
            parsedVersion.qualifier
            parsedVersion.buildNumber
            parsedVersion.osgiVersion
      -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>parse-project-version</id>
            <goals><goal>parse-version</goal></goals>
            <configuration>
              <propertyPrefix>parsedVersion</propertyPrefix>
            </configuration>
          </execution>
        </executions>
      </plugin>
      
      <plugin>
        <groupId>org.apache.uima</groupId>
        <artifactId>uima-build-helper-maven-plugin</artifactId>
        <version>2</version>
        <executions>
          <execution>
            <id>set buildYear and buildMonth</id>
            <goals><goal>parse-date-time</goal></goals>
            <configuration>
              <parseSpecs>
                <parseSpec>
                  <name>buildYear</name>
                  <format>yyyy</format>
                </parseSpec>
                <parseSpec>
                  <name>buildMonth</name>
                  <format>MMMM</format>
                </parseSpec>                   
              </parseSpecs>
            </configuration>               
          </execution>
        </executions>
      </plugin>     

      <!-- this overrides the apache:7 pom to 
           use this resource bundle which
           allows additional text after the NOTICE file
           
           Note: putting this in the pluginManagement section
           fails to override the configuration from the
           Apache common parent pom -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <executions>      
          <execution>
            <goals><goal>process</goal></goals>
            <configuration>
              <resourceBundles>
                <resourceBundle>org.apache.uima:uima-build-resources:${uimaBuildResourcesVersion}</resourceBundle>
              </resourceBundles>
            </configuration>
          </execution>
        </executions>
      </plugin>
              
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <id>default-cli</id>
            <configuration>
              <excludes>
                <exclude>release.properties</exclude> <!-- generated file -->
                <exclude>README*</exclude>
                <exclude>RELEASE_NOTES*</exclude>
                <exclude>issuesFixed/**</exclude> <!-- generated file -->
                <exclude>src/main/resources/docbook-shared/titlepage/*.xsl</exclude>
                <exclude>marker-file-identifying-*</exclude> <!-- empty file -->
                <exclude>DEPENDENCIES</exclude>  <!-- generated file -->
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      
    </plugins>     
    
  </build>
  
  <!--reporting-->
  
  <profiles>
    
    <!-- ************************************************** -->
    <!-- * apache-release                                 * -->
    <!-- *   NOTE: This profile is activated while        * --> 
    <!-- *    running the Maven build pipeline, usually   * -->
    <!-- *      clean verify (for mvn release:prepare) or * -->
    <!-- *      deploy (for mvn release;perform),         * -->
    <!-- *    but is not activated for the                * -->
    <!-- *    outer execution for mvn release...          * -->
    <!-- *    on the pom being released                   * -->
    <!-- ************************************************** -->
    <!-- fix apache common pom --> 
    <profile>
      <id>apache-release</id>
      
      <build>
        <plugins>
        
          <!-- to support multi-module source-release builds -->
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <dependencies>            
              <dependency>
                <groupId>org.apache.uima</groupId>
                <artifactId>uima-build-resources</artifactId>
                <version>${uimaBuildResourcesVersion}</version>
                </dependency>
            </dependencies>
          </plugin>

          
          <!-- to run source plugin without forking -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>           
            <executions>           
              <execution>
                <id>attach-sources-nf</id>           
                <goals><goal>jar-no-fork</goal></goals>
              </execution>
              <execution>
                <id>attach-sources</id>
                <phase />  <!-- turn off the plain jar one -->
              </execution>             
            </executions>        
          </plugin>
          
        </plugins>
      </build>     
    </profile>
    
    <!-- **************************************** -->
    <!-- *   Produce Jira report                * -->
    <!-- **************************************** -->

    <profile>
      <id>mavenJirareport</id>
      <activation>
        <!-- NOTE: if you try to make this work more generally, by 
             using a marker file in all top-level release projects,
             this approach fails because for other top-level
             release projects, it substitutes the value of
             the jiraVersion property from the top level pom, not
             the pom being released.  So other release projects include
             this kind of profile within themselves, in a profile
             for "apache-release" triggered by name. -->
             
        <!-- It would be nice to have this only run when releasing, 
             but the activation clauses are currently only
             "ored" together, not "anded". -->
             
        <file><exists>marker-file-identifying-parent-pom</exists></file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-changes-plugin</artifactId>
            <executions>
              <execution>
                <id>default-cli</id>
                <configuration>
                  <fixVersionIds>${jiraVersion}</fixVersionIds>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <!-- **************************************** -->
    <!-- * Override - don't produce Jira report * -->
    <!-- **************************************** -->
    
    <!-- NOTE: if you use this, you MUST check in
         the generated Jira report into SVN, otherwise
         it won't appear in the release assemblies. -->
    
    <profile>
      <id>mavenJirareportSkip</id>
      <activation>
        <property>
          <name>maven.jiraReport.skip</name>
        </property>
      </activation>
      <build>
        <plugins>
          <!-- Skip jira report -->
          <plugin>
            <artifactId>maven-changes-plugin</artifactId>
            <executions>
              <execution>
                <id>default-cli</id> 
                <phase />
              </execution>
            </executions>  
          </plugin>
        </plugins>
      </build>

    </profile>
    
    <!-- ********************************** -->
    <!-- *   Docbook Processing           * -->
    <!-- ********************************** -->

  <!-- Skip docbook processing unless
       the leaf child project has a docbook directory -->  
    <profile>
      <id>process-docbook</id>
      <activation>
        <file><exists>src/docbook</exists></file>
      </activation>
     
      <dependencies>
        <!-- can't have a dependency in the parent pom - unless you want it
             inherited by all child poms -->
        <!-- dependency>
          <groupId>org.apache.uima</groupId>
          <artifactId>uima-build-resources</artifactId>
          <version>1-SNAPSHOT</version>
        </dependency -->
        
        <!-- having a dependency specified on 1-SNAPSHOT blocks release --> 
        <!--dependency>
          <groupId>org.apache.uima</groupId>
          <artifactId>${dolArtifactId}</artifactId>
          <type>zip</type>
          <classifier>${dolClassifier}</classifier>
          <version>1-SNAPSHOT</version>
        </dependency-->
      </dependencies>
      
      
      
      <build>
        <plugins>
                <!-- something to set some properties for dates used in copyright notices -->
          <!-- Works, but is slow due to loading groovy -->      
          <!--plugin>
             <groupId>org.codehaus.groovy.maven</groupId>
             <artifactId>gmaven-plugin</artifactId>
             <version>1.0</version>
             <executions>
                <execution>
                   <phase>prepare-package</phase>
                   <goals>
                      <goal>execute</goal>
                   </goals>
                   <configuration>
                      <source>
                      import java.util.Date 
                      import java.text.MessageFormat 
                      def varYear = MessageFormat.format("{0,date,yyyy}", new Date())
                      def varMonth = MessageFormat.format("{0,date,MMMMMMMMM}", new Date()) 
                      project.properties['buildYear'] = varYear
                      project.properties['buildMonth'] = varMonth
                      </source>
                   </configuration>
                </execution>
             </executions>
          </plugin-->
                    
          <!-- use the dependency:unpack goal to get the shared resource
               that has the docbook-shared directory 
               Unpack into spot relative to project - because
               these are referred to in docbook sources using
               relative references
               
               also unpack next to docbook-olink in
               repository location for olink info, because
               the site.xml files use relative location to
               get at the uima entities -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <!-- use the dependency:unpack goal to get the shared resource
                     that has the docbook-shared directory 
                     Unpack into spot relative to project - because
                     these are referred to in docbook sources using
                     relative references -->
                <id>copyDocbookInfo</id>
                <phase>prepare-package</phase>
                <goals><goal>unpack</goal></goals>
                <configuration>
                  <overWriteIfNewer>true</overWriteIfNewer>
                  <artifactItems>
                    <artifactItem>
                      <groupId>org.apache.uima</groupId>
                      <artifactId>uima-build-resources</artifactId>
                      <version>1-SNAPSHOT</version>
                      <includes>docbook-shared/**</includes>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>

              <execution>
                <!-- also unpack next to docbook-olink in
                     repository location for olink info, because
                     the site.xml files use relative location to
                     get at the uima entities -->
                <id>copyDocbookInfoNextToOlink</id>
                <phase>prepare-package</phase>
                <goals><goal>unpack</goal></goals>
                <configuration>
                  <overWriteIfNewer>true</overWriteIfNewer>
                  <markersDirectory>${dolRepo}/dependency-maven-plugin-markers</markersDirectory>
                  <artifactItems>
                    <artifactItem>
                      <groupId>org.apache.uima</groupId>
                      <artifactId>uima-build-resources</artifactId>
                      <version>1-SNAPSHOT</version>
                      <includes>docbook-shared/**</includes>
                      <outputDirectory>${dolRepo}</outputDirectory>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>

              <!-- use the dependency:unpack goal to get the
                   olink databases  -->
              <execution>
                <id>getOlink</id>
                <phase>prepare-package</phase>
                <goals><goal>unpack</goal></goals>
                <configuration>
                  <overWriteIfNewer>true</overWriteIfNewer>
                  <markersDirectory>${dolRepo}/dependency-maven-plugin-markers</markersDirectory>
                  <artifactItems>
                    <artifactItem>
                      <groupId>org.apache.uima</groupId>
                      <artifactId>${dolArtifactId}</artifactId>
                      <version>1-SNAPSHOT</version>
                      <type>zip</type>
                      <classifier>${dolClassifier}</classifier>
                      <outputDirectory>${dolUnzipped}</outputDirectory>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>                         
            </executions>
          </plugin> 
          
          <!--plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>unzipOlinkDbs</id>
                <goals><goal>run</goal></goals>
                <phase>prepare-package</phase>
                <configuration>
                  <tasks>
                    <unzip src="${dolRepo}/${dolZip}" dest="${dolRepo}/docbook-olink" overwrite="false" />
                  </tasks>
                </configuration>
              </execution>
            </executions>
          </plugin-->         
          
          <plugin>
            <groupId>com.agilejava.docbkx</groupId>
            <artifactId>docbkx-maven-plugin</artifactId>
            <version>2.0.11</version>
            <configuration>  <!-- general configuration for both html and pdf -->
              <sourceDirectory>${basedir}/src/docbook</sourceDirectory>
              <includes>${bookNameRoot}.xml</includes>
              <highlightSource>1</highlightSource>
              <xincludeSupported>true</xincludeSupported>
              <!-- olink common to pdf and html -->
              <collectXrefTargets>yes</collectXrefTargets>                  
            </configuration>
            <executions>
              <execution>
                <id>html</id>
                <goals>
                  <goal>generate-html</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                  <targetDirectory>${project.build.directory}/site/d</targetDirectory>
                  <htmlCustomization>${project.build.directory}/docbook-shared/top/html-single.xsl</htmlCustomization>
                  <!-- olink -->
                  <targetDatabaseDocument>file:///${dolUnzipped}/htmlsingle/site.xml</targetDatabaseDocument>              
                  <targetsFilename>${dolUnzipped}/htmlsingle/${bookNameRoot}.db</targetsFilename>
                </configuration>
              </execution>
              <execution>
                <id>pdf</id>
                <goals><goal>generate-pdf</goal></goals>
                <phase>package</phase>
                <configuration>
                  <!-- pdf: generate first in docbkx, then move.  
                       because pdf generates an extra temp file xxx.fo
                       which we want to keep a bit in target in case of debug need -->
                       
                  <foCustomization>${project.build.directory}/docbook-shared/top/pdf.xsl</foCustomization>
                  <!-- olink -->
                  <targetDatabaseDocument>file:///${dolUnzipped}/pdf/site.xml</targetDatabaseDocument>
                  <targetsFilename>${dolUnzipped}/pdf/${bookNameRoot}.db</targetsFilename>                 
                  
                  <fop1Extensions>true</fop1Extensions>
                      
                  <fontSelectionStrategy>character-by-character</fontSelectionStrategy>
                  
                  <fonts>
                    <!-- embedded fonts -->
                    <!--
                    This information must exactly match the font specified
                    in the fo file. Otherwise it will use a default font.
            
                    For example,
                    <fo:inline font-family="Arial" font-weight="bold" font-style="normal">
                        Arial-normal-normal font
                    </fo:inline>
                    for the font triplet specified by:
                    <font-triplet name="Arial" style="normal" weight="bold" />
            
                    If you do not want to embed the font in the pdf document
                    then do not include the "embed-url" attribute.
                    The font will be needed where the document is viewed
                    for it to be displayed properly.
            
                    possible styles: normal | italic | oblique | backslant
                    possible weights: normal | bold | 100 | 200 | 300 | 400
                                      | 500 | 600 | 700 | 800 | 900
                    (normal = 400, bold = 700)
                    -->
            
                    <!--
                    <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">
                      <font-triplet name="Arial" style="normal" weight="normal" />
                      <font-triplet name="ArialMT" style="normal" weight="normal" />
                    </font>
                    <font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf">
                      <font-triplet name="Arial" style="normal" weight="bold" />
                      <font-triplet name="ArialMT" style="normal" weight="bold" />
                    </font>
                    -->
                    
                    <!-- per UIMA-1051 - change to use standard Times Roman default PDF font -->
                    <!--font>
                      <name>Palatino</name>
                      <style>normal</style>
                      <weight>normal</weight>
                      <kerning>yes</kerning>
                      <embedFile>c:/Windows/Fonts/pala.TTF</embedFile>
                      <metricsFile>${project.build.directory}/docbook-shared/fonts/palatino.xml</metricsFile>
                    </font>
                    <font>
                      <name>Palatino</name>
                      <style>normal</style>
                      <weight>bold</weight>
                      <kerning>yes</kerning>
                      <embedFile>c:/Windows/Fonts/palab.TTF</embedFile>
                      <metricsFile>${project.build.directory}/docbook-shared/fonts/palatino-bold.xml</metricsFile>
                    </font>
                    <font>
                      <name>Palatino</name>
                      <style>italic</style>
                      <weight>normal</weight>
                      <kerning>yes</kerning>
                      <embedFile>c:/Windows/Fonts/palai.TTF</embedFile>
                      <metricsFile>${project.build.directory}/docbook-shared/fonts/palatino-italic.xml</metricsFile>
                    </font>
                    <font>
                      <name>Palatino</name>
                      <style>italic</style>
                      <weight>bold</weight>
                      <kerning>yes</kerning>
                      <embedFile>c:/Windows/Fonts/palabi.TTF</embedFile>
                      <metricsFile>${project.build.directory}/docbook-shared/fonts/palatino-bold-italic.xml</metricsFile>
                    </font-->
                    
                  </fonts>
                  <paperType>${pdfPaperType}</paperType>                 
                </configuration>
              </execution>          
            </executions>
    
            <dependencies>
              <dependency>
                <groupId>org.docbook</groupId>
                <artifactId>docbook-xml</artifactId>
                <version>4.4</version>
                <scope>runtime</scope>
              </dependency>
            </dependencies>   
          </plugin>
        
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <!-- copy the images to the html/images dir -->  
              <execution>
                <id>docbook-copy-images</id>
                <goals><goal>copy-resources</goal></goals>
                <phase>package</phase>
                <configuration>
                  <outputDirectory>${project.build.directory}/site/d/images</outputDirectory>
                  <resources>
                    <resource><directory>src/docbook/images</directory></resource>
                  </resources>
                </configuration>
              </execution>
              <!-- copy the css stylesheet to the html dir -->  
              <execution>
                <id>docbook-copy-css</id>
                <goals><goal>copy-resources</goal></goals>
                <phase>package</phase>
                <configuration>
                  <outputDirectory>${project.build.directory}/site/d/css</outputDirectory>
                  <resources>
                    <resource><directory>${project.build.directory}/docbook-shared/css</directory></resource>
                  </resources>
                </configuration>
              </execution>
              <!-- move the pdf from the docbkx to the site/d/ -->  
              <execution>
                <id>docbook-move-pdf</id>
                <goals><goal>copy-resources</goal></goals>  <!-- no "move" goal, use copy -->
                <phase>package</phase>
                <configuration>
                  <outputDirectory>${project.build.directory}/site/d</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${project.build.directory}/docbkx/pdf</directory>
                      <excludes><exclude>**.fo</exclude></excludes>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>           
        </plugins>                    
      </build>
    </profile>    
    <!-- ********************************** -->
    <!-- *   Build Standard PEAR          * -->
    <!-- ********************************** -->
    <profile>
      <id>build standard PEAR</id>
      <activation>
        <file>
          <exists>marker-file-identifying-standard-pear</exists>
        </file>
      </activation>
      <build>  
        
        <plugins>  
           <!-- populate the lib dir with all needed dependencies
             that will be distributed with this component
             
             NOTE: TRANSITIVE DEPENDENIES ARE NOT INCLUDED
                   ANYTHING YOU WANT INCLUDED IN THE JAR 
                   PLEASE LIST EXPLICITLY AND MODIFY THE LICENSE/NOTICE
                   APPROPRIATELY
              
             Runs during process-resources -->
                     
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <!-- Copy the dependencies to the target/assembly-bin folder for the PEAR to copy -->
              <execution>
                <id>copy dependencies to lib</id>
                <goals><goal>copy-dependencies</goal></goals>
                <phase>process-resources</phase>
                <configuration>
                  <outputDirectory>${pearPackagingDir}/lib</outputDirectory>
                  <includeScope>runtime</includeScope>
                  <excludeTransitive>true</excludeTransitive>
                </configuration>
              </execution>
            </executions>
          </plugin>
          
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              
              <!-- add the contents of desc if it exists to the jar.  
                   This puts the things like the WhitespaceTokenizer.xml file into the Jar
                   and makes it easier for users to run this, without installing a pear. 
                   The Tagger project uses this technique, for instance -->
              <execution>
                <id>copy desc so its contents can be found in Jar</id>
                <goals><goal>copy-resources</goal></goals>
                <phase>process-resources</phase>  <!-- required -->
                <configuration>
                  <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                  <resources>
                    <resource>
                      <directory>desc</directory>
                      <includes><include>**</include></includes>
                    </resource>
                  </resources>
                </configuration>
              </execution>
              
              <!-- copy the License/notice/readme/release/keys notes files into the Pear at the top level -->
              <execution>
                <id>Copy Pear Lic/Not/Readme/Relnotes</id>
                <goals><goal>copy-resources</goal></goals>
                <phase>process-resources</phase>
                <configuration>
                  <outputDirectory>${pearPackagingDir}</outputDirectory>
                  <resources>
                    <resource>
                      <directory>.</directory>
                      <includes>
                        <include>LICENSE*</include>
                        <include>NOTICE*</include>
                        <include>README*</include>
                        <include>readme*</include>
                        <include>RELEASE_NOTES*</include>
                        <include>ReleaseNotes*</include>
                      </includes>
                    </resource>
                  </resources>
                </configuration>
              </execution>
              
              <!-- copy generated Jar to pearPackaging/lib spot -->
              <execution>
                <id>copy standard sandbox target jar to pearPackaging/lib</id>
                <goals><goal>copy-resources</goal></goals>
                <phase>pre-integration-test</phase>  <!-- a phase after jar -->
                <configuration>
                  <outputDirectory>${pearPackagingDir}/lib</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${project.build.directory}</directory>
                      <includes><include>*.jar</include></includes>
                      <excludes><exclude>*-sources.jar</exclude></excludes>     
                    </resource>
                  </resources>
                </configuration>
              </execution>
              
              <!-- copy generated docbook artifacts to pearPackaging/doc folder -->        
              <execution>
                <id>copy generated docbook artifacts to pearPackaging/doc folder</id>
                <goals><goal>copy-resources</goal></goals>
                <phase>pre-integration-test</phase>  <!-- a phase after docbkx (package) phase -->
                <configuration>
                  <outputDirectory>${pearPackagingDir}/doc</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${project.build.directory}/docbkx</directory>
                      <excludes>
                        <exclude>**/*.fo</exclude>
                      </excludes>
                    </resource>
                  </resources>
                </configuration>
              </execution>          
            </executions>
          </plugin>
          
          <plugin>
	          <artifactId>maven-javadoc-plugin</artifactId>
	          <executions>
	            <execution>
	              <id>attach-javadocs</id>          
	              <!-- turn on javadoc build for each module --> 
	              <phase>package</phase> 
	            </execution>
	          </executions>           
          </plugin>
          
          <!-- build the PEAR -->
          <plugin>
            <groupId>org.apache.uima</groupId>
            <artifactId>PearPackagingMavenPlugin</artifactId>
            <version>2.3.0-incubating</version>
            <extensions>true</extensions>        
            <executions>
              <execution>
                <id>build uima annnotator Pear</id>
                <goals><goal>package</goal></goals>
                   <!-- needs to run after the jar is built
                        after docbooks are packaged and copied to pearPackaging/doc folder -->
                <phase>pre-integration-test</phase>
                <configuration> 
                  <datapath>$main_root/resources</datapath>
                  <componentId>${project.artifactId}</componentId>
                  <mainComponentDesc>${pearMainDescriptor}</mainComponentDesc>
                </configuration>
              </execution>
            </executions>
          </plugin>              
     
        </plugins>
        
      </build>
    </profile>
    
    <!-- ************************************ -->
    <!-- * Build Custom Binary Distribution * -->
    <!-- ************************************ -->
    <profile>
      <id>build distribution</id>
      <activation>
        <file><exists>src/main/assembly/bin.xml</exists></file>
      </activation>
      <build>
        <plugins>
          
	        <!-- assembly plugin 
	             configuration to create bin and src distributions
	             from conventional places -->
	        <plugin> 
	          <artifactId>maven-assembly-plugin</artifactId>
	          <executions>
	            <execution>
	              <id>uima-distr</id>
	              <goals><goal>single</goal></goals>
	              <phase>package</phase>
	              <configuration>
	                <descriptors>
	                  <descriptor>src/main/assembly/bin.xml</descriptor>
	                  <!-- next is replaced with more standard source-release assembly -->
	                  <!-- descriptor>src/main/assembly/src.xml</descriptor -->
	                </descriptors>
	                <finalName>${assemblyFinalName}</finalName>
	                <tarLongFileMode>gnu</tarLongFileMode>
	              </configuration>              
	            </execution>
	          </executions>
	        </plugin>
	        
        </plugins>                    
      </build>
    </profile>

    <!-- ************************************ -->
    <!-- *   Build Eclipse Plugin           * -->
    <!-- ************************************ -->
    <profile>
      <id>build eclipse plugins</id>
      <activation>
        <file>
          <exists>marker-file-identifying-eclipse-plugin</exists>
        </file>
      </activation>
      <build>
        <finalName>${project.artifactId}_${parsedVersion.osgiVersion}</finalName>         
                
        <!-- resources are "merged" -->
            <!-- needed to copy resources, icons, and the plugin.xml to the result -->
        <resources>
          <resource>
            <directory>.</directory>
            <includes>
              <include>plugin.xml</include>
              <include>icons/*.*</include>
            </includes>
          </resource>
          <!-- need the following, is not "merged" from the overall maven superPom -->
          <resource>
            <directory>src/main/resources</directory>
          </resource>
        </resources>
     
        <pluginManagement>
          
          <!-- run the felix plugin in manifest mode
               because that plugin doesn't resolve
               all properties e.g., parsedVersion.osgiVersion -->
          <plugins>
            <plugin>
              <groupId>org.apache.felix</groupId>
              <artifactId>maven-bundle-plugin</artifactId>
              <executions>
                <execution>
                  <id>uima-bundle</id>
                  <goals><goal>manifest</goal></goals>
                  <phase>process-classes</phase>
                  <configuration>
                    <!-- we put the generate manifest in the spot where Eclipse 
                         plugins think it will be -->
                   <manifestLocation>META-INF/</manifestLocation>
                  </configuration>
                </execution>
                <!-- turn off unneeded executions --> 
                <execution>
                  <id>default-deploy</id>
                  <phase />
                </execution>
                <execution>
                  <id>default-install</id>
                  <phase />
                </execution>
                <execution>
                  <id>default-bundle</id>
                  <phase />
                </execution>
              </executions>
            </plugin>
    
            <!-- pick up the manifest felix generates -->        
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jar-plugin</artifactId>
              <configuration>
                <archive>
                  <manifestFile>META-INF/MANIFEST.MF</manifestFile>
                </archive>
              </configuration>       
            </plugin>
    
            <!-- special eclipse:eclipse configuration for Eclipse plugins -->        
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-eclipse-plugin</artifactId>
              <!--  version set in parent-pom-top -->
              <configuration>
                <manifest>.ignore</manifest>
                <pde>true</pde>
                <!-- set next to false because refs to runtime project
                     as a project don't work (because it is a library project,
                     and has no sources of its own 
                  
                  A consequence of this: If you change code a plugin depends on,
                  run "mvn install" on the changed code to get your plugin to
                  pick up the changes 
                  -->
                <useProjectReferences>false</useProjectReferences>
              </configuration>
            </plugin>
                  
          </plugins>
        </pluginManagement>    
      </build>
    </profile>

    <!-- **************************************** -->
    <!-- * Build Simple Project Binary Assembly * -->
    <!-- **************************************** -->
    <!-- this profile holds common, factored-out settings for all 
     projects that are packaged as single projects
     (that is, not as multi-module projects), typically Sandbox projects.
     
     It builds, in addition to the standard artifacts and attachments,
     a binary artifact, which includes:
       - The main generated artifact, in the lib/ dir
       - dependent artifacts needed at runtime (not otherwise provided), in the lib/ dir
       - Lic/Not/Readme/releaseNotes from root dir 
       - generated documentation in the docs/ dir
     
     At release time the standard Apache parent builds the 
       - "source-release" artifact, and the
       - "javadocs" artifact
     
     Conventions:
     
       License/Notice for Jar: uses the standard license/notice
       License/Notice for bin: uses the custom files from project top level
       dependencies on other artifacts: 
         Specified as scope runtime or compile causes these to be included in the lib dir
       
    -->    
    <profile>
      <id>build simple project binary assembly</id>
      <activation>
        <file>
          <exists>marker-file-identifying-single-project</exists>
        </file>
      </activation>
      <build>        
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>          
                <!-- turn on javadoc build for each module --> 
                <phase>package</phase> 
              </execution>
            </executions>           
          </plugin>
            
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>binary-release</id> <!-- is "classifier" - match maven convention -->
                <goals><goal>single</goal></goals>
                <phase>pre-integration-test</phase>  <!-- after package, after jar & docbkx built -->
                <configuration>
                  <descriptorRefs>
                    <descriptorRef>
                      uima-single-project-bin
                    </descriptorRef>
                  </descriptorRefs>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.apache.uima</groupId>
                <artifactId>uima-build-resources</artifactId>
                <version>${uimaBuildResourcesVersion}</version>
              </dependency>
            </dependencies>
          </plugin>    
        </plugins>       
      </build>
    </profile>
        
  </profiles>
       
</project>