  <!--
   ***************************************************************
   * 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>
	<groupId>org.apache.uima</groupId>
	<artifactId>uimaj-as-activemq</artifactId>
	<packaging>jar</packaging>
	<version>${uimaj-as-release-version}</version>
	<name>Apache UIMA Async Scaleout using ActiveMQ</name>
	<url>http://incubator.apache.org/uima</url>
	<parent>
		<groupId>org.apache.uima</groupId>
		<artifactId>uimaj-as</artifactId>
		<version>2.3.0-incubating</version> <!-- this comment is a flag for changeVersion -->
    <relativePath>../uimaj-as</relativePath>
	</parent>
	<dependencies>
		
	<!--dependency>
    	<groupId>commons-pool</groupId>
    	<artifactId>commons-pool</artifactId>
    	<version>1.2</version>
		<scope>compile</scope>
	</dependency--> 
		
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uimaj-core</artifactId>
			<version>${uimaj-release-version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
			<version>2.0.6</version>
		</dependency> 

		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>apache-activemq</artifactId>
			<version>4.1.1</version>
			<exclusions>
          <!-- exclude xstream 1.1.2 because it is broken 
               xstream 1.2.2 (the fixed version) is included in another pom -->
        <!--exclusion>
          <groupId>xstream</groupId>
          <artifactId>xstream</artifactId>
        </exclusion-->
      </exclusions>		
		</dependency> 

		<!--dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-core</artifactId>
			<version>4.1.1</version>
			<exclusions>
                    <exclusion>
                        <groupId>org.apache.activemq</groupId>
                        <artifactId>activemq-core</artifactId>
                    </exclusion>
           </exclusions>
		</dependency-->

		<!--dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-optional</artifactId>
			<version>4.1.1</version>
			<exclusions>
                    <exclusion>
                        <groupId>org.apache.activemq</groupId>
                        <artifactId>activemq-optional</artifactId>
                    </exclusion>
           </exclusions>
		</dependency-->

		<!--dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activeio-core</artifactId>
			<version>3.0.0-incubator</version>
		</dependency-->

		<!--dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-console</artifactId>
			<version>4.1.1</version>
		</dependency-->

		<!--dependency>
			<groupId>backport-util-concurrent</groupId>
			<artifactId>backport-util-concurrent</artifactId>
			<version>2.1</version>
		</dependency-->

		<!--dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-jaas</artifactId>
			<version>4.1.1</version>
		</dependency-->

		<!--dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-web</artifactId>
			<version>4.1.1</version>
		</dependency-->    

		<dependency>
			<groupId>mx4j</groupId>
			<artifactId>mx4j</artifactId>
			<version>2.1.1</version>
		</dependency>

   <!-- lib/optional -->

	<!--dependency>
		<groupId>commons-beanutils</groupId>
		<artifactId>commons-beanutils</artifactId>
		<version>1.6.1</version>
	</dependency-->
	
	<!--dependency>
		<groupId>commons-collections</groupId>
		<artifactId>commons-collections</artifactId>
		<version>2.1</version>
	</dependency-->

	<!--dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
		<version>1.2</version>
	</dependency-->

	<!--dependency>
		<groupId>commons-pool</groupId>
		<artifactId>commons-pool</artifactId>
		<version>1.2</version>
	</dependency-->

    <!--dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency-->

	<!--dependency>
		<groupId>org.apache.geronimo.specs</groupId>
		<artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
		<version>1.0</version>
	</dependency-->

	<!--dependency>
		<groupId>org.apache.geronimo.specs</groupId>
		<artifactId>geronimo-j2ee-jacc_1.0_spec</artifactId>
		<version>1.0</version>
	</dependency-->

	<!--dependency>
		<groupId>activemq</groupId>
		<artifactId>jmdns</artifactId>
		<version>1.0-RC2</version>
	</dependency-->

	<!--dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.12</version>
	</dependency-->

	<dependency>
		<groupId>mx4j</groupId>
		<artifactId>mx4j-remote</artifactId>
		<version>2.1.1</version>
	</dependency>

	<!--dependency>
		<groupId>mx4j</groupId>
		<artifactId>mx4j-tools</artifactId>
		<version>2.1.1</version>
	</dependency-->


		<dependency>
		    <groupId>org.apache.uima</groupId>
		    <artifactId>uimaj-as-core</artifactId>
			<version>${uimaj-as-release-version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
		    <groupId>org.apache.uima</groupId>
		    <artifactId>uimaj-as-jms</artifactId>
			<version>${uimaj-as-release-version}</version>
			<scope>compile</scope>
		</dependency>
		
		<!--dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>2.0.1</version>
		</dependency--> 

		<!--dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty</artifactId>
			<version>6.0.1</version>
		</dependency> 

		<dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty-util</artifactId>
			<version>6.0.1</version>
		</dependency>

		<dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>servlet-api-2.5</artifactId>
			<version>6.0.1</version>
		</dependency-->
		
		<!--dependency>
			<groupId>xmlpull</groupId>
			<artifactId>xmlpull</artifactId>
			<version>1.1.3.4d_b4_min</version>
		</dependency--> 
	
	
		<!--dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derby</artifactId>
			<version>10.1.1.0</version>
		</dependency-->
	
		<!--dependency>
			<groupId>org.apache.xbean</groupId>
			<artifactId>xbean-spring</artifactId>
			<version>2.8</version>
		</dependency-->

    <!-- testing dependencies -->
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-examples</artifactId>
      <version>${uimaj-release-version}</version>
      <scope>test</scope>
    </dependency>
		
    <!--dependency>
      <groupId>com.thoughtworks.xstream</groupId>
      <artifactId>xstream</artifactId>
      <version>1.2.2</version>
      <scope>test</scope>
    </dependency-->
    
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-test-util</artifactId>
      <version>${uimaj-release-version}</version>
      <scope>test</scope>
    </dependency>

	</dependencies>
	<build>
		<finalName>${artifactId}</finalName>
		<plugins>
		<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<argLine>-Xmx300M</argLine>
					<includes>
					   <include>**/TestUimaASBasic.java</include>
					</includes>
				</configuration>
		</plugin>		
	  </plugins>		
	</build>	
</project>