You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by re...@apache.org on 2015/03/23 17:38:34 UTC

[50/51] [partial] incubator-taverna-engine git commit:

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/java/net/sf/taverna/t2/activities/testutils/LocationConstants.java
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/java/net/sf/taverna/t2/activities/testutils/LocationConstants.java b/taverna-activity-test-utils/src/main/java/net/sf/taverna/t2/activities/testutils/LocationConstants.java
deleted file mode 100644
index c2c214d..0000000
--- a/taverna-activity-test-utils/src/main/java/net/sf/taverna/t2/activities/testutils/LocationConstants.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester   
- * 
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- * 
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *    
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *    
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.testutils;
-
-/**
- * A definition of constants for base locations of external resources used for testing.
- * 
- * @author Stuart Owen
- *
- */
-public interface LocationConstants {
-	public static final String WSDL_TEST_BASE="http://www.mygrid.org.uk/taverna-tests/testwsdls/";
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/ActivityInvoker.java
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/ActivityInvoker.java b/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/ActivityInvoker.java
new file mode 100644
index 0000000..c097896
--- /dev/null
+++ b/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/ActivityInvoker.java
@@ -0,0 +1,249 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.testutils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.ServiceLoader;
+
+import org.apache.taverna.reference.ExternalReferenceBuilderSPI;
+import org.apache.taverna.reference.ExternalReferenceSPI;
+import org.apache.taverna.reference.ExternalReferenceTranslatorSPI;
+import org.apache.taverna.reference.ReferenceService;
+import org.apache.taverna.reference.StreamToValueConverterSPI;
+import org.apache.taverna.reference.T2Reference;
+import org.apache.taverna.reference.ValueToReferenceConverterSPI;
+import org.apache.taverna.reference.impl.ErrorDocumentServiceImpl;
+import org.apache.taverna.reference.impl.InMemoryErrorDocumentDao;
+import org.apache.taverna.reference.impl.InMemoryListDao;
+import org.apache.taverna.reference.impl.InMemoryReferenceSetDao;
+import org.apache.taverna.reference.impl.ListServiceImpl;
+import org.apache.taverna.reference.impl.ReferenceServiceImpl;
+import org.apache.taverna.reference.impl.ReferenceSetAugmentorImpl;
+import org.apache.taverna.reference.impl.ReferenceSetServiceImpl;
+import org.apache.taverna.reference.impl.SimpleT2ReferenceGenerator;
+import org.apache.taverna.workflowmodel.processor.activity.AbstractAsynchronousActivity;
+import org.apache.taverna.workflowmodel.processor.activity.AsynchronousActivity;
+
+/**
+ * Helper class to facilitate in executing Activities in isolation.
+ * 
+ * @author Stuart Owen
+ * @author Alex Nenadic
+ * @author Stian Soiland-Reyes
+ * @author David Withers
+ */
+public class ActivityInvoker {
+
+	/**
+	 * Timeout in seconds
+	 */
+	public static long TIMEOUT = 30;
+
+	
+	/**
+	 * Invokes an {@link AsynchronousActivity} with a given set of input Objects
+	 * and returns a Map<String,Object> of requested output values.
+	 * 
+	 * @param activity
+	 *            the activity to be tested
+	 * @param inputs
+	 *            a Map<String,Object> of input Objects
+	 * @param requestedOutputs
+	 *            a List<String> of outputs to be examined
+	 * 
+	 * @return a Map<String,Object> of the outputs requested by requestedOutput
+	 *         or <code>null</code> if a failure occurs
+	 * @throws InterruptedException 
+	 * @throws Throwable 
+	 */
+/*	public static Map<String, Object> invokeAsyncActivity(
+			AbstractAsynchronousActivity<?> activity,
+			Map<String, Object> inputs, Map<String, Class<?>> requestedOutputs)
+			throws Exception {
+		Map<String, Object> results = new HashMap<String, Object>();
+
+		ApplicationContext context = new RavenAwareClassPathXmlApplicationContext(
+		"inMemoryActivityTestsContext.xml");
+		ReferenceService referenceService = (ReferenceService) context.getBean("t2reference.service.referenceService");
+
+		DummyCallback callback = new DummyCallback(referenceService);
+		Map<String, T2Reference> inputEntities = new HashMap<String, T2Reference>();
+		for (String inputName : inputs.keySet()) {
+			Object val = inputs.get(inputName);
+			if (val instanceof List) {
+				inputEntities.put(inputName, referenceService.register(val, 1, true, callback.getContext()));
+			} else {
+				inputEntities.put(inputName, referenceService.register(val, 0, true, callback.getContext()));
+			}
+		}
+
+		activity.executeAsynch(inputEntities, callback);
+		callback.thread.join();
+
+		if (callback.failed) {
+			results = null;
+		} else {
+			for (Map.Entry<String, Class<?>> output : requestedOutputs.entrySet()) {
+				T2Reference id = callback.data.get(output.getKey());
+				if (id != null) {
+					Object result;
+					result = referenceService.renderIdentifier(id, output.getValue(), callback.getContext());
+					results.put(output.getKey(), result);
+				}
+			}
+		}
+		return results;
+	}
+	*/
+
+	// Changed this method to render the T2Reference to an object only if the type of the object in 
+	// requestedOutputs is not an instance of ExternalReferenceSPI. Otherwise, the calling test method 
+	// should get activity ReferenceSet and render the object itself. This was needed for API consumer activity 
+	// testing - see ApiConsumerActivityTest.
+	// Also added support for multi-dimensional lists.
+	public static Map<String, Object> invokeAsyncActivity(
+			AbstractAsynchronousActivity<?> activity,
+			Map<String, Object> inputs, Map<String, Class<?>> requestedOutputs) throws InterruptedException
+			 {
+		
+		Map<String, Object> results = new HashMap<String, Object>();
+
+		ReferenceService referenceService = createReferenceService();
+		
+		DummyCallback callback = new DummyCallback(referenceService);
+		Map<String, T2Reference> inputEntities = new HashMap<String, T2Reference>();
+		for (String inputName : inputs.keySet()) {
+			Object val = inputs.get(inputName);
+			int depth = getDepth(val);
+			inputEntities.put(inputName, referenceService.register(val, depth, true, callback.getContext()));
+		}
+
+		activity.executeAsynch(inputEntities, callback);
+		callback.thread.join(TIMEOUT*1000);
+
+		
+		if (callback.failed) {
+			throw callback.failures.get(0);
+		} else {
+			for (Map.Entry<String, Class<?>> output : requestedOutputs.entrySet()) {
+				T2Reference id = callback.data.get(output.getKey());
+				if (ExternalReferenceSPI.class.isAssignableFrom(output.getValue())){
+					// Do not render the object - just resolve the T2Reference
+					Object result;
+					result = referenceService.resolveIdentifier(id, null, callback.getContext());
+					results.put(output.getKey(), result);
+				}
+				else{
+					// Try to render the object behind the reference
+					Object result;
+					result = referenceService.renderIdentifier(id, output.getValue(), callback.getContext());
+					results.put(output.getKey(), result);
+				}
+			}
+		}
+		return results;
+	}
+
+	private static ReferenceService createReferenceService() {
+		SimpleT2ReferenceGenerator referenceGenerator = new SimpleT2ReferenceGenerator();
+		ReferenceSetAugmentorImpl referenceSetAugmentor = new ReferenceSetAugmentorImpl();
+		referenceSetAugmentor.setBuilders((List<ExternalReferenceBuilderSPI<?>>) getBuilders());
+		referenceSetAugmentor.setTranslators(getTranslators());
+		
+		ReferenceSetServiceImpl referenceSetService = new ReferenceSetServiceImpl();
+		referenceSetService.setT2ReferenceGenerator(referenceGenerator);
+		referenceSetService.setReferenceSetDao(new InMemoryReferenceSetDao());
+		referenceSetService.setReferenceSetAugmentor(referenceSetAugmentor);
+		
+		ListServiceImpl listService = new ListServiceImpl();
+		listService.setT2ReferenceGenerator(referenceGenerator);
+		listService.setListDao(new InMemoryListDao());
+		
+		ErrorDocumentServiceImpl errorDocumentService = new ErrorDocumentServiceImpl();
+		errorDocumentService.setT2ReferenceGenerator(referenceGenerator);
+		errorDocumentService.setErrorDao(new InMemoryErrorDocumentDao());
+		
+		ReferenceServiceImpl referenceService = new ReferenceServiceImpl();
+		referenceService.setReferenceSetService(referenceSetService);
+		referenceService.setListService(listService);
+		referenceService.setErrorDocumentService(errorDocumentService);
+		referenceService.setConverters(getConverters());
+		referenceService.setValueBuilders(getValueBuilders());
+		
+		return referenceService;
+	}
+	
+	private static <T> List<T> getImplementations(Class<T> api) {
+		List<T> implementations = new ArrayList<T>();
+		ServiceLoader<T> serviceLoader = ServiceLoader.load(api);
+		for (T implementation : serviceLoader) {
+			implementations.add(implementation);
+		}
+		return implementations;
+	}
+	
+	private static List<StreamToValueConverterSPI> getValueBuilders() {
+		return getImplementations(StreamToValueConverterSPI.class);
+	}
+
+	private static List<ValueToReferenceConverterSPI> getConverters() {
+		return getImplementations(ValueToReferenceConverterSPI.class);
+	}
+
+	private static List<ExternalReferenceTranslatorSPI<?, ?>> getTranslators() {
+		List<ExternalReferenceTranslatorSPI<?, ?>> implementations = new ArrayList<ExternalReferenceTranslatorSPI<?, ?>>();
+		ServiceLoader<ExternalReferenceTranslatorSPI> serviceLoader = ServiceLoader.load(ExternalReferenceTranslatorSPI.class);
+		for (ExternalReferenceTranslatorSPI implementation : serviceLoader) {
+			implementations.add(implementation);
+		}
+		return implementations;
+	}
+
+	private static List<ExternalReferenceBuilderSPI<?>> getBuilders() {
+		List<ExternalReferenceBuilderSPI<?>> implementations = new ArrayList<ExternalReferenceBuilderSPI<?>>();
+		ServiceLoader<ExternalReferenceBuilderSPI> serviceLoader = ServiceLoader.load(ExternalReferenceBuilderSPI.class);
+		for (ExternalReferenceBuilderSPI implementation : serviceLoader) {
+			implementations.add(implementation);
+		}
+		return implementations;
+	}
+
+	/**
+	 * If an object is activity list - returns its depth, 0 otherwise (for single objects).
+	 * @param obj
+	 * @return
+	 */
+	private static int getDepth(Object obj){
+
+		if (obj instanceof List) {
+			// Assumes all sub-lists are of the same depth,
+			// so just uses the first sub-list to calculate it.
+			Object[] sublists = ((List<?>)obj).toArray();
+			int depth = 1;
+			depth = getDepth(sublists[0]) + 1;
+			return depth;
+		} else {
+			return 0;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/DummyCallback.java
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/DummyCallback.java b/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/DummyCallback.java
new file mode 100644
index 0000000..6797ff3
--- /dev/null
+++ b/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/DummyCallback.java
@@ -0,0 +1,105 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.testutils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.taverna.invocation.InvocationContext;
+import org.apache.taverna.invocation.impl.InvocationContextImpl;
+import org.apache.taverna.reference.ReferenceService;
+import org.apache.taverna.reference.T2Reference;
+import org.apache.taverna.workflowmodel.processor.activity.AsynchronousActivityCallback;
+import org.apache.taverna.workflowmodel.processor.dispatch.events.DispatchErrorType;
+
+import org.apache.log4j.Logger;
+
+/**
+ * A DummyCallback to aid with testing Activities.
+ * 
+ * @author Stuart Owen
+ * @author David Withers
+ * @author Stian Soiland-Reyes
+ *
+ */
+public class DummyCallback implements AsynchronousActivityCallback {
+	
+	private static Logger logger = Logger
+	.getLogger(DummyCallback.class);
+
+	public ReferenceService referenceService;
+	public InvocationContext invocationContext;
+	public Map<String, T2Reference> data;
+	public Thread thread;
+
+	public boolean failed = false;
+	
+	public List<RuntimeException> failures = new ArrayList<RuntimeException>();
+	
+	public DummyCallback(ReferenceService referenceService) {
+		this.referenceService = referenceService;
+		this.invocationContext = new InvocationContextImpl(referenceService, null);
+	}
+
+	public void fail(String message, Throwable t) {
+		fail(message, t, null);
+	}
+
+	public void fail(String message) {
+		fail(message, null, null);
+	}
+
+	public void fail(String message, Throwable t, DispatchErrorType arg2) {
+		failed = true;
+		failures.add(new RuntimeException(arg2+message, t));
+		logger.error("", t);
+	}
+	
+	/*public SecurityAgentManager getLocalSecurityManager() {
+		// TODO Auto-generated method stub
+		return null;
+	}*/
+
+	public void receiveCompletion(int[] completionIndex) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void receiveResult(Map<String, T2Reference> data,
+			int[] index) {
+		this.data = data;
+	}
+
+	public void requestRun(Runnable runMe) {
+		thread = new Thread(runMe);
+		thread.start();
+	}
+
+	public InvocationContext getContext() {
+		return invocationContext;
+	}
+
+	public String getParentProcessIdentifier() {
+		// TODO Auto-generated method stub
+		return "";
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/LocationConstants.java
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/LocationConstants.java b/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/LocationConstants.java
new file mode 100644
index 0000000..21f7e33
--- /dev/null
+++ b/taverna-activity-test-utils/src/main/java/org/apache/taverna/activities/testutils/LocationConstants.java
@@ -0,0 +1,30 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.testutils;
+
+/**
+ * A definition of constants for base locations of external resources used for testing.
+ * 
+ * @author Stuart Owen
+ *
+ */
+public interface LocationConstants {
+	public static final String WSDL_TEST_BASE="http://www.mygrid.org.uk/taverna-tests/testwsdls/";
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/componentservices.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/componentservices.xml b/taverna-activity-test-utils/src/main/resources/context-parts/componentservices.xml
index 36ac3e3..bf2b595 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/componentservices.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/componentservices.xml
@@ -11,17 +11,17 @@
 
 	<!-- t2 reference generator -->
 	<bean id="t2reference.referenceGenerator"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.SimpleT2ReferenceGenerator">
+		class="org.apache.taverna.reference.impl.SimpleT2ReferenceGenerator">
 		<property name="namespace" value="testNamespace" />
 	</bean>
 
 	<!-- reference set service -->
 	<bean id="t2reference.service.referenceSetService"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.ReferenceSetServiceImpl">
+		class="org.apache.taverna.reference.impl.ReferenceSetServiceImpl">
 		<property name="referenceSetDao">
 			<ref bean="t2reference.dao.referenceSetDao" />
 		</property>
@@ -34,35 +34,35 @@
 	</bean>
 
 	<bean id="t2reference.augmentor"
-		class="net.sf.taverna.t2.reference.impl.ReferenceSetAugmentorImpl"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		class="org.apache.taverna.reference.impl.ReferenceSetAugmentorImpl"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository">
 		<property name="builderRegistry">
 			<bean
-				class="net.sf.taverna.platform.spring.InstanceRegistryFactoryBean">
+				class="org.apache.taverna.platform.spring.InstanceRegistryFactoryBean">
 				<property name="spiRegistry">
 					<bean
-						class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+						class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 						<property name="repository">
 							<ref bean="raven.repository" />
 						</property>
 						<property name="spiClassName"
-							value="net.sf.taverna.t2.reference.ExternalReferenceBuilderSPI" />
+							value="org.apache.taverna.reference.ExternalReferenceBuilderSPI" />
 					</bean>
 				</property>
 			</bean>
 		</property>
 		<property name="translatorRegistry">
 			<bean
-				class="net.sf.taverna.platform.spring.InstanceRegistryFactoryBean">
+				class="org.apache.taverna.platform.spring.InstanceRegistryFactoryBean">
 				<property name="spiRegistry">
 					<bean
-						class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+						class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 						<property name="repository">
 							<ref bean="raven.repository" />
 						</property>
 						<property name="spiClassName"
-							value="net.sf.taverna.t2.reference.ExternalReferenceTranslatorSPI" />
+							value="org.apache.taverna.reference.ExternalReferenceTranslatorSPI" />
 					</bean>
 				</property>
 			</bean>
@@ -71,9 +71,9 @@
 
 	<!-- error document service -->
 	<bean id="t2reference.service.errorDocumentService"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.ErrorDocumentServiceImpl">
+		class="org.apache.taverna.reference.impl.ErrorDocumentServiceImpl">
 		<property name="errorDao">
 			<ref bean="t2reference.dao.errorDocumentDao" />
 		</property>
@@ -84,9 +84,9 @@
 
 	<!-- list service -->
 	<bean id="t2reference.service.listService"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.ListServiceImpl">
+		class="org.apache.taverna.reference.impl.ListServiceImpl">
 		<property name="listDao">
 			<ref bean="t2reference.dao.listDao" />
 		</property>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate.xml b/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate.xml
index 563eb96..8d6c845 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate.xml
@@ -11,7 +11,7 @@
 
 	<!-- An SPI-enabled hibernate session factory -->
 	<bean id="t2reference.orm.h3.sessionFactory"
-		class="net.sf.taverna.platform.spring.orm.hibernate3.SpiRegistryAwareLocalSessionFactoryBean">
+		class="org.apache.taverna.platform.spring.orm.hibernate3.SpiRegistryAwareLocalSessionFactoryBean">
 		<property name="dataSource">
 			<ref bean="t2reference.jdbc.datasource" />
 		</property>
@@ -27,7 +27,7 @@
 		<property name="mappingResources">
 			<list>
 				<value>
-					net/sf/taverna/t2/reference/AbstractExternalReference.hbm.xml
+					org/apache/taverna/reference/AbstractExternalReference.hbm.xml
 				</value>
 			</list>
 		</property>
@@ -40,60 +40,60 @@
 				<!-- This *must* go before the external reference SPI bean or   -->
 				<!-- those beans won't find the mapping for their superclasses  -->
 				<bean
-					class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+					class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 					<property name="repository">
 						<ref bean="raven.repository" />
 					</property>
 					<property name="spiClassName"
-						value="net.sf.taverna.t2.reference.h3.HibernateMappedEntity" />
+						value="org.apache.taverna.reference.h3.HibernateMappedEntity" />
 				</bean>
 				<!-- SPI used by the raven-aware hibernate session factory bean -->
 				<bean
-					class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+					class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 					<property name="repository">
 						<ref bean="raven.repository" />
 					</property>
 					<property name="spiClassName"
-						value="net.sf.taverna.t2.reference.ExternalReferenceSPI" />
+						value="org.apache.taverna.reference.ExternalReferenceSPI" />
 				</bean>
 			</list>
 		</property>
 		<property name="preloadRegistries">
 			<list>
 				<bean
-					class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+					class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 					<property name="repository">
 						<ref bean="raven.repository" />
 					</property>
 					<property name="spiClassName"
-						value="net.sf.taverna.t2.reference.h3.HibernateComponentClass" />
+						value="org.apache.taverna.reference.h3.HibernateComponentClass" />
 				</bean>
 			</list>
 		</property>
 	</bean>
 
 	<bean id="t2reference.dao.referenceSetDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.HibernateReferenceSetDao">
+		class="org.apache.taverna.reference.impl.HibernateReferenceSetDao">
 		<property name="sessionFactory">
 			<ref local="t2reference.orm.h3.sessionFactory" />
 		</property>
 	</bean>
 
 	<bean id="t2reference.dao.errorDocumentDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.HibernateErrorDocumentDao">
+		class="org.apache.taverna.reference.impl.HibernateErrorDocumentDao">
 		<property name="sessionFactory">
 			<ref local="t2reference.orm.h3.sessionFactory" />
 		</property>
 	</bean>
 
 	<bean id="t2reference.dao.listDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.HibernateListDao">
+		class="org.apache.taverna.reference.impl.HibernateListDao">
 		<property name="sessionFactory">
 			<ref local="t2reference.orm.h3.sessionFactory" />
 		</property>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate_transactional.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate_transactional.xml b/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate_transactional.xml
index 4823cf8..5336775 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate_transactional.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/dao_hibernate_transactional.xml
@@ -29,7 +29,7 @@
 
 	<!-- An SPI-enabled hibernate session factory -->
 	<bean id="t2reference.orm.h3.sessionFactory"
-		class="net.sf.taverna.platform.spring.orm.hibernate3.SpiRegistryAwareLocalSessionFactoryBean">
+		class="org.apache.taverna.platform.spring.orm.hibernate3.SpiRegistryAwareLocalSessionFactoryBean">
 		<property name="dataSource">
 			<ref bean="t2reference.jdbc.datasource" />
 		</property>
@@ -45,7 +45,7 @@
 		<property name="mappingResources">
 			<list>
 				<value>
-					net/sf/taverna/t2/reference/AbstractExternalReference.hbm.xml
+					org/apache/taverna/reference/AbstractExternalReference.hbm.xml
 				</value>
 			</list>
 		</property>
@@ -58,60 +58,60 @@
 				<!-- This *must* go before the external reference SPI bean or   -->
 				<!-- those beans won't find the mapping for their superclasses  -->
 				<bean
-					class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+					class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 					<property name="repository">
 						<ref bean="raven.repository" />
 					</property>
 					<property name="spiClassName"
-						value="net.sf.taverna.t2.reference.h3.HibernateMappedEntity" />
+						value="org.apache.taverna.reference.h3.HibernateMappedEntity" />
 				</bean>
 				<!-- SPI used by the raven-aware hibernate session factory bean -->
 				<bean
-					class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+					class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 					<property name="repository">
 						<ref bean="raven.repository" />
 					</property>
 					<property name="spiClassName"
-						value="net.sf.taverna.t2.reference.ExternalReferenceSPI" />
+						value="org.apache.taverna.reference.ExternalReferenceSPI" />
 				</bean>
 			</list>
 		</property>
 		<property name="preloadRegistries">
 			<list>
 				<bean
-					class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+					class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 					<property name="repository">
 						<ref bean="raven.repository" />
 					</property>
 					<property name="spiClassName"
-						value="net.sf.taverna.t2.reference.h3.HibernateComponentClass" />
+						value="org.apache.taverna.reference.h3.HibernateComponentClass" />
 				</bean>
 			</list>
 		</property>
 	</bean>
 
 	<bean id="t2reference.dao.referenceSetDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.TransactionalHibernateReferenceSetDao">
+		class="org.apache.taverna.reference.impl.TransactionalHibernateReferenceSetDao">
 		<property name="sessionFactory">
 			<ref local="t2reference.orm.h3.sessionFactory" />
 		</property>
 	</bean>
 
 	<bean id="t2reference.dao.errorDocumentDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.TransactionalHibernateErrorDocumentDao">
+		class="org.apache.taverna.reference.impl.TransactionalHibernateErrorDocumentDao">
 		<property name="sessionFactory">
 			<ref local="t2reference.orm.h3.sessionFactory" />
 		</property>
 	</bean>
 
 	<bean id="t2reference.dao.listDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.TransactionalHibernateListDao">
+		class="org.apache.taverna.reference.impl.TransactionalHibernateListDao">
 		<property name="sessionFactory">
 			<ref local="t2reference.orm.h3.sessionFactory" />
 		</property>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/dao_inmemory.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/dao_inmemory.xml b/taverna-activity-test-utils/src/main/resources/context-parts/dao_inmemory.xml
index bb1a790..20aabd2 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/dao_inmemory.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/dao_inmemory.xml
@@ -10,21 +10,21 @@
 	http://taverna.sf.net/schema/artifact-support/artifact-support.xsd">
 
 	<bean id="t2reference.dao.referenceSetDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.InMemoryReferenceSetDao">
+		class="org.apache.taverna.reference.impl.InMemoryReferenceSetDao">
 	</bean>
 
 	<bean id="t2reference.dao.errorDocumentDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.InMemoryErrorDocumentDao">
+		class="org.apache.taverna.reference.impl.InMemoryErrorDocumentDao">
 	</bean>
 
 	<bean id="t2reference.dao.listDao"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.InMemoryListDao">
+		class="org.apache.taverna.reference.impl.InMemoryListDao">
 	</bean>
 
 </beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/hibernateprops_derby.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/hibernateprops_derby.xml b/taverna-activity-test-utils/src/main/resources/context-parts/hibernateprops_derby.xml
index 39e812c..8230f26 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/hibernateprops_derby.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/hibernateprops_derby.xml
@@ -12,13 +12,13 @@
 
 	<!-- Apache Derby rooted at a temporary directory -->
 	<bean id="t2reference.jdbc.temporaryjdbc"
-		class="net.sf.taverna.platform.spring.jdbc.TemporaryJDBC">
+		class="org.apache.taverna.platform.spring.jdbc.TemporaryJDBC">
 	</bean>
 	<bean id="t2reference.jdbc.url" class="java.lang.String"
 		factory-bean="t2reference.jdbc.temporaryjdbc"
 		factory-method="getTemporaryDerbyJDBC" />
 	<bean id="t2reference.jdbc.datasource"
-		class="net.sf.taverna.platform.spring.jdbc.InterpolatingDriverManagerDataSource">
+		class="org.apache.taverna.platform.spring.jdbc.InterpolatingDriverManagerDataSource">
 		<property name="driverClassName">
 			<value>org.apache.derby.jdbc.EmbeddedDriver</value>
 		</property>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/raven_local.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/raven_local.xml b/taverna-activity-test-utils/src/main/resources/context-parts/raven_local.xml
index 94238a0..1462c26 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/raven_local.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/raven_local.xml
@@ -16,10 +16,10 @@
 		<system>
 			<!-- T2Reference API -->
 			<sys
-				artifact="net.sf.taverna.t2.core:reference-api:0.8" />
+				artifact="org.apache.taverna.core:reference-api:0.8" />
 
 			<!-- T2Platform -->
-			<sys artifact="net.sf.taverna.t2:platform:0.1" />
+			<sys artifact="org.apache.taverna:platform:0.1" />
 			<sys artifact="commons-logging:commons-logging:1.1.1" />
 
 			<!-- Raven -->

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-activity-test-utils/src/main/resources/context-parts/referenceservice.xml
----------------------------------------------------------------------
diff --git a/taverna-activity-test-utils/src/main/resources/context-parts/referenceservice.xml b/taverna-activity-test-utils/src/main/resources/context-parts/referenceservice.xml
index 3a37d1b..7f50c5b 100644
--- a/taverna-activity-test-utils/src/main/resources/context-parts/referenceservice.xml
+++ b/taverna-activity-test-utils/src/main/resources/context-parts/referenceservice.xml
@@ -11,9 +11,9 @@
 
 	<!-- Reference service bean -->
 	<bean id="t2reference.service.referenceService"
-		raven:artifact="net.sf.taverna.t2.core:reference-impl:2.0.1-SNAPSHOT"
+		raven:artifact="org.apache.taverna.core:reference-impl:2.0.1-SNAPSHOT"
 		raven:repository="raven.repository"
-		class="net.sf.taverna.t2.reference.impl.ReferenceServiceImpl">
+		class="org.apache.taverna.reference.impl.ReferenceServiceImpl">
 		<property name="referenceSetService">
 			<ref bean="t2reference.service.referenceSetService" />
 		</property>
@@ -25,30 +25,30 @@
 		</property>
 		<property name="converterRegistry">
 			<bean id="converterRegistry"
-				class="net.sf.taverna.platform.spring.InstanceRegistryFactoryBean">
+				class="org.apache.taverna.platform.spring.InstanceRegistryFactoryBean">
 				<property name="spiRegistry">
 					<bean
-						class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+						class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 						<property name="repository">
 							<ref bean="raven.repository" />
 						</property>
 						<property name="spiClassName"
-							value="net.sf.taverna.t2.reference.ValueToReferenceConverterSPI" />
+							value="org.apache.taverna.reference.ValueToReferenceConverterSPI" />
 					</bean>
 				</property>
 			</bean>
 		</property>
 		<property name="valueBuilderRegistry">
 			<bean
-				class="net.sf.taverna.platform.spring.InstanceRegistryFactoryBean">
+				class="org.apache.taverna.platform.spring.InstanceRegistryFactoryBean">
 				<property name="spiRegistry">
 					<bean
-						class="net.sf.taverna.platform.spring.SpiRegistryFactoryBean">
+						class="org.apache.taverna.platform.spring.SpiRegistryFactoryBean">
 						<property name="repository">
 							<ref bean="raven.repository" />
 						</property>
 						<property name="spiClassName"
-							value="net.sf.taverna.t2.reference.StreamToValueConverterSPI" />
+							value="org.apache.taverna.reference.StreamToValueConverterSPI" />
 					</bean>
 				</property>
 			</bean>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/ActivityService.java
----------------------------------------------------------------------
diff --git a/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/ActivityService.java b/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/ActivityService.java
index fe8adac..42a355d 100644
--- a/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/ActivityService.java
+++ b/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/ActivityService.java
@@ -22,7 +22,7 @@ package org.apache.taverna.platform.capability.api;
 import java.net.URI;
 import java.util.Set;
 
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
+import org.apache.taverna.workflowmodel.processor.activity.Activity;
 import org.apache.taverna.scufl2.api.port.InputActivityPort;
 import org.apache.taverna.scufl2.api.port.OutputActivityPort;
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/DispatchLayerService.java
----------------------------------------------------------------------
diff --git a/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/DispatchLayerService.java b/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/DispatchLayerService.java
index a6cfb53..e8db2b9 100644
--- a/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/DispatchLayerService.java
+++ b/taverna-capability-api/src/main/java/org/apache/taverna/platform/capability/api/DispatchLayerService.java
@@ -22,7 +22,7 @@ package org.apache.taverna.platform.capability.api;
 import java.net.URI;
 import java.util.Set;
 
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.DispatchLayer;
+import org.apache.taverna.workflowmodel.processor.dispatch.DispatchLayer;
 
 import com.fasterxml.jackson.databind.JsonNode;
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/activity/impl/ActivityServiceImpl.java
----------------------------------------------------------------------
diff --git a/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/activity/impl/ActivityServiceImpl.java b/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/activity/impl/ActivityServiceImpl.java
index 685b2bd..d5e5eab 100644
--- a/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/activity/impl/ActivityServiceImpl.java
+++ b/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/activity/impl/ActivityServiceImpl.java
@@ -24,10 +24,10 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
+import org.apache.taverna.workflowmodel.processor.activity.Activity;
+import org.apache.taverna.workflowmodel.processor.activity.ActivityFactory;
+import org.apache.taverna.workflowmodel.processor.activity.ActivityInputPort;
+import org.apache.taverna.workflowmodel.processor.activity.ActivityOutputPort;
 import org.apache.taverna.platform.capability.api.ActivityConfigurationException;
 import org.apache.taverna.platform.capability.api.ActivityNotFoundException;
 import org.apache.taverna.platform.capability.api.ActivityService;
@@ -72,7 +72,7 @@ public class ActivityServiceImpl implements ActivityService {
 		try {
 			if (configuration != null)
 				activity.configure(configuration);
-		} catch (net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException e) {
+		} catch (org.apache.taverna.workflowmodel.processor.activity.ActivityConfigurationException e) {
 			throw new ActivityConfigurationException(e);
 		}
 		return activity;
@@ -92,7 +92,7 @@ public class ActivityServiceImpl implements ActivityService {
 				inputPorts.add(inputActivityPort);
 			}
 			return inputPorts;
-		} catch (net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException e) {
+		} catch (org.apache.taverna.workflowmodel.processor.activity.ActivityConfigurationException e) {
 			throw new ActivityConfigurationException(e);
 		}
 	}
@@ -111,7 +111,7 @@ public class ActivityServiceImpl implements ActivityService {
 				outputActivityPort.setGranularDepth(port.getGranularDepth());
 				outputPorts.add(outputActivityPort);
 			}
-		} catch (net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException e) {
+		} catch (org.apache.taverna.workflowmodel.processor.activity.ActivityConfigurationException e) {
 			throw new ActivityConfigurationException(e);
 		}
 		return outputPorts;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/dispatch/impl/DispatchLayerServiceImpl.java
----------------------------------------------------------------------
diff --git a/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/dispatch/impl/DispatchLayerServiceImpl.java b/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/dispatch/impl/DispatchLayerServiceImpl.java
index ddad1e5..7057ba4 100644
--- a/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/dispatch/impl/DispatchLayerServiceImpl.java
+++ b/taverna-capability-impl/src/main/java/org/apache/taverna/platform/capability/dispatch/impl/DispatchLayerServiceImpl.java
@@ -25,8 +25,8 @@ import java.util.List;
 import java.util.Set;
 import java.util.logging.Logger;
 
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.DispatchLayer;
-import net.sf.taverna.t2.workflowmodel.processor.dispatch.DispatchLayerFactory;
+import org.apache.taverna.workflowmodel.processor.dispatch.DispatchLayer;
+import org.apache.taverna.workflowmodel.processor.dispatch.DispatchLayerFactory;
 import org.apache.taverna.platform.capability.api.DispatchLayerConfigurationException;
 import org.apache.taverna.platform.capability.api.DispatchLayerNotFoundException;
 import org.apache.taverna.platform.capability.api.DispatchLayerService;
@@ -80,7 +80,7 @@ public class DispatchLayerServiceImpl implements DispatchLayerService {
 		try {
 			if (configuration != null)
 				dispatchLayer.configure(configuration);
-		} catch (net.sf.taverna.t2.workflowmodel.ConfigurationException e) {
+		} catch (org.apache.taverna.workflowmodel.ConfigurationException e) {
 			throw new DispatchLayerConfigurationException(e);
 		}
 		return dispatchLayer;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-capability-impl/src/main/resources/META-INF/spring/taverna-capability-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-capability-impl/src/main/resources/META-INF/spring/taverna-capability-context-osgi.xml b/taverna-capability-impl/src/main/resources/META-INF/spring/taverna-capability-context-osgi.xml
index 8aa5619..fac253f 100644
--- a/taverna-capability-impl/src/main/resources/META-INF/spring/taverna-capability-context-osgi.xml
+++ b/taverna-capability-impl/src/main/resources/META-INF/spring/taverna-capability-context-osgi.xml
@@ -6,12 +6,12 @@
                                  http://www.springframework.org/schema/osgi
                                  http://www.springframework.org/schema/osgi/spring-osgi.xsd">
 
-	<service ref="activityService" interface="uk.org.taverna.platform.capability.api.ActivityService" />
+	<service ref="activityService" interface="org.apache.taverna.platform.capability.api.ActivityService" />
 
-	<list id="activityFactories" interface="net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory" cardinality="0..N" />
+	<list id="activityFactories" interface="org.apache.taverna.workflowmodel.processor.activity.ActivityFactory" cardinality="0..N" />
 
-	<service ref="dispatchLayerService" interface="uk.org.taverna.platform.capability.api.DispatchLayerService" />
+	<service ref="dispatchLayerService" interface="org.apache.taverna.platform.capability.api.DispatchLayerService" />
 
-	<list id="dispatchLayerFactories" interface="net.sf.taverna.t2.workflowmodel.processor.dispatch.DispatchLayerFactory" cardinality="0..N" />
+	<list id="dispatchLayerFactories" interface="org.apache.taverna.workflowmodel.processor.dispatch.DispatchLayerFactory" cardinality="0..N" />
 
 </beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager-impl/src/main/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImpl.java
----------------------------------------------------------------------
diff --git a/taverna-credential-manager-impl/src/main/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImpl.java b/taverna-credential-manager-impl/src/main/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImpl.java
index b0ada7c..e9a4052 100644
--- a/taverna-credential-manager-impl/src/main/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImpl.java
+++ b/taverna-credential-manager-impl/src/main/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImpl.java
@@ -65,9 +65,9 @@ import javax.net.ssl.X509ExtendedKeyManager;
 import javax.net.ssl.X509KeyManager;
 import javax.net.ssl.X509TrustManager;
 import static javax.security.auth.x500.X500Principal.RFC2253;
-import net.sf.taverna.t2.lang.observer.MultiCaster;
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
+import org.apache.taverna.lang.observer.MultiCaster;
+import org.apache.taverna.lang.observer.Observable;
+import org.apache.taverna.lang.observer.Observer;
 import org.apache.taverna.security.credentialmanager.CMException;
 import org.apache.taverna.security.credentialmanager.CredentialManager;
 import static org.apache.taverna.security.credentialmanager.CredentialManager.KeystoreType.KEYSTORE;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager-impl/src/main/resources/META-INF/spring/credential-manager-impl-context.xml
----------------------------------------------------------------------
diff --git a/taverna-credential-manager-impl/src/main/resources/META-INF/spring/credential-manager-impl-context.xml b/taverna-credential-manager-impl/src/main/resources/META-INF/spring/credential-manager-impl-context.xml
index 170c3ca..3351526 100644
--- a/taverna-credential-manager-impl/src/main/resources/META-INF/spring/credential-manager-impl-context.xml
+++ b/taverna-credential-manager-impl/src/main/resources/META-INF/spring/credential-manager-impl-context.xml
@@ -5,7 +5,7 @@
                            http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 	<bean id="credentialManager" init-method="installAuthenticator"
-		class="net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl">
+		class="org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl">
 		<property name="masterPasswordProviders" ref="masterPasswordProviders" />
 		<property name="javaTruststorePasswordProviders" ref="javaTruststorePasswordProviders" />
 		<property name="serviceUsernameAndPasswordProviders" ref="serviceUsernameAndPasswordProviders" />

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplIT.java
----------------------------------------------------------------------
diff --git a/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplIT.java b/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplIT.java
index 01b224b..6ef1e91 100644
--- a/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplIT.java
+++ b/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplIT.java
@@ -41,8 +41,8 @@ import java.util.Random;
 
 import javax.net.ssl.HttpsURLConnection;
 
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
+import org.apache.taverna.lang.observer.Observable;
+import org.apache.taverna.lang.observer.Observer;
 import org.apache.taverna.security.credentialmanager.CMException;
 import org.apache.taverna.security.credentialmanager.KeystoreChangedEvent;
 import org.apache.taverna.security.credentialmanager.MasterPasswordProvider;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplTest.java
----------------------------------------------------------------------
diff --git a/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplTest.java b/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplTest.java
index b0a3246..4662fd1 100644
--- a/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplTest.java
+++ b/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplTest.java
@@ -46,8 +46,8 @@ import java.util.Random;
 
 import javax.net.ssl.SSLSocketFactory;
 
-import net.sf.taverna.t2.lang.observer.Observable;
-import net.sf.taverna.t2.lang.observer.Observer;
+import org.apache.taverna.lang.observer.Observable;
+import org.apache.taverna.lang.observer.Observer;
 import org.apache.taverna.security.credentialmanager.CMException;
 import org.apache.taverna.security.credentialmanager.CredentialManager;
 import org.apache.taverna.security.credentialmanager.CredentialManager.KeystoreType;
@@ -225,7 +225,7 @@ public class CredentialManagerImplTest {
 	}
 	
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#CredentialManagerImpl()}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#CredentialManagerImpl()}.
 	 * @throws CMException 
 	 */
 	@Test
@@ -234,7 +234,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#getUsernameAndPasswordForService(java.net.URI, boolean, java.lang.String)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#getUsernameAndPasswordForService(java.net.URI, boolean, java.lang.String)}.
 	 * @throws URISyntaxException 
 	 * @throws CMException 
 	 */
@@ -252,7 +252,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#addUsernameAndPasswordForService(net.sf.taverna.t2.security.credentialmanager.UsernamePassword, java.net.URI)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#addUsernameAndPasswordForService(net.sf.taverna.t2.security.credentialmanager.UsernamePassword, java.net.URI)}.
 	 * @throws URISyntaxException 
 	 * @throws CMException 
 	 */
@@ -269,7 +269,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#hasUsernamePasswordForService(java.net.URI)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#hasUsernamePasswordForService(java.net.URI)}.
 	 * @throws CMException 
 	 */
 	@Test
@@ -287,7 +287,7 @@ public class CredentialManagerImplTest {
 	}
 	
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#deleteUsernameAndPasswordForService(java.net.URI)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#deleteUsernameAndPasswordForService(java.net.URI)}.
 	 * @throws URISyntaxException 
 	 * @throws CMException 
 	 */
@@ -305,7 +305,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#addKeyPair(java.security.Key, java.security.cert.Certificate[])}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#addKeyPair(java.security.Key, java.security.cert.Certificate[])}.
 	 * @throws CMException 
 	 * @throws KeyStoreException 
 	 * @throws NoSuchAlgorithmException 
@@ -327,7 +327,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#hasKeyPair(java.security.Key, java.security.cert.Certificate[])}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#hasKeyPair(java.security.Key, java.security.cert.Certificate[])}.
 	 * @throws CMException 
 	 * @throws KeyStoreException 
 	 * @throws NoSuchAlgorithmException 
@@ -344,7 +344,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#deleteKeyPair(java.lang.String)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#deleteKeyPair(java.lang.String)}.
 	 * @throws CMException 
 	 * @throws KeyStoreException 
 	 * @throws NoSuchAlgorithmException 
@@ -365,7 +365,7 @@ public class CredentialManagerImplTest {
 	}
 	
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#deleteKeyPair(Key, Certificate[])}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#deleteKeyPair(Key, Certificate[])}.
 	 * @throws CMException 
 	 */
 	@Test
@@ -377,7 +377,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#exportKeyPair(java.lang.String, java.io.File, java.lang.String)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#exportKeyPair(java.lang.String, java.io.File, java.lang.String)}.
 	 * @throws CMException 
 	 * @throws KeyStoreException 
 	 * @throws NoSuchAlgorithmException 
@@ -413,7 +413,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#getCertificate(java.lang.String, java.lang.String)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#getCertificate(java.lang.String, java.lang.String)}.
 	 * @throws CMException 
 	 */
 	@Test
@@ -434,7 +434,7 @@ public class CredentialManagerImplTest {
 	}
 
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#getKeyPairsCertificateChain(java.lang.String)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#getKeyPairsCertificateChain(java.lang.String)}.
 	 * @throws CMException 
 	 */
 	@Test
@@ -446,7 +446,7 @@ public class CredentialManagerImplTest {
 	}
 	
 	/**
-	 * Test method for {@link net.sf.taverna.t2.security.credentialmanager.impl.CredentialManagerImpl#getKeyPairsPrivateKey(java.lang.String)}.
+	 * Test method for {@link org.apache.taverna.security.credentialmanager.impl.CredentialManagerImpl#getKeyPairsPrivateKey(java.lang.String)}.
 	 * @throws CMException 
 	 */
 	@Test

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/HTTPAuthenticatorIT.java
----------------------------------------------------------------------
diff --git a/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/HTTPAuthenticatorIT.java b/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/HTTPAuthenticatorIT.java
index 1cf7c33..ac8e695 100644
--- a/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/HTTPAuthenticatorIT.java
+++ b/taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/HTTPAuthenticatorIT.java
@@ -62,7 +62,7 @@ import org.mortbay.jetty.webapp.WebAppContext;
 
 /**
  * 
- * Based on net.sf.tavenra.security.credentialmanager.FixedPasswordProvider from the
+ * Based on org.apache.tavenra.security.credentialmanager.FixedPasswordProvider from the
  * Taverna 2 codebase. 
  * 
  * @author Stian Soiland-Reyes

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/CredentialManager.java
----------------------------------------------------------------------
diff --git a/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/CredentialManager.java b/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/CredentialManager.java
index 3a6ec78..6099606 100644
--- a/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/CredentialManager.java
+++ b/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/CredentialManager.java
@@ -31,7 +31,7 @@ import java.util.List;
 
 import javax.net.ssl.SSLSocketFactory;
 
-import net.sf.taverna.t2.lang.observer.Observer;
+import org.apache.taverna.lang.observer.Observer;
 
 /**
  * Provides a wrapper for Taverna's Keystore and Truststore and implements

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/KeystoreChangedEvent.java
----------------------------------------------------------------------
diff --git a/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/KeystoreChangedEvent.java b/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/KeystoreChangedEvent.java
index 0a55930..6c74f59 100644
--- a/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/KeystoreChangedEvent.java
+++ b/taverna-credential-manager/src/main/java/org/apache/taverna/security/credentialmanager/KeystoreChangedEvent.java
@@ -23,7 +23,7 @@ import org.apache.taverna.security.credentialmanager.CredentialManager.KeystoreT
 
 /**
  * An event given to {@link CredentialManagerOld} observers registered using
- * {@link Observable#addObserver(net.sf.taverna.t2.lang.observer.Observer)} to
+ * {@link Observable#addObserver(org.apache.taverna.lang.observer.Observer)} to
  * let them know the Keystore or Truststore have been changed.
  * 
  * @author Alex Nenadic

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager/src/main/resources/META-INF/services/net.sf.taverna.t2.security.credentialmanager.CredentialProviderSPI
----------------------------------------------------------------------
diff --git a/taverna-credential-manager/src/main/resources/META-INF/services/net.sf.taverna.t2.security.credentialmanager.CredentialProviderSPI b/taverna-credential-manager/src/main/resources/META-INF/services/net.sf.taverna.t2.security.credentialmanager.CredentialProviderSPI
deleted file mode 100644
index a6b03b4..0000000
--- a/taverna-credential-manager/src/main/resources/META-INF/services/net.sf.taverna.t2.security.credentialmanager.CredentialProviderSPI
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.security.credentialmanager.DefaultMasterPasswordProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-credential-manager/src/main/resources/META-INF/services/org.apache.taverna.security.credentialmanager.CredentialProviderSPI
----------------------------------------------------------------------
diff --git a/taverna-credential-manager/src/main/resources/META-INF/services/org.apache.taverna.security.credentialmanager.CredentialProviderSPI b/taverna-credential-manager/src/main/resources/META-INF/services/org.apache.taverna.security.credentialmanager.CredentialProviderSPI
new file mode 100644
index 0000000..a6b03b4
--- /dev/null
+++ b/taverna-credential-manager/src/main/resources/META-INF/services/org.apache.taverna.security.credentialmanager.CredentialProviderSPI
@@ -0,0 +1 @@
+org.apache.taverna.security.credentialmanager.DefaultMasterPasswordProvider
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseConfiguration.java
----------------------------------------------------------------------
diff --git a/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseConfiguration.java b/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseConfiguration.java
new file mode 100644
index 0000000..48e70e0
--- /dev/null
+++ b/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseConfiguration.java
@@ -0,0 +1,123 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.configuration.database;
+
+import java.util.Map;
+
+import uk.org.taverna.configuration.Configurable;
+
+/**
+ *
+ *
+ * @author David Withers
+ */
+public interface DatabaseConfiguration extends Configurable {
+
+	public static final String IN_MEMORY = "in_memory";
+	public static final String ENABLE_PROVENANCE = "provenance";
+	public static final String CONNECTOR_TYPE = "connector";
+	public static final String PORT = "port";
+	public static final String CURRENT_PORT = "current_port";
+	public static final String REFERENCE_SERVICE_CONTEXT = "referenceService.context";
+	public static final String IN_MEMORY_CONTEXT = "inMemoryReferenceServiceContext.xml";
+	public static final String HIBERNATE_CONTEXT = "hibernateReferenceServiceContext.xml";
+	public static final String HIBERNATE_DIALECT = "dialect";
+	public static final String START_INTERNAL_DERBY = "start_derby";
+	public static final String POOL_MAX_ACTIVE = "pool_max_active";
+	public static final String POOL_MIN_IDLE = "pool_min_idle";
+	public static final String POOL_MAX_IDLE = "pool_max_idle";
+	public static final String DRIVER_CLASS_NAME = "driver";
+	public static final String JDBC_URI = "jdbcuri";
+	public static final String USERNAME = "username";
+	public static final String PASSWORD = "password";
+	public static final String EXPOSE_DATANATURE = "taverna.exposedatanature";
+	// FIXME: these should me just mysql & derby - but build & dependency issues
+	// is causing the provenance to expect these values:
+	public static final String CONNECTOR_MYSQL = "mysql";
+	public static final String CONNECTOR_DERBY = "derby";
+	public static final String JNDI_NAME = "jdbc/taverna";
+
+	public boolean isAutoSave();
+
+	public void enableAutoSave();
+
+	public void disableAutoSave();
+
+	public boolean isInMemory();
+
+	public void setInMemory(boolean value);
+
+	public boolean isExposeDatanature();
+
+	public void setExposeDatanature(boolean exposeDatanature);
+
+	public String getDatabaseContext();
+
+	public void setPort(int port);
+
+	public void setPort(String port);
+
+	public void setDriverClassName(String driverClassName);
+
+	public String getDriverClassName();
+
+	public boolean isProvenanceEnabled();
+
+	public void setProvenanceEnabled(boolean value);
+
+	public void setStartInternalDerbyServer(boolean value);
+
+	public boolean getStartInternalDerbyServer();
+
+	public int getPort();
+
+	public void setCurrentPort(int port);
+
+	public int getCurrentPort();
+
+	public int getPoolMaxActive();
+
+	public int getPoolMinIdle();
+
+	public int getPoolMaxIdle();
+
+	public String getCategory();
+
+	public Map<String, String> getDefaultPropertyMap();
+
+	public String getHibernateDialect();
+
+	public String getDisplayName();
+
+	public String getFilePrefix();
+
+	public String getUUID();
+
+	public String getConnectorType();
+
+	public String getJDBCUri();
+
+	public void setJDBCUri(String uri);
+
+	public String getUsername();
+
+	public String getPassword();
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseManager.java
----------------------------------------------------------------------
diff --git a/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseManager.java b/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseManager.java
new file mode 100644
index 0000000..e1bdf89
--- /dev/null
+++ b/taverna-database-configuration-api/src/main/java/org/apache/taverna/configuration/database/DatabaseManager.java
@@ -0,0 +1,44 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.configuration.database;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+/**
+ *
+ *
+ * @author David Withers
+ */
+public interface DatabaseManager {
+
+	public Connection getConnection() throws SQLException;
+
+	public DataSource getDataSource();
+
+	public void startDerbyNetworkServer();
+
+	public void stopDerbyNetworkServer();
+
+	public boolean isRunning();
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseConfiguration.java
----------------------------------------------------------------------
diff --git a/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseConfiguration.java b/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseConfiguration.java
deleted file mode 100644
index ba3ebd2..0000000
--- a/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseConfiguration.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2012 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package uk.org.taverna.configuration.database;
-
-import java.util.Map;
-
-import uk.org.taverna.configuration.Configurable;
-
-/**
- *
- *
- * @author David Withers
- */
-public interface DatabaseConfiguration extends Configurable {
-
-	public static final String IN_MEMORY = "in_memory";
-	public static final String ENABLE_PROVENANCE = "provenance";
-	public static final String CONNECTOR_TYPE = "connector";
-	public static final String PORT = "port";
-	public static final String CURRENT_PORT = "current_port";
-	public static final String REFERENCE_SERVICE_CONTEXT = "referenceService.context";
-	public static final String IN_MEMORY_CONTEXT = "inMemoryReferenceServiceContext.xml";
-	public static final String HIBERNATE_CONTEXT = "hibernateReferenceServiceContext.xml";
-	public static final String HIBERNATE_DIALECT = "dialect";
-	public static final String START_INTERNAL_DERBY = "start_derby";
-	public static final String POOL_MAX_ACTIVE = "pool_max_active";
-	public static final String POOL_MIN_IDLE = "pool_min_idle";
-	public static final String POOL_MAX_IDLE = "pool_max_idle";
-	public static final String DRIVER_CLASS_NAME = "driver";
-	public static final String JDBC_URI = "jdbcuri";
-	public static final String USERNAME = "username";
-	public static final String PASSWORD = "password";
-	public static final String EXPOSE_DATANATURE = "taverna.exposedatanature";
-	// FIXME: these should me just mysql & derby - but build & dependency issues
-	// is causing the provenance to expect these values:
-	public static final String CONNECTOR_MYSQL = "mysql";
-	public static final String CONNECTOR_DERBY = "derby";
-	public static final String JNDI_NAME = "jdbc/taverna";
-
-	public boolean isAutoSave();
-
-	public void enableAutoSave();
-
-	public void disableAutoSave();
-
-	public boolean isInMemory();
-
-	public void setInMemory(boolean value);
-
-	public boolean isExposeDatanature();
-
-	public void setExposeDatanature(boolean exposeDatanature);
-
-	public String getDatabaseContext();
-
-	public void setPort(int port);
-
-	public void setPort(String port);
-
-	public void setDriverClassName(String driverClassName);
-
-	public String getDriverClassName();
-
-	public boolean isProvenanceEnabled();
-
-	public void setProvenanceEnabled(boolean value);
-
-	public void setStartInternalDerbyServer(boolean value);
-
-	public boolean getStartInternalDerbyServer();
-
-	public int getPort();
-
-	public void setCurrentPort(int port);
-
-	public int getCurrentPort();
-
-	public int getPoolMaxActive();
-
-	public int getPoolMinIdle();
-
-	public int getPoolMaxIdle();
-
-	public String getCategory();
-
-	public Map<String, String> getDefaultPropertyMap();
-
-	public String getHibernateDialect();
-
-	public String getDisplayName();
-
-	public String getFilePrefix();
-
-	public String getUUID();
-
-	public String getConnectorType();
-
-	public String getJDBCUri();
-
-	public void setJDBCUri(String uri);
-
-	public String getUsername();
-
-	public String getPassword();
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseManager.java
----------------------------------------------------------------------
diff --git a/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseManager.java b/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseManager.java
deleted file mode 100644
index c7e6641..0000000
--- a/taverna-database-configuration-api/src/main/java/uk/org/taverna/configuration/database/DatabaseManager.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2012 The University of Manchester
- *
- *  Modifications to the initial code base are copyright of their
- *  respective authors, or their employers as appropriate.
- *
- *  This program is free software; you can redistribute it and/or
- *  modify it under the terms of the GNU Lesser General Public License
- *  as published by the Free Software Foundation; either version 2.1 of
- *  the License, or (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  Lesser General Public License for more details.
- *
- *  You should have received a copy of the GNU Lesser General Public
- *  License along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package uk.org.taverna.configuration.database;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-
-import javax.sql.DataSource;
-
-/**
- *
- *
- * @author David Withers
- */
-public interface DatabaseManager {
-
-	public Connection getConnection() throws SQLException;
-
-	public DataSource getDataSource();
-
-	public void startDerbyNetworkServer();
-
-	public void stopDerbyNetworkServer();
-
-	public boolean isRunning();
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-database-configuration-impl/src/main/java/org/apache/taverna/configuration/database/impl/DatabaseConfigurationImpl.java
----------------------------------------------------------------------
diff --git a/taverna-database-configuration-impl/src/main/java/org/apache/taverna/configuration/database/impl/DatabaseConfigurationImpl.java b/taverna-database-configuration-impl/src/main/java/org/apache/taverna/configuration/database/impl/DatabaseConfigurationImpl.java
new file mode 100644
index 0000000..e401e75
--- /dev/null
+++ b/taverna-database-configuration-impl/src/main/java/org/apache/taverna/configuration/database/impl/DatabaseConfigurationImpl.java
@@ -0,0 +1,251 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.configuration.database.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.taverna.configuration.database.DatabaseConfiguration;
+import uk.org.taverna.configuration.AbstractConfigurable;
+import uk.org.taverna.configuration.ConfigurationManager;
+
+/**
+ * Configuration for the reference service and provenance.
+ *
+ * @author David Withers
+ * @author Stuart Owen
+ */
+
+public class DatabaseConfigurationImpl extends AbstractConfigurable implements DatabaseConfiguration {
+
+	private Map<String, String> defaultPropertyMap;
+
+	private boolean autoSave = true;
+
+	public DatabaseConfigurationImpl(ConfigurationManager configurationManager) {
+		super(configurationManager);
+	}
+
+	@Override
+	public boolean isAutoSave() {
+		return autoSave;
+	}
+
+	@Override
+	public void enableAutoSave() {
+		autoSave = true;
+	}
+
+	@Override
+	public void disableAutoSave() {
+		autoSave = false;
+	}
+
+	@Override
+	protected void store() {
+		if (autoSave) {
+			super.store();
+		}
+	}
+
+	@Override
+	public boolean isInMemory() {
+		return getProperty(IN_MEMORY).equalsIgnoreCase("true");
+	}
+
+	@Override
+	public void setInMemory(boolean value) {
+		setProperty(IN_MEMORY, String.valueOf(value));
+	}
+
+	@Override
+	public boolean isExposeDatanature() {
+		return getProperty(EXPOSE_DATANATURE).equalsIgnoreCase("true");
+	}
+
+	@Override
+	public void setExposeDatanature(boolean exposeDatanature) {
+		setProperty(EXPOSE_DATANATURE, String.valueOf(exposeDatanature));
+	}
+
+	@Override
+	public String getDatabaseContext() {
+		if (getProperty(IN_MEMORY).equalsIgnoreCase("true")) {
+			return IN_MEMORY_CONTEXT;
+		} else {
+			return HIBERNATE_CONTEXT;
+		}
+	}
+
+	@Override
+	public void setPort(int port) {
+		setPort(String.valueOf(port));
+	}
+
+	@Override
+	public void setPort(String port) {
+		setProperty(PORT, port);
+	}
+
+	@Override
+	public void setDriverClassName(String driverClassName) {
+		setProperty(DRIVER_CLASS_NAME, driverClassName);
+	}
+
+	@Override
+	public String getDriverClassName() {
+		return getProperty(DRIVER_CLASS_NAME);
+	}
+
+	@Override
+	public boolean isProvenanceEnabled() {
+		return getProperty(ENABLE_PROVENANCE).equalsIgnoreCase("true");
+	}
+
+	@Override
+	public void setProvenanceEnabled(boolean value) {
+		setProperty(ENABLE_PROVENANCE, String.valueOf(value));
+	}
+
+	@Override
+	public void setStartInternalDerbyServer(boolean value) {
+		setProperty(START_INTERNAL_DERBY, String.valueOf(value));
+	}
+
+	@Override
+	public boolean getStartInternalDerbyServer() {
+		return getProperty(START_INTERNAL_DERBY).equalsIgnoreCase("true");
+	}
+
+	@Override
+	public int getPort() {
+		return Integer.valueOf(getProperty(PORT));
+	}
+
+	@Override
+	public void setCurrentPort(int port) {
+		setProperty(CURRENT_PORT, String.valueOf(port));
+	}
+
+	@Override
+	public int getCurrentPort() {
+		return Integer.valueOf(getProperty(CURRENT_PORT));
+	}
+
+	@Override
+	public int getPoolMaxActive() {
+		return Integer.valueOf(getProperty(POOL_MAX_ACTIVE));
+	}
+
+	@Override
+	public int getPoolMinIdle() {
+		return Integer.valueOf(getProperty(POOL_MIN_IDLE));
+	}
+
+	@Override
+	public int getPoolMaxIdle() {
+		return Integer.valueOf(getProperty(POOL_MAX_IDLE));
+	}
+
+	@Override
+	public String getCategory() {
+		return "general";
+	}
+
+	@Override
+	public Map<String, String> getDefaultPropertyMap() {
+
+		if (defaultPropertyMap == null) {
+			defaultPropertyMap = new HashMap<String, String>();
+			defaultPropertyMap.put(IN_MEMORY, "true");
+			defaultPropertyMap.put(ENABLE_PROVENANCE, "true");
+			defaultPropertyMap.put(PORT, "1527");
+			// defaultPropertyMap.put(DRIVER_CLASS_NAME,
+			// "org.apache.derby.jdbc.ClientDriver");
+			defaultPropertyMap.put(DRIVER_CLASS_NAME,
+					"org.apache.derby.jdbc.EmbeddedDriver");
+			defaultPropertyMap.put(HIBERNATE_DIALECT,
+					"org.hibernate.dialect.DerbyDialect");
+			defaultPropertyMap.put(POOL_MAX_ACTIVE, "50");
+			defaultPropertyMap.put(POOL_MAX_IDLE, "50");
+			defaultPropertyMap.put(POOL_MIN_IDLE, "10");
+			defaultPropertyMap.put(USERNAME, "");
+			defaultPropertyMap.put(PASSWORD, "");
+			defaultPropertyMap.put(JDBC_URI,
+					"jdbc:derby:t2-database;create=true;upgrade=true");
+			defaultPropertyMap.put(START_INTERNAL_DERBY, "false");
+
+			defaultPropertyMap.put(CONNECTOR_TYPE, CONNECTOR_DERBY);
+			defaultPropertyMap.put(EXPOSE_DATANATURE, "false");
+		}
+		return defaultPropertyMap;
+	}
+
+	@Override
+	public String getHibernateDialect() {
+		return getProperty(HIBERNATE_DIALECT);
+	}
+
+	@Override
+	public String getDisplayName() {
+		return "Data and provenance";
+	}
+
+	@Override
+	public String getFilePrefix() {
+		return "DataAndProvenance";
+	}
+
+	@Override
+	public String getUUID() {
+		return "6BD3F5C1-C68D-4893-8D9B-2F46FA1DDB19";
+	}
+
+	@Override
+	public String getConnectorType() {
+		return getProperty(CONNECTOR_TYPE);
+	}
+
+	@Override
+	public String getJDBCUri() {
+		if (CONNECTOR_DERBY.equals(getConnectorType())
+				&& getStartInternalDerbyServer()) {
+			return "jdbc:derby://localhost:" + getCurrentPort()
+					+ "/t2-database;create=true;upgrade=true";
+		} else {
+			return getProperty(JDBC_URI);
+		}
+	}
+
+	@Override
+	public void setJDBCUri(String uri) {
+		setProperty(JDBC_URI, uri);
+	}
+
+	@Override
+	public String getUsername() {
+		return getProperty(USERNAME);
+	}
+
+	@Override
+	public String getPassword() {
+		return getProperty(PASSWORD);
+	}
+}