<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.    
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.apache.uima</groupId>
		<artifactId>parent-pom</artifactId>
		<version>10</version>
		<relativePath />
	</parent>

	<artifactId>uima-ducc-parent</artifactId>
	<version>2.2.1-SNAPSHOT</version>
        <name>${uima.ducc} ${project.artifactId}</name>
	<packaging>pom</packaging>
	<!-- Add project inception year. This is used by javadoc plugin   -->
	<!-- also used when generating NOTICE file for DUCC's jars -->
    <inceptionYear>2012</inceptionYear>
    
	<!-- 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:http://svn.apache.org/repos/asf/uima/uima-ducc/trunk/uima-ducc-parent
    </connection>
		<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uima-ducc/trunk/uima-ducc-parent
    </developerConnection>
		<url>
      http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-parent
    </url>
	</scm>

	<!-- The repositories section is duplicated from the parent pom one, and 
		adds the Apache Snapshot Nexus repository where UIMA snapshots are deployed. 
		This is needed if for instance, a project depends on some new SNAPSHOT level 
		of a build tool, where the users hasn't checked out the build tooling. This 
		allows maven to find the snapshots when looking for the parent of this pom -->
	<repositories>
		<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>

		<!-- this is needed if this pom refers to a snapshot of the parent -->
		<repository>
			<id>apache.snapshots</id>
			<name>Apache Snapshot Repository</name>
			<url>http://repository.apache.org/snapshots</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</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>

	<!-- Declare version numbers for all dependencies -->
	<properties>
	    <uima.ducc>Apache UIMA DUCC:</uima.ducc>
		<!-- Ducc jira version -->
		<jiraVersion>12339667</jiraVersion>
		<maven.build.timestamp.format>MM-dd-yyyy HH:mm</maven.build.timestamp.format>
		<ducc.version>${project.version}</ducc.version>
		<org.springframework.version>4.1.9.RELEASE</org.springframework.version>
		<org.apache.activemq.version>5.14.0</org.apache.activemq.version>
		<org.apache.camel.version>2.16.2</org.apache.camel.version>
		<org.apache.uima.version>2.9.0</org.apache.uima.version> <!--Same as uima-as-->
		<org.apache.uima.as.version>2.9.0</org.apache.uima.as.version>
		<com.google.guava.version>14.0.1</com.google.guava.version>        <!-- updated from r09 for cassandra -->
		<commons.cli.version>1.2</commons.cli.version>
		<joda.time.version>2.1</joda.time.version>
		<jsch.version>0.1.29</jsch.version>
		<commons.codec.version>1.2</commons.codec.version>
		<commons.collections.version>3.2.1</commons.collections.version>
		<commons.lang.version>2.6</commons.lang.version>
		<commons.math.version>2.0</commons.math.version>
		<log4j.version>1.2.16</log4j.version>
		<slf4j.version>1.7.6</slf4j.version>                <!-- updated from 1.6.4 for cassandra -->
		<xmlbeans.version>2.5.0</xmlbeans.version>
		<junit.version>4.8.2</junit.version>
		<servlet.api.version>2.5</servlet.api.version>
		<commons.management.version>1.0</commons.management.version>
		<commons.pool.version>2.4.2</commons.pool.version>
		<geronimo.servlet-spec.version>1.0</geronimo.servlet-spec.version>
		<xpp3.version>1.1.4c</xpp3.version>
		<xstream.version>1.4.8</xstream.version>   
		<xmlpull.version>1.1.3.1</xmlpull.version>
		<mina.core.version>1.1.7</mina.core.version>
		<aopalliance.version>1.0</aopalliance.version>
		<google.gson.version>2.2.2</google.gson.version>
		<cglib.version>2.2.0</cglib.version>
		<libpam.version>1.7</libpam.version>
		<jna.version>4.0.0</jna.version>
		<datatables.version>1.9.1</datatables.version>
		<jetty.version>9.2.13.v20150730</jetty.version>
		<orbit-org-apache-jasper.version>2.1.0.v201110031002</orbit-org-apache-jasper.version>
		<servlet-api.version>2.5</servlet-api.version>

        <!-- These are all cassandra client -->
        <cassandra.driver.version>2.1.8</cassandra.driver.version>
        <netty.version>4.0.27.Final</netty.version>
        <hdr.version>2.1.4</hdr.version>
        <metrics.version>3.0.2</metrics.version>
        <snappy.version>1.0.5</snappy.version>
        <lz4.version>1.3.0</lz4.version>
        <hdr.version>2.1.4</hdr.version>
        <!-- end of cassandra client -->
        <cassandra.server.version>2.1.11</cassandra.server.version>
        <apache.httpcomponents.httpclient.version>4.3.5</apache.httpcomponents.httpclient.version>
		<http.commons.client.version>4.5.1</http.commons.client.version>
		<http.commons.client-cache.version>4.3.5</http.commons.client-cache.version>
		<http.commons.core.version>4.4.4</http.commons.core.version>
        
        <!-- Needed for NOTICE file packaged in each jar under META-INF -->
        <projectTimeSpan>2012</projectTimeSpan>
        
        <!-- Needed for NOTICE file packaged in each jar under META-INF -->
		<uimaASNoticeText>
