<?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.taverna.workbench</groupId>
		<artifactId>taverna-workbench</artifactId>
		<version>3.1.0-incubating-SNAPSHOT</version>
	</parent>
	<artifactId>activity-palette-impl</artifactId>
	<packaging>bundle</packaging>
	<name>Activity Palette Impl</name>
	<description>Activity Palette Implementation</description>
	<dependencies>
		<dependency>
			<groupId>${project.parent.groupId}</groupId>
			<artifactId>activity-palette-api</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>workflowmodel-api</artifactId>
			<version>${taverna.engine.version}</version>
		</dependency>
		<dependency>
			<groupId>net.sf.taverna.t2.lang</groupId>
			<artifactId>taverna-observer</artifactId>
			<version>${t2.lang.version}</version>
		</dependency>
		<dependency>
			<groupId>uk.org.taverna.configuration</groupId>
			<artifactId>taverna-configuration-api</artifactId>
			<version>${taverna.configuration.version}</version>
		</dependency>
		<dependency>
			<groupId>uk.org.taverna.configuration</groupId>
			<artifactId>taverna-app-configuration-api</artifactId>
			<version>${taverna.configuration.version}</version>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-beanutils</groupId>
			<artifactId>commons-beanutils</artifactId>
		</dependency>
		<dependency>
			<groupId>org.jdom</groupId>
			<artifactId>com.springsource.org.jdom</artifactId>
		</dependency>

		<!-- TODO Remove non-test impl dependency -->
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>workflowmodel-impl</artifactId>
			<version>${taverna.engine.version}</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>uk.org.taverna.configuration</groupId>
			<artifactId>taverna-configuration-impl</artifactId>
			<version>${taverna.configuration.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>uk.org.taverna.configuration</groupId>
			<artifactId>taverna-app-configuration-impl</artifactId>
			<version>${taverna.configuration.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>
