<?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.4.2-SNAPSHOT</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 UIMA Java SDK</description>
  <url>${uimaWebsiteUrl}</url>

  <scm>
    <connection>scm:git:https://github.com/apache/uima-uimaj/</connection>
    <developerConnection>scm:git:https://github.com/apache/uima-uimaj/</developerConnection>
    <url>https://github.com/apache/uima-uimaj/</url>
    <tag>uimaj-3.4.0</tag>
  </scm>

  <properties>
    <jiraVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}SDK</jiraVersion>
    <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-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>
    <!-- UIMA 3.4.1 has no issues from Jira -->
    <!-- module>uimaj-legacy-jira-report</module -->
  </modules>
  
  <build>
    <plugins>
      <!-- This JavaDoc 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> 
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>uima-distr</id>
            <configuration>
              <descriptors>
                <descriptor>${assemblyBinDescriptor}</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>
  
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <executions>
            <execution>
              <id>default-cli</id>
                <!-- default configuration -->
              <configuration>
                <excludes combine.children="append">
                  <exclude>marker-file-rc-auto-staging-module</exclude>
                  <!-- These markdown files cannot bear a license header -->
                  <exclude>NOTICE.md</exclude>
                  <exclude>src/main/bin_distr_license_notices/NOTICE.md</exclude>
                  <!-- These configuration files cannot bear a license header -->
                  <exclude>.github/**/*</exclude>
                  <exclude>src/main/eclipse/org.eclipse.jdt.core.prefs</exclude>
                  <exclude>src/main/eclipse/org.eclipse.jdt.ui.prefs</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>uima-doc-*/**</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-maven-p2-site/**</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>uimaj-legacy-jira-report/**</exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>dependency-checks</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <version>8.3.1</version>
            <executions>
              <execution>
               <goals><goal>check</goal></goals>
               </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <profile>
      <id>generate-changes-report</id>
      <activation>
        <file>
          <exists>marker-file-enabling-changes-report</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <!-- 
                 - Copies the legacy Jira issue report to the issuesFixed folder. We cannot simple
                 - configure the uimaj-legacy-jira-report module to write the report directly there
                 - because otherwise it woudl be cleaned during the clean phase of the root module.
                 -->
                <id>copy-legacy-jira-issues-report-to-issues-fixed-folder</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <!-- 
                      GitHub changes report is always generated, Jira only during release builds,
                      so it could be missing - hence failonerror="false"
                      -->
                    <copy todir="${basedir}/issuesFixed" failonerror="false">
                      <fileset dir="uimaj-legacy-jira-report/target/issuesFixed" />
                    </copy>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <profile>
      <id>apache-release-rc-auto-staging-config</id>
      <activation>
        <property>
          <name>!disable-rc-auto-staging</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
              <execution>
                <phase>install</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <mkdir dir="${staging-local-root}/${staging-folder}" />
                    <copy todir="${staging-local-root}/${staging-folder}">
                      <fileset dir="${project.build.directory}">
                        <include name="uimaj-${project.version}-*.zip" />
                        <include name="uimaj-${project.version}-*.zip.asc" />
                        <include name="uimaj-${project.version}-*.zip.sha512" />
                        <include name="uimaj-${project.version}-*.tar.gz" />
                        <include name="uimaj-${project.version}-*.tar.gz.asc" />
                        <include name="uimaj-${project.version}-*.tar.gz.sha512" />
                      </fileset>
                    </copy>
                    <copy todir="${staging-local-root}/${staging-folder}/eclipse-update-site">
                      <fileset dir="uimaj-eclipse-update-site/target/repository">
                        <include name="**/*" />
                      </fileset>
                    </copy>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
      
    <profile>
      <id>json-support</id>
      <activation>
        <!-- active by default, turn off via command line -P!json-support  -->
        <file><exists>pom.xml</exists></file>
      </activation>
      <properties>
        <assemblyBinDescriptor>src/main/assembly/bin.xml</assemblyBinDescriptor>  
      </properties>
      <modules>
        <module>uimaj-json</module>
      </modules>
    </profile>
  </profiles>
</project>