Portions of UIMA-AS 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-EE License Agreement".
Copyright (c) 2007, 2008 IBM Corporation
       </uimaASNoticeText>

        <!-- Needed for NOTICE file packaged in each jar under META-INF -->
       <uimaDUCCNoticeText>
Portions of UIMA-DUCC 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-DUCC License Agreement".
Copyright (c) 2012 IBM Corporation
      </uimaDUCCNoticeText>
      
        <!-- Needed for NOTICE file packaged in each jar under META-INF -->
		<postNoticeText>
${ibmNoticeText}

${uimaASNoticeText}

${uimaDUCCNoticeText}

		</postNoticeText>		

	</properties>

	<!-- dependencyManagement is a declaration section naming each artifact 
		and version the ducc components depend on. -->
	<dependencyManagement>
		<dependencies>

            <dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-server</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			
		    <dependency>
              <groupId>xpp3</groupId>
              <artifactId>xpp3</artifactId>
              <version>${xpp3.version}</version>
            </dependency>
            
            <dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpclient</artifactId>
              <version>${apache.httpcomponents.httpclient.version}</version>
            </dependency>


            <!--dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpclient</artifactId>
              <version>${http.commons.client.version}</version>
            </dependency-->
        
            <dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpclient-cache</artifactId>
              <version>${http.commons.client-cache.version}</version>
            </dependency>
            
            <dependency>
               <groupId>org.apache.httpcomponents</groupId>
               <artifactId>httpcore</artifactId>
               <version>${http.commons.core.version}</version>
             </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-cli</artifactId>
			    <version>${project.version}</version>
    		 </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-user</artifactId>
			    <version>${project.version}</version>
    		 </dependency>

		     <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-orchestrator</artifactId>
			    <version>${project.version}</version>
  		     </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-common</artifactId>
                <version>${project.version}</version>			
		     </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-container</artifactId>
                <version>${project.version}</version>			
		     </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-database</artifactId>
                <version>${project.version}</version>			
		     </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-transport</artifactId>
			    <version>${project.version}</version>
  		    </dependency>

             <dependency>
			    <groupId>org.apache.uima</groupId>
			    <artifactId>uima-ducc-sm</artifactId>
			    <version>${project.version}</version>
  		    </dependency>

			<dependency>
				<groupId>net.java.dev.jna</groupId>
				<artifactId>jna</artifactId>
				<version>${jna.version}</version>
			</dependency>
			
			<dependency>
				<groupId>org.kohsuke</groupId>
				<artifactId>libpam4j</artifactId>
				<version>${libpam.version}</version>
			</dependency>


			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>${google.gson.version}</version>

			</dependency>

			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
			</dependency>



			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>

			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>

			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.xmlbeans</groupId>
				<artifactId>xmlbeans</artifactId>
				<version>${xmlbeans.version}</version>
			</dependency>

			<dependency>
				<groupId>log4j</groupId>
				<artifactId>log4j</artifactId>
				<version>${log4j.version}</version>
			</dependency>

			<dependency>
				<groupId>commons-collections</groupId>
				<artifactId>commons-collections</artifactId>
				<version>${commons.collections.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-math</artifactId>
				<version>${commons.math.version}</version>
			</dependency>


			<dependency>
				<groupId>commons-lang</groupId>
				<artifactId>commons-lang</artifactId>
				<version>${commons.lang.version}</version>
			</dependency>

			<dependency>
				<groupId>com.jcraft</groupId>
				<artifactId>jsch</artifactId>
				<version>${jsch.version}</version>
			</dependency>

			<!-- dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> 
				<version>${http.client.version}</version> </dependency -->

			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>${commons.codec.version}</version>
			</dependency>

			<dependency>
				<groupId>commons-cli</groupId>
				<artifactId>commons-cli</artifactId>
				<version>${commons.cli.version}</version>
			</dependency>

			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${com.google.guava.version}</version>
			</dependency>

			<dependency>
				<groupId>joda-time</groupId>
				<artifactId>joda-time</artifactId>
				<version>${joda.time.version}</version>
			</dependency>

            <!-- cassandra RT -->
            <dependency>
              <groupId>io.netty</groupId>
              <artifactId>netty-handler</artifactId>
              <version>${netty.version}</version>
            </dependency>

            <dependency>
              <groupId>com.codahale.metrics</groupId>
              <artifactId>metrics-core</artifactId>
              <version>${metrics.version}</version>
            </dependency>
            
            <dependency>
	          <groupId>org.xerial.snappy</groupId>
	          <artifactId>snappy-java</artifactId>
              <version>${snappy.version}</version>
            </dependency>
            
            <dependency>
              <groupId>net.jpountz.lz4</groupId>
              <artifactId>lz4</artifactId>
              <version>${lz4.version}</version>
            </dependency>
            
            <dependency>
              <groupId>org.hdrhistogram</groupId>
              <artifactId>HdrHistogram</artifactId>
              <version>${hdr.version}</version>
            </dependency>

            <!-- end of cassandra RT -->

			<dependency>
				<groupId>org.apache.uima</groupId>
				<artifactId>uimaj-core</artifactId>
				<version>${org.apache.uima.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.uima</groupId>
				<artifactId>uimaj-as-core</artifactId>
				<version>${org.apache.uima.as.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.uima</groupId>
				<artifactId>uimaj-as-activemq</artifactId>
				<version>${org.apache.uima.as.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.uima</groupId>
				<artifactId>uimaj-as-jms</artifactId>
				<version>${org.apache.uima.as.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-server</artifactId>
				<version>${org.apache.activemq.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-client</artifactId>
				<version>${org.apache.activemq.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-web</artifactId>
				<version>${org.apache.activemq.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-camel</artifactId>
				<version>${org.apache.activemq.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-pool</artifactId>
				<version>${org.apache.activemq.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-jaas</artifactId>
				<version>${org.apache.activemq.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-core</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-context</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-http</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-http4</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

            <dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-http-common</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>
			
			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-jetty</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-jms</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-mina</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-servlet</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-test-spring</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-jetty-common</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-test</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-spring</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-stream</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-xmlbeans</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.camel</groupId>
				<artifactId>camel-xstream</artifactId>
				<version>${org.apache.camel.version}</version>
			</dependency>

            <dependency>
				<groupId>xmlpull</groupId>
				<artifactId>xmlpull</artifactId>
				<version>${xmlpull.version}</version>
			</dependency>
			
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-pool2</artifactId>
				<version>${commons.pool.version}</version>
			</dependency>



			<dependency>
				<groupId>org.apache.geronimo.specs</groupId>
				<artifactId>geronimo-servlet_3.0_spec</artifactId>
				<!--artifactId>geronimo-servlet_2.5_spec</artifactId-->
				<version>${geronimo.servlet-spec.version}</version>
			</dependency>

			<dependency>
				<groupId>com.thoughtworks.xstream</groupId>
				<artifactId>xstream</artifactId>
				<version>${xstream.version}</version>
			</dependency>

			<dependency>
				<groupId>org.apache.mina</groupId>
				<artifactId>mina-core</artifactId>
				<version>${mina.core.version}</version>
			</dependency>

			<!-- dependency>
				<groupId>aopalliance</groupId>
				<artifactId>aopalliance</artifactId>
				<version>${aopalliance.version}</version>
			</dependency -->

			<!--dependency>
				<groupId>commons-httpclient</groupId>
				<artifactId>commons-httpclient</artifactId>
				<version>${commons.httpclient.version}</version>
			</dependency -->

			<dependency>
			  <groupId>org.springframework</groupId>
			  <artifactId>spring-core</artifactId>
			  <version>${org.springframework.version}</version>
			</dependency>
		
		</dependencies>
	</dependencyManagement>

	<!-- runtime dependencies that must be included in the build -->

	<dependencies>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-pool2</artifactId>
			</dependency>

        <dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-server</artifactId>
		</dependency>
			
        <dependency>
           <groupId>xpp3</groupId>
           <artifactId>xpp3</artifactId>
        </dependency>

        <dependency>
           <groupId>org.apache.httpcomponents</groupId>
           <artifactId>httpclient</artifactId>
           <scope>runtime</scope>
        </dependency>
        
        <dependency>
           <groupId>xmlpull</groupId>
           <artifactId>xmlpull</artifactId>
           <scope>runtime</scope>
        </dependency>
        
        <dependency>
           <groupId>org.apache.httpcomponents</groupId>
           <artifactId>httpclient-cache</artifactId>
           <scope>runtime</scope>
        </dependency>
        
        <dependency>
           <groupId>org.apache.httpcomponents</groupId>
           <artifactId>httpcore</artifactId>
        </dependency>


		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-context</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-http4</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-http</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-http-common</artifactId>
		</dependency>


			<dependency>
				<groupId>org.apache.camel</groupId>
			<artifactId>camel-jetty-common</artifactId>
			<scope>runtime</scope>
		</dependency>


		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-mina</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-xmlbeans</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.mina</groupId>
			<artifactId>mina-core</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!-- the next 4 may not ne needed -->
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-servlet</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-test-spring</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-test</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-stream</artifactId>
			<scope>runtime</scope>
		</dependency>

	</dependencies>

	<build>
		<finalName>${project.artifactId}-${project.version}</finalName>
		<!-- pluginManagement>
		
			<plugins>
				
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement -->



		<!-- define common plugins that are shared by every pom -->
		<plugins>
		
		<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.4</version>
          <configuration>

            <source>${maven.compiler.source}</source>
            <javadocVersion>${maven.compiler.source}</javadocVersion> <!-- https://issues.apache.org/jira/browse/UIMA-5369 -->
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <configuration>
                <source>${maven.compiler.source}</source>
              </configuration>
            </execution>
            <execution>
              <id>default-cli</id>  <!-- Jenkins runs this apparently 3/2015 -->
              <configuration>
                <source>${maven.compiler.source}</source>
              </configuration>
            </execution>
          </executions>
        </plugin>
		
		  <!-- Get SVN revision number and include in the manifest.
		       Disable the check for local changes and the svn update -->
		  <plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>buildnumber-maven-plugin</artifactId>
			<version>1.4</version>
			<executions>
			  <execution>
				<phase>validate</phase>
				<goals>
				  <goal>create</goal>
				</goals>
			  </execution>
			</executions>
			<configuration>
			  <doCheck>false</doCheck>
			  <doUpdate>false</doUpdate>
			</configuration>
		  </plugin>


			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
			<!-- Each jar produced should have metadata attached to a Manifest -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<!-- index>true</index -->
						<manifest>
							<addClasspath>false</addClasspath>
						</manifest>
						<manifestEntries>
							<Ducc-Version>${project.version}</Ducc-Version>
							<Ducc-OS-Id>${os.name} ${os.arch} ${os.version}</Ducc-OS-Id>
							<Ducc-Bassedir>${basedir}</Ducc-Bassedir>
							<Ducc-Java-Vendor>${java.vendor}</Ducc-Java-Vendor>
							<Project-Title>Apache UIMA DUCC</Project-Title>
							<SCM-Revision>${buildNumber}</SCM-Revision>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
		</plugins>

	</build>



	<profiles>

		<!--profile>
                   currently disabled. It packages java source files but doesnt package xml and other resource files when building
                   causing runtime problems.  
			<id>bundle-source-code</id>
			<build>
                            <resources>
                               <resource>
                                   <directory>src/main/java</directory>
                                   <includes>
                                         <include>**/*.java</include>
                                    </includes>
                               </resource>
                                <resource>
                                   <directory>src</directory>
                                   <includes>
                                         <include>**/*.xml</include>
                                    </includes>
                               </resource>
                            </resources>
	                </build>
		</profile -->

		<profile>
			<id>apache-release</id>
			<build>
				<plugins>

					<!-- run Release Audit Tool (RAT) on src and bin distrs -->
					<plugin>
						<groupId>org.apache.rat</groupId>
						<artifactId>apache-rat-plugin</artifactId>
						<version>0.10</version>
						<executions>
							<execution>

								<id>default-cli</id>
								<configuration>

									<excludes combine.children="append">
										<!-- workaround https://issues.apache.org/jira/browse/RAT-97 -->
										<exclude>**/.settings/*</exclude>
										<exclude>**/keystore</exclude>
										<exclude>uima-ducc-agent/**</exclude>
										<exclude>uima-ducc-cli/**</exclude>
										<exclude>uima-ducc-common/**</exclude>
										<exclude>uima-ducc-duccdocs/**</exclude>
										<exclude>**/*.dict</exclude>
										<exclude>**/*.log</exclude>
										<exclude>.pydevproject</exclude>
										<exclude>**/*.out</exclude>
										<exclude>**/*.png</exclude>
										<exclude>**/*.jpg</exclude>
										<exclude>**/*.yaml</exclude>
										<exclude>**/crontab.txt</exclude>
										<exclude>**/*.tex</exclude>
										<exclude>**/Makefile</exclude>
										<exclude>uima-ducc-spawn/src/Makefile</exclude>
										<exclude>uima-ducc-examples/**</exclude>
										<exclude>uima-ducc-jd/**</exclude>
										<exclude>uima-ducc-orchestrator/**</exclude>
										<exclude>**/src/test/resources/**/*</exclude>
										<exclude>uima-ducc-parent/**</exclude>
										<exclude>uima-ducc-pm/**</exclude>
										<exclude>uima-ducc-rm/**</exclude>
										<exclude>uima-ducc-sm/**</exclude>
										<exclude>uima-ducc-spawn/**</exclude>
										<exclude>uima-ducc-transport/**</exclude>
										<exclude>uima-ducc-database/**</exclude>
										<exclude>uima-ducc-web/**</exclude>
										<exclude>uima-ducc-user/**</exclude>
										<exclude>uima-ducc-container/**</exclude>
										<exclude>**/src/main/webapp/root/opensources/**/*</exclude>
										<exclude>**/src/main/webapp/etc/**</exclude>
										<exclude>**/src/main/issuesFixed/**/*</exclude>
										<exclude>issuesFixed/jira-report.html</exclude>
									</excludes>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

	</profiles>

</project>
