<?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.1.0</version>
	<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/tags/uima-ducc-2.1.0/uima-ducc-parent
    </connection>
		<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uima-ducc/tags/uima-ducc-2.1.0/uima-ducc-parent
    </developerConnection>
		<url>
      http://svn.apache.org/viewvc/uima/uima-ducc/tags/uima-ducc-2.1.0/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>12333102</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.13.2</org.apache.activemq.version>
		<org.apache.camel.version>2.16.2</org.apache.camel.version>
		<org.apache.uima.version>2.8.1</org.apache.uima.version> <!--Same as uima-as-->
		<org.apache.uima.as.version>2.8.1</org.apache.uima.as.version>
		<!--org.apache.uima.as.version>2.8.1-SNAPSHOT</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.httpclient.version>4.3.5</commons.httpclient.version>
		<commons.httpcore.version>4.3.5</commons.httpcore.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>1.5.4</commons.pool.version>
		<geronimo.servlet-spec.version>1.0</geronimo.servlet-spec.version>

		<!--geronimo.servlet-spec.version>1.2</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.2.2</jna.version>
		<datatables.version>1.9.1</datatables.version>
		<jetty.version>9.2.13.v20150730</jetty.version>
		<!--jetty.version>7.4.4.v20110707</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.3.5</http.commons.client.version>
		<http.commons.client-cache.version>4.3.5</http.commons.client-cache.version>
		<http.commons.core.version>4.3.2</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-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>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>commons-pool</groupId>
				<artifactId>commons-pool</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>commons-pool</groupId>
				<artifactId>commons-pool</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>


		  <!-- 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/issuesFixed/**/*</exclude>
									</excludes>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

	</profiles>

</project>
