<?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>uima-ducc-parent</artifactId>
		<version>2.0.0</version>
		<relativePath>../uima-ducc-parent/pom.xml</relativePath>
	</parent>
	
    <!-- Inherits groupid and version from the parent pom project coordinates -->
    <!-- Uses default packaging ie. jar                                       -->
	<artifactId>uima-ducc-common</artifactId>
	
	<name>${uima.ducc} ${project.artifactId}</name>
 <!-- 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-common
    </connection>
	<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/sandbox/uima-ducc/tags/uima-ducc-2.0.0/uima-ducc-common
    </developerConnection>
	<url>
      http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/tags/uima-ducc-2.0.0/uima-ducc-common
    </url>
  </scm>

  <dependencies>
    <!-- Dependencies on other DUCC projects -->
	<dependency>
	  <groupId>org.apache.uima</groupId>
	  <artifactId>uimaj-core</artifactId>
	</dependency>

    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-as-core</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-camel</artifactId>
    </dependency>

    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
    </dependency>

    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
    </dependency>

    <dependency>
      <groupId>com.jcraft</groupId>
      <artifactId>jsch</artifactId>
    </dependency>

    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
    </dependency>

    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
    </dependency>

    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
    </dependency>

	<dependency>
	  <groupId>com.google.guava</groupId>
  	  <artifactId>guava</artifactId>
	</dependency>

    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-xstream</artifactId>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
	  <scope>test</scope>
    </dependency>

   <dependency>
    <groupId>org.apache.uima</groupId>
    <artifactId>uima-ducc-user</artifactId>
   </dependency>

  </dependencies>

</project>
	
