<?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>apache-taverna-parent</artifactId>
		<version>4-incubating-SNAPSHOT</version>
	</parent>
	<groupId>org.apache.taverna.workbench.commonactivities</groupId>
	<artifactId>apache-taverna-workbench-commonactivities</artifactId>
	<version>3.1.0-incubating-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>Apache Taverna Workbench Common Activities</name>
  <description>User interface and Workbench integration for common activities</description>
  <properties>
    <taverna.language.version>0.15.1-incubating</taverna.language.version>
    <taverna.osgi.version>0.2.1-incubating</taverna.osgi.version>
    <taverna.engine.version>3.1.0-incubating</taverna.engine.version>
    <taverna.commonactivities.version>2.1.0-incubating</taverna.commonactivities.version>
    <taverna.workbench.version>3.1.0-incubating-SNAPSHOT</taverna.workbench.version>
  </properties>
  <modules>
    <module>taverna-beanshell-activity-ui</module>
    <module>taverna-external-tool-activity-ui</module>
    <module>taverna-localworker-activity-ui</module>
    <module>taverna-rest-activity-ui</module>
    <module>taverna-spreadsheet-import-activity-ui</module>
    <module>taverna-wsdl-activity-ui</module>
    <module>taverna-xpath-activity-ui</module>
  </modules>
  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-taverna-workbench-common-activities.git</connection>
    <developerConnection>scm:git:git@github.com:apache/incubator-taverna-workbench-common-activities.git</developerConnection>
    <url>https://github.com/apache/incubator-taverna-workbench-common-activities</url>
    <tag>HEAD</tag>
  </scm>

  <repositories>
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>https://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

</project>
