diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..da8dcd4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+.classpath
+.project
+.settings/
+target/
+.svn
+*.swp
+catalog-v001.xml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..211fa90
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,16 @@
+#   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.
+
+language: java
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..68c771a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,176 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a1ea022
--- /dev/null
+++ b/README.md
@@ -0,0 +1,24 @@
+# Parent POM 
+
+[![Build Status](https://travis-ci.org/taverna-incubator/incubator-taverna-maven-parent.svg)](https://travis-ci.org/taverna-incubator/incubator-taverna-maven-parent)
+
+Common Maven Parent for [all the other Apache Taverna repositories](http://taverna.incubator.apache.org/code/).
+ 
+Note that released Taverna modules might not use the same version of the parent, this is usually NOT an issue.
+
+
+Supplies Version number constants for all external Taverna dependencies.  
+
+Adds in shared Maven build and reporting steps.  
+
+List additional repositories to be used (mainly for OSGi/Spring dependencies).
+
+This does NOT contain a `<modules>` section so does NOT do Project Aggregation.
+
+This parent does NOT define the version of org.apache.taverna modules, that should
+be done within `<properties>` of each top-level project.
+
+## License
+
+Apache Taverna is distributed under the
+[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
diff --git a/checkstyle.xml b/checkstyle.xml
new file mode 100644
index 0000000..1f43dad
--- /dev/null
+++ b/checkstyle.xml
@@ -0,0 +1,46 @@
+<?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.
+-->
+
+<!DOCTYPE module PUBLIC
+  "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+  "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<module name="Checker">
+	<module name="TreeWalker">
+		<module name="LineLength">
+			<property name="max" value="200" />
+			<property name="severity" value="warning"/>
+		</module>
+		<module name="JavadocMethod">
+   			<property name="scope" value="public"/>
+   			<property name="allowUndeclaredRTE" value="true"/>
+   			<property name="severity" value="error"/>
+   			<property name="allowMissingParamTags" value="true"/>
+   			<property name="allowMissingThrowsTags" value="true"/>
+   			<property name="allowMissingReturnTag" value="true"/>
+   			<property name="allowMissingPropertyJavadoc" value="true"/>
+		</module>
+		<module name="JavadocType">
+   			<property name="scope" value="public"/>
+		</module>
+ 		<module name="ReturnCount">
+ 			<property name="severity" value="warning"/>
+ 		</module>
+	</module>
+	<module name="PackageHtml"/>
+</module>
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..dc76177
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,508 @@
+<?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</groupId>
+		  <artifactId>apache</artifactId>
+		  <version>14</version>
+	</parent>
+	<prerequisites>
+		<maven>3.2.0</maven>
+	</prerequisites>
+
+	<groupId>org.apache.taverna</groupId>
+	<artifactId>taverna-parent</artifactId>
+	<version>1-incubating-SNAPSHOT</version>
+	<packaging>pom</packaging>
+
+	<name>Apache Taverna (incubating) Maven parent</name>
+	<description>
+		General POM-file parent for Apache Taverna projects
+	</description>
+	<url>http://taverna.incubator.apache.org/</url>
+  <inceptionYear>2015</inceptionYear>
+  <mailingLists>
+    <mailingList>
+      <name>Apache Taverna Developer List</name>
+      <subscribe>dev-subscribe@taverna.incubator.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@taverna.incubator.apache.org</unsubscribe>
+      <post>dev@taverna.incubator.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/dev@taverna.incubator.apache.org/</otherArchive>
+        <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.taverna.dev</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>Apache Taverna Users List</name>
+      <subscribe>users-subscribe@taverna.incubator.apache.org</subscribe>
+      <unsubscribe>users-unsubscribe@taverna.incubator.apache.org</unsubscribe>
+      <post>users@taverna.incubator.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/incubator-taverna-users/</archive>
+      <otherArchives>
+        <otherArchive>http://www.mail-archive.com/users@taverna.incubator.apache.org/</otherArchive>
+        <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.taverna.users</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>Apache Taverna Commits</name>
+      <subscribe>commits-subscribe@taverna.incubator.apache.org</subscribe>
+      <unsubscribe>commits-unsubscribe@taverna.incubator.apache.org</unsubscribe>
+      <post>commits@taverna.incubator.apache.org</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/incubator-taverna-commits/</archive>
+    </mailingList>
+  </mailingLists>
+
+  <scm>
+    <!-- TODO: Replace with git.apache.org details :
+      <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-maven-parent.git</connection>
+      <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-maven-parent.git</developerConnection>
+      <url>https://git-wip-us.apache.org/repos/asf/incubator-taverna-maven-parent.git</url>
+    -->
+    <connection>scm:git:https://github.com/taverna-incubator/incubator-taverna-maven-parent.git</connection>
+    <developerConnection>scm:git:git@github.com:taverna-incubator/incubator-taverna-maven-parent.git</developerConnection>
+    <url>https://github.com/taverna-incubator/incubator-taverna-maven-parent</url>
+    <tag>HEAD</tag>
+</scm>
+
+
+
+	<properties>
+    <!-- override java version from Apache parent -->
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+
+    <!-- Version of dependencies
+         Note that in some cases these versions refer to a
+         springsource repackaging for OSGi, e.g.
+         com.springsource.org.jdom
+
+Do NOT put taverna.* versions in here, as we do not want
+to update taverna-parent whenever a taverna-* has been
+upgraded - this leads to recursive spaghetti.
+         -->
+<abdera.version>1.1.3</abdera.version>
+<activation.version>1.1.1</activation.version>
+<antlr.version>2.7.7</antlr.version>
+<apache.commons.csv.version>1.0.0.BUILD-20080106</apache.commons.csv.version>
+<apache.httpclient.version>4.2.6</apache.httpclient.version>
+<apache.httpcore.version>4.2.5</apache.httpcore.version>
+<aspectj.version>1.6.9</aspectj.version>
+<axis.jaxrpc.version>1.4</axis.jaxrpc.version>
+<axis.sggj.version>1.4</axis.sggj.version>
+<axis.version>1.4.0</axis.version>
+<axis.wsdl4j.version>1.5.1</axis.wsdl4j.version>
+<batik.version>1.7.0</batik.version>
+<bcprov.jdk16.version>1.46</bcprov.jdk16.version>
+<bsh.version>2.0.b5</bsh.version>
+<cglib.version>2.1.3</cglib.version>
+<commons.beanutils.version>1.9.2</commons.beanutils.version>
+<commons.cli.version>1.2.0</commons.cli.version>
+<commons.codec.version>1.7</commons.codec.version>
+<commons.collections.version>3.2.1</commons.collections.version>
+<commons.configuration.version>1.9</commons.configuration.version>
+<commons.dbcp.version>1.4</commons.dbcp.version>
+<commons.httpclient.version>3.1.0</commons.httpclient.version>
+<commons.io.version>2.4</commons.io.version>
+<commons.lang.version>2.5.0</commons.lang.version>
+<commons.logging.version>1.1.1</commons.logging.version>
+<commons.net.version>2.0.0</commons.net.version>
+<derbyclient.version>${derby.version}</derbyclient.version>
+<derbynet.version>${derby.version}</derbynet.version>
+<derbytools.version>${derby.version}</derbytools.version>
+<derby.version>10.5.1000001.764942</derby.version>
+<dom4j.version>1.6.1</dom4j.version>
+<elmo.version>1.5</elmo.version>
+<geronimo.spec.jta.version>1.0-M1</geronimo.spec.jta.version>
+<gson.version>1.4</gson.version>
+<hibernate.version>3.2.6.ga</hibernate.version>
+<htmlparser.version>1.4</htmlparser.version>
+<icu4j.version>3.4.4</icu4j.version>
+<jackson.version>2.3.3</jackson.version>
+<jai.imageio.core.standalone.version>1.2-pre-dr-b04-2011-07-04</jai.imageio.core.standalone.version>
+<javacsv.version>2.0</javacsv.version>
+<javahelp.version>2.0.02</javahelp.version>
+<javax.el.version>1.0.0</javax.el.version>
+<javax.servlet.jsp.version>2.1.0</javax.servlet.jsp.version>
+<javax.servlet.version>2.5.0</javax.servlet.version>
+<javax.transaction.version>1.1.0</javax.transaction.version>
+<javax.wsdl.version>1.6.1</javax.wsdl.version>
+<jaxb.version>2.2.11</jaxb.version>
+<jaxen.version>1.1.1</jaxen.version>
+<jaxp.ri.version>1.4</jaxp.ri.version>
+<jaxws.api.version>2.1</jaxws.api.version>
+<jdom.version>1.1.0</jdom.version> <!-- com.springsource.org.jdom -->
+<jedit.syntax.version>2.2.5</jedit.syntax.version>
+<jena.version>2.12.1</jena.version>
+<jetty.version>6.1.24</jetty.version>
+<jmimemagic.version>0.1.2</jmimemagic.version>
+<jmoby.version>1.1.5-taverna</jmoby.version>
+<jsch.version>1.0.6.RELEASE</jsch.version>
+<json.lib.version>2.3</json.lib.version>
+<jsonld.version>0.5.1</jsonld.version>
+<junit.version>4.11</junit.version>
+<log4j.version>1.2.17</log4j.version>
+<mail.version>1.4.1</mail.version>
+<martj.version>0.6</martj.version>
+<mimeutil.version>2.1.2-6</mimeutil.version>
+<mockito.version>1.9.5</mockito.version>
+<mysql.connector.java.version>5.1.13</mysql.connector.java.version>
+<odfdom.version>0.7</odfdom.version>
+<!-- <odfdom.version>0.8.8-incubating</odfdom.version>-->
+<opencsv.version>2.1</opencsv.version>
+<opm.version>1.1.8</opm.version>
+<org.fife.ui.hexeditor.version>1.0.2011-07-04</org.fife.ui.hexeditor.version>
+<org.icepdf.version>4.1.1-taverna</org.icepdf.version>
+<org.rosuda.version>200910</org.rosuda.version>
+<org.xhtmlrenderer.core-renderer.version>R8pre2</org.xhtmlrenderer.core-renderer.version>
+<osgi.core.version>4.3.1</osgi.core.version>
+<osgi.enterprise.version>4.2.0</osgi.enterprise.version>
+<osgi.equinox.version>3.8.0.v20120529-1548</osgi.equinox.version>
+<osgi.launcher.version>0.1.1-SNAPSHOT</osgi.launcher.version>
+<osgi.services.version>0.1.2-SNAPSHOT</osgi.services.version>
+<poi.ooxml.version>3.6</poi.ooxml.version>
+<poi.version>3.6</poi.version>
+<santuario.xmlsec.version>1.5.7</santuario.xmlsec.version>
+<saxpath.version>1.0-FCS</saxpath.version>
+<servletapi.version>2.5</servletapi.version>
+<sesame.version>2.7.0</sesame.version>
+<simple-jndi.version>0.11.1</simple-jndi.version>
+<slf4j.version>1.7.6</slf4j.version>
+<spring.dm.version>2.0.0.M1</spring.dm.version>
+<spring.version>3.0.5.RELEASE</spring.version>
+<stax.version>1.0</stax.version>
+<tupelo.version>2.6</tupelo.version>
+<velocity.version>1.7</velocity.version>
+<xalan.version>2.7.1</xalan.version>
+<xerces.version>2.9.1</xerces.version>
+<xmlbeans.version>2.4.0</xmlbeans.version>
+<xml.rpc.version>1.1.0</xml.rpc.version>
+<xstream.version>1.4.1</xstream.version>
+<wss4j.version>1.5.12</wss4j.version>
+	</properties>
+
+
+
+	<!-- Common (test) dependencies - keep this list short
+			and up to date! -->
+	<dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+	</dependencies>
+
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+			  <version>2.3.7</version>
+				<extensions>true</extensions>
+			</plugin>
+    <plugin>
+      <groupId>org.apache.maven.plugins</groupId>
+      <artifactId>maven-compiler-plugin</artifactId>
+      <configuration>
+        <source>${maven.compiler.source}</source>
+        <target>${maven.compiler.target}</target>
+      </configuration>
+    </plugin>
+		<plugin>
+			<groupId>org.apache.maven.plugins</groupId>
+			<artifactId>maven-source-plugin</artifactId>
+			<executions>
+				<execution>
+					<goals>
+						<goal>jar</goal>
+						<goal>test-jar</goal>
+					</goals>
+				</execution>
+			</executions>
+		</plugin>
+		<plugin>
+			<groupId>org.apache.maven.plugins</groupId>
+			<artifactId>maven-jar-plugin</artifactId>
+			<executions>
+				<execution>
+					<goals>
+						<goal>test-jar</goal>
+					</goals>
+				</execution>
+			</executions>
+		</plugin>
+		<plugin>
+			<groupId>org.apache.maven.plugins</groupId>
+			<artifactId>maven-surefire-plugin</artifactId>
+			<configuration>
+				<skip>false</skip>
+				<systemProperties>
+					<property>
+						<name>java.awt.headless</name>
+						<value>true</value>
+					</property>
+				</systemProperties>
+			</configuration>
+		</plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <resourceBundles>
+                <!-- Will generate META-INF/DEPENDENCIES META-INF/LICENSE META-INF/NOTICE -->
+                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+                <!-- Will generate META-INF/DISCLAIMER  -->
+                <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
+              </resourceBundles>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+		<plugin>
+			<groupId>org.apache.maven.plugins</groupId>
+			<artifactId>maven-release-plugin</artifactId>
+			<dependencies>
+	        <!-- Force upgrade to avoid https://jira.codehaus.org/browse/SCM-740 -->
+				<dependency>
+					<groupId>org.apache.maven.scm</groupId>
+					<artifactId>maven-scm-api</artifactId>
+					<version>1.9.2</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.maven.scm</groupId>
+					<artifactId>maven-scm-provider-gitexe</artifactId>
+					<version>1.9.2</version>
+				</dependency>
+			</dependencies>
+		</plugin>
+
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>0.11</version>
+        <executions>
+          <execution>
+            <id>rat-checks</id>
+            <phase>verify</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <excludes>
+            <!--
+            Text and Markdown files are typically used only for documentation purposes
+            and license declarations are usually spurious in these files since often they
+            will refer to the LICENSE/NOTICE for users to find the actual licenses
+            -->
+            <exclude>**/*.md</exclude>
+            <!--
+            META-INF services files can include comments but a license header would be
+            unecessarily clutter so we exclude these
+            -->
+            <exclude>**/META-INF/services/*</exclude>
+          </excludes>
+        </configuration>
+    </plugin>
+  </plugins>
+
+	<pluginManagement>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>${maven.compiler.source}</source>
+					<target>${maven.compiler.target}</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<!-- Force upgrade to avoid https://jira.codehaus.org/browse/SCM-740 -->
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-scm-plugin</artifactId>
+				<version>1.9.2</version>
+			</plugin>
+		</plugins>
+	</pluginManagement>
+	</build>
+	<reporting>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-checkstyle-plugin</artifactId>
+				<version>2.6</version>
+				<configuration>
+					<configLocation>
+						${basedir}/Rcheckstyle.xml
+					</configLocation>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-javadoc-plugin</artifactId>
+
+				<configuration>
+					<minmemory>128m</minmemory>
+					<maxmemory>512</maxmemory>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jxr-plugin</artifactId>
+				<version>2.2</version>
+			</plugin>
+		</plugins>
+	</reporting>
+
+  <pluginRepositories>
+    <pluginRepository>
+			<!-- TODO: Use Apache snapshot repo instead -->
+			<id>taverna-incubating</id>
+			<name>Taverna incubating Repository</name>
+        <url>http://repository.mygrid.org.uk/artifactory/incubator-snapshot-local/</url>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+			<snapshots />
+    </pluginRepository>
+    <pluginRepository>
+			<id>taverna-incubating-release</id>
+			<name>Taverna incubating test release</name>
+      <url>http://repository.mygrid.org.uk/artifactory/incubator-release-test/</url>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </pluginRepository>
+  </pluginRepositories>
+
+
+	<repositories>
+		<repository>
+			<!-- TODO: Use Apache snapshot repo instead -->
+			<id>taverna-incubating</id>
+			<name>Taverna incubating Repository</name>
+        <url>http://repository.mygrid.org.uk/artifactory/incubator-snapshot-local/</url>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+			<snapshots />
+		</repository>
+    <repository>
+			<!-- TODO: Use Apache snapshot repo instead -->
+			<id>taverna-incubating-release</id>
+			<name>Taverna incubating test release</name>
+      <url>http://repository.mygrid.org.uk/artifactory/incubator-release-test/</url>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+
+      <repository>
+        <snapshots>
+          <enabled>false</enabled>
+        </snapshots>
+        <id>bintray</id>
+        <name>bintray</name>
+        <url>http://dl.bintray.com/spring/jars</url>
+      </repository>
+
+      <repository>
+        <id>com.springsource.repository.bundles.release</id>
+        <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
+        <url>http://repository.springsource.com/maven/bundles/release</url>
+        <snapshots>
+          <enabled>false</enabled>
+        </snapshots>
+      </repository>
+      <repository>
+        <id>com.springsource.repository.bundles.external</id>
+        <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
+        <url>http://repository.springsource.com/maven/bundles/external</url>
+        <snapshots>
+          <enabled>false</enabled>
+        </snapshots>
+      </repository>
+
+<!--
+<repository>
+    <id>repository.spring.snapshot</id>
+    <name>Spring Snapshot Repository</name>
+    <url>http://repo.spring.io/snapshot</url>
+    <releases>
+      <enabled>false</enabled>
+    </releases>
+    <snapshots />
+</repository>
+
+also in Maven Central:
+<repository>
+    <id>repository.spring.release</id>
+    <name>Spring GA Repository</name>
+    <url>http://repo.spring.io/release</url>
+    <releases />
+    <snapshots>
+      <enabled>false</enabled>
+    </snapshots>
+</repository>
+
+-->
+<repository>
+    <id>repository.spring.milestone</id>
+    <name>Spring Milestone Repository</name>
+    <url>http://repo.spring.io/milestone</url>
+    <releases />
+    <snapshots>
+      <enabled>false</enabled>
+    </snapshots>
+</repository>
+
+
+	</repositories>
+
+
+	<distributionManagement>
+    <snapshotRepository>
+			<!-- TODO: Use Apache snapshot repo instead -->
+			<id>taverna-incubating</id>
+			<name>Taverna incubating Repository</name>
+      <url>http://repository.mygrid.org.uk/artifactory/incubator-snapshot-local/</url>
+    </snapshotRepository>
+    <repository>
+			<!-- TODO: Use Apache snapshot repo instead -->
+			<id>taverna-incubating-release</id>
+			<name>Taverna incubating test release</name>
+      <url>http://repository.mygrid.org.uk/artifactory/incubator-release-test/</url>
+    </repository>
+  </distributionManagement>
+
+</project>
