<?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</groupId>
		<artifactId>taverna-parent</artifactId>
		<version>1-incubating-SNAPSHOT</version>
	</parent>
	<groupId>org.apache.taverna.workbench</groupId>
	<artifactId>taverna-workbench</artifactId>
	<version>3.1.0-incubating-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>Apache Taverna Workbench</name>
  <description>Graphical workbench for editing and running Apache Taverna workflows</description>
  <properties>
    <taverna.language.version>0.15.0-incubating-SNAPSHOT</taverna.language.version>
    <taverna.osgi.version>0.2.0-incubating-SNAPSHOT</taverna.osgi.version>
    <taverna.engine.version>3.1.0-incubating-SNAPSHOT</taverna.engine.version>
    <taverna.commonactivities.version>2.1.0-incubating-SNAPSHOT</taverna.commonactivities.version>
  </properties>
	<modules>
    <module>taverna-dataflow-activity-ui</module>
    <module>taverna-disabled-activity-ui</module>
    <module>taverna-stringconstant-activity-ui</module>
    <module>taverna-unrecognized-activity-ui</module>
    <module>taverna-workbench-activity-icons-api</module>
    <module>taverna-workbench-activity-palette-api</module>
    <module>taverna-workbench-activity-palette-impl</module>
    <module>taverna-workbench-activity-palette-ui</module>
    <module>taverna-workbench-activity-tools</module>
    <module>taverna-workbench-configuration-api</module>
    <module>taverna-workbench-configuration-impl</module>
    <module>taverna-workbench-contextual-views</module>
    <module>taverna-workbench-contextual-views-api</module>
    <module>taverna-workbench-contextual-views-impl</module>
    <module>taverna-workbench-credential-manager-ui</module>
    <module>taverna-workbench-data-management-config-ui</module>
    <module>taverna-workbench-design-ui</module>
    <module>taverna-workbench-edits-api</module>
    <module>taverna-workbench-edits-impl</module>
    <module>taverna-workbench-file-api</module>
    <module>taverna-workbench-file-impl</module>
    <module>taverna-workbench-graph-model</module>
    <module>taverna-workbench-graph-view</module>
    <module>taverna-workbench-helper-api</module>
    <module>taverna-workbench-httpproxy-config</module>
    <module>taverna-workbench-iteration-strategy-ui</module>
    <module>taverna-workbench-loop-ui</module>
    <module>taverna-workbench-menu-api</module>
    <module>taverna-workbench-menu-impl</module>
    <module>taverna-workbench-menu-items</module>
    <module>taverna-workbench-monitor-view</module>
    <module>taverna-workbench-parallelize-ui</module>
    <module>taverna-workbench-perspective-biocatalogue</module>
    <module>taverna-workbench-perspective-design</module>
    <module>taverna-workbench-perspective-myexperiment</module>
    <module>taverna-workbench-perspective-results</module>
    <module>taverna-workbench-plugin-manager</module>
    <module>taverna-workbench-plugins-gui</module>
    <module>taverna-workbench-reference-ui</module>
    <module>taverna-workbench-renderers-api</module>
    <module>taverna-workbench-renderers-exts</module>
    <module>taverna-workbench-renderers-impl</module>
    <module>taverna-workbench-report-api</module>
    <module>taverna-workbench-report-explainer</module>
    <module>taverna-workbench-report-impl</module>
    <module>taverna-workbench-report-view</module>
    <module>taverna-workbench-results-view</module>
    <module>taverna-workbench-retry-ui</module>
    <module>taverna-workbench-run-ui</module>
    <module>taverna-workbench-selection-api</module>
    <module>taverna-workbench-selection-impl</module>
    <module>taverna-workbench-update-manager</module>
    <module>taverna-workbench-workbench-api</module>
    <module>taverna-workbench-workbench-impl</module>
    <module>taverna-workbench-workflow-explorer</module>
    <module>taverna-workbench-workflow-view</module>
		<module>taverna-beans</module>
		<module>taverna-io</module>
		<module>taverna-observer</module>
		<module>taverna-ui</module>
		<module>taverna-uibuilder</module>
  </modules>
  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench.git</developerConnection>
    <url>https://github.com/apache/incubator-taverna-workbench</url>
    <tag>HEAD</tag>
  </scm>
  <repositories>
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

</project>
