<?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 pom serves as the release top level project,
     and for users wanting to build all of the
     base UIMA Java SDK
 -->

<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>uimaj-parent</artifactId>
    <version>3.1.0</version>
    <relativePath>uimaj-parent/pom.xml</relativePath>
  </parent>

  <artifactId>uimaj</artifactId>
  <packaging>pom</packaging>
  <name>Apache UIMA Java SDK: ${project.artifactId}</name>
  <description>The top project for the uimaj SDK</description>
  <url>${uimaWebsiteUrl}</url>

  <!-- Special inheritance note
       even though the <scm> element that follows is exactly the
       same as those in super poms, it cannot be inherited because
       there is some special code that computes the connection elements
       from the chain of parent poms, if this is omitted.

       Keeping this a bit factored allows cutting/pasting the <scm>
       element, and just changing the following two properties -->
  <scm>
    <connection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uv3/uimaj-v3/tags/uimaj-3.1.0
    </connection>
    <developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uv3/uimaj-v3/tags/uimaj-3.1.0
    </developerConnection>
    <url>
      https://svn.apache.org/viewvc/uima/uv3/uimaj-v3/tags/uimaj-3.1.0
    </url>
  </scm>

  <properties>
    <uimaScmProject>${project.artifactId}</uimaScmProject>
    <jiraVersion>3.1.0SDK</jiraVersion>   
    <assemblyFinalName>uimaj-${project.version}</assemblyFinalName> 
    <assemblyBinDescriptor>src/main/assembly/bin-without-jackson.xml</assemblyBinDescriptor> 
    <postNoticeText>${ibmNoticeText}</postNoticeText>    
  </properties>

  <!-- dependencies that go into the various builds via dependency-sets -->
  <!-- version is specified here -->
  <!-- default scope is compile -->
  <!-- Used for assemblies, to insure they're built *before* the assembly -->
  
  <!-- Note: as of 6/2013 it seems these dependencies may not be needed
       They are not up-to-date with all the subprojects, but that doesn't
       seem to matter.
       
       Consider deleting at some point -->
        
  <dependencies>
    <dependency>
      <groupId>org.apache.uima</groupId> 
      <artifactId>uimaj-adapter-vinci</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId> 
      <artifactId>uimaj-adapter-soap</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId> 
      <artifactId>uimaj-bootstrap</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-cpe</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-examples</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-tools</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-cas-editor</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-configurator</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-debug</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-jcasgen</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-pear-packager</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-runtime</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-cas-editor-ide</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-ep-launcher</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-json</artifactId>
      <version>${project.version}</version>
    </dependency>    
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-v3migration-jcas</artifactId>
      <version>${project.version}</version>
    </dependency>  
    <dependency>
      <groupId>org.bitbucket.mstrobel</groupId>
      <artifactId>procyon-core</artifactId>
      <version>0.5.32</version>
    </dependency>  
    <dependency>
      <groupId>org.bitbucket.mstrobel</groupId>
      <artifactId>procyon-compilertools</artifactId>
      <version>0.5.32</version>
    </dependency>  
    <dependency>    <!-- apache v2 license  2016 checked -->
      <groupId>com.github.javaparser</groupId>
      <artifactId>javaparser-core</artifactId>
      <version>3.2.2</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency> 
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
    </dependency>
       
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>${log4j.version}</version>
    </dependency>    
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${log4j.version}</version>
    </dependency>    
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>    
 
  </dependencies>

  
  <modules>
    <module>uimaj-parent</module>
    <module>aggregate-uimaj</module>
  </modules>
  
  <build>

    <plugins>

      <!-- This java doc config is for building the ones distributed with the bin packaging, and also 
           posted on our website.  It is not a complete javadoc - it only has user-level API info.
        
           There is another javadoc config in the parent POM that builds all the java docs - intended
           for use by developers (currently not used) 
           
           There is also a javadoc config for each individual maven Jar artifact -->
      
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>javadocs-distr</id> <!-- name should match one in parent-pom --> 
            <phase>prepare-package</phase>  <!-- must come before package which uses the results -->
            <!--phase>deploy</phase--> <!-- comment above and uncomment to disable javadocs, for testing/experimentation, with assembly:assembly-->
            <goals>
              <goal>javadoc</goal>
            </goals>
            <configuration> 
              <groups>
                <group>
                  <title>Packages</title>
                  <packages>*</packages>
                </group>
              </groups>
              <sourcepath>uimaj-core/src/main/java;uimaj-json/src/main/java;uimaj-document-annotation/src/main/java</sourcepath>
              <excludePackageNames>*.internal.*:*.impl.*</excludePackageNames>
              <!-- add a few classes in impl packages that are directly used by user code -->
              <additionalparam>
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASParsingException.java
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiSerializationSharedData.java
                ${basedir}/uimaj-core/src/main/java/org/apache/uima/cas/impl/Serialization.java                
                ${basedir}/uimaj-cpe/src/main/java/org/apache/uima/collection/impl/metadata/cpe/CpeDescriptorFactory.java
                ${basedir}/uimaj-cpe/src/main/java/org/apache/uima/collection/impl/cpm/engine/CPMChunkTimeoutException.java
              </additionalparam>
              <doctitle>Apache UIMA Java SDK ${project.version} User-Level API Documentation</doctitle>
              <windowtitle>Apache UIMA Java SDK ${project.version} User-Level API Documentation</windowtitle>
              <additionalDependencies>
							  <additionalDependency>
							    <groupId>com.fasterxml.jackson.core</groupId>
						      <artifactId>jackson-core</artifactId>
						      <version>${jackson.version}</version>
							  </additionalDependency>
							</additionalDependencies>
            </configuration>
          </execution>
        </executions>
      </plugin>
    
      <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <executions>
            <execution>
              <id>default-cli</id>
              <goals><goal>check</goal></goals>
              <phase>verify</phase>
              <!-- default configuration -->
              <configuration>
                <excludes combine.children="append">
                  <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 -->
                  <exclude>.idea/**</exclude>
                  
                  <!--  workaround https://issues.apache.org/jira/browse/RAT-97 -->
                  <exclude>aggregate-uimaj*/**</exclude>
                  <exclude>jVinci/**</exclude>
                  <exclude>PearPackagingMavenPlugin/**</exclude>
                  <exclude>jcasgen-maven-plugin/**</exclude>
                  <exclude>uima-docbook-*/**</exclude>
                  <exclude>uimaj-adapter-*/**</exclude>
                  <exclude>uimaj-component-test-util/**</exclude>
                  <exclude>uimaj-core/**</exclude>
                  <exclude>uimaj-cpe/**</exclude>
                  <exclude>uimaj-document-annotation/**</exclude>
                  <exclude>uimaj-eclipse-*/**</exclude>
                  <exclude>uimaj-ep-*/**</exclude>
                  <exclude>uimaj-examples/**</exclude>
                  <exclude>uimaj-test-util/**</exclude>
                  <exclude>uimaj-tools/**</exclude>
                  <exclude>uimaj-jet-expander/**</exclude>
                  <exclude>uimaj-bootstrap/**</exclude>
                  <exclude>uimaj-internal-tools/**</exclude>
                  <exclude>uimaj-json/**</exclude>
                  <exclude>uimaj-v3migration-jcas/**</exclude>
                  <exclude>src/main/bin_distr_license_notices/NOTICE-without-jackson</exclude>
               </excludes>
              </configuration>
            </execution>
          </executions>
      </plugin>
    
      <plugin> 
        <artifactId>maven-assembly-plugin</artifactId>
          <executions>
            <execution>
              <id>uima-distr</id>
                <configuration>
                  <descriptors>
                    <descriptor>${assemblyBinDescriptor}</descriptor>
                  </descriptors>
                </configuration>              
              </execution>
            </executions>
          </plugin>
         
     </plugins>
  </build>

  <profiles>
    <profile>
      <id>dependency-checks</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <version>2.1.1</version>
            <executions>
              <execution>
               <goals><goal>check</goal></goals>
               </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <profile>
      <id>apache-release</id>
      
      <build>
        <!-- Run jira report -->
        <!-- depends on having -DjiraVersion set -->
        <plugins>
          <plugin>
            <artifactId>maven-changes-plugin</artifactId>
            <executions>
              <execution>
                <id>default-cli</id>
                <configuration>
                  <fixVersionIds>${jiraVersion}</fixVersionIds>
                </configuration>
              </execution>
            </executions>  
          </plugin>
        </plugins>     
      </build>
    </profile>
    
    <profile>
      <id>json-support</id>
      <activation>
        <file><exists>pom.xml</exists></file>  <!-- active by default, turn off via command line -P!json-support  -->
      </activation>
      <properties>
        <assemblyBinDescriptor>src/main/assembly/bin.xml</assemblyBinDescriptor>  
      </properties>
      <modules>
        <module>uimaj-json</module>
      </modules>
    </profile>
  </profiles>    
    
</project>
