<?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.0.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/sandbox/uima-ducc/tags/uima-ducc-2.0.0/uima-ducc-parent
    </connection>
		<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/sandbox/uima-ducc/tags/uima-ducc-2.0.0/uima-ducc-parent
    </developerConnection>
		<url>
      http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/tags/uima-ducc-2.0.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>12328879</jiraVersion>
		<maven.build.timestamp.format>MM-dd-yyyy HH:mm</maven.build.timestamp.format>
		<ducc.version>${project.version}</ducc.version>
		<org.springframework.version>3.0.7.RELEASE</org.springframework.version>
		<org.apache.activemq.version>5.7.0</org.apache.activemq.version>
		<org.apache.camel.version>2.10.1</org.apache.camel.version>
		<!-- org.apache.uima.version>2.6.0</org.apache.uima.version Same as uima-as-->
		<org.apache.uima.as.version>2.6.0</org.apache.uima.as.version>
		<com.google.guava.version>r09</com.google.guava.version>
		<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.6.4</slf4j.version>
		<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.2</geronimo.servlet-spec.version>
		<xpp3.version>1.1.4c</xpp3.version>
		<xstream.version>1.3.1</xstream.version>   <!-- 1.4.3 requires xmlpull ?? -->
		<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>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>
        
		<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.aggregate</groupId>
				<artifactId>jetty-all-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>${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-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>

			<dependency>
				<groupId>org.apache.uima</groupId>
				<artifactId>uimaj-core</artifactId>
				<version>${org.apache.uima.as.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-core</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-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-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>commons-pool</groupId>
				<artifactId>commons-pool</artifactId>
				<version>${commons.pool.version}</version>
			</dependency>



			<dependency>
				<groupId>org.apache.geronimo.specs</groupId>
				<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.eclipse.jetty.aggregate</groupId>
				<artifactId>jetty-all-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>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-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>
				<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>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<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>**/*.aux</exclude>
										<exclude>uima-ducc-spawn/src/Makefile</exclude>
										<exclude>uima-ducc-examples/**</exclude>
										<exclude>uima-ducc-jd/**</exclude>
										<exclude>uima-ducc-orchestrator/**</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-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>
