http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/PutIdentifiedOperation.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/PutIdentifiedOperation.java
 
b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/PutIdentifiedOperation.java
deleted file mode 100644
index d05febe..0000000
--- 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/PutIdentifiedOperation.java
+++ /dev/null
@@ -1,38 +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.reference.annotations;
-
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Applied to methods in Dao implementations which store or update data in the
- * backing store.
- * 
- * @author Tom Oinn
- */
-@Retention(RUNTIME)
-@Target(METHOD)
-public @interface PutIdentifiedOperation {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/package.html
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/package.html
 
b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/package.html
deleted file mode 100644
index 0d38e1e..0000000
--- 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/annotations/package.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<body>
-Annotations to make methods in the data access object implementations
-for cache injection.
-</body>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateComponentClass.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateComponentClass.java
 
b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateComponentClass.java
deleted file mode 100644
index f8f2076..0000000
--- 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateComponentClass.java
+++ /dev/null
@@ -1,38 +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.reference.h3;
-
-/**
- * A marker used to denote that the class should be pre-loaded into hibernate's
- * class mapping. Used for component classes which are not going to be mapped 
to
- * the RDBMS but which must be loadable for mapped classes to instantiate
- * correctly. Basically if you refer to a class that isn't itself going to be
- * mapped in hibernate within a mapping definition you'll need to add that
- * component class to this SPI or hibernate won't be able to find it as it 
won't
- * know that it should associate it with the appropriate class loader.
- * <p>
- * This should be used as an SPI marker, and set as the first SPI registry in
- * the preloadRegistries property of the 
SpiRegistryAwareLocalSessionFactoryBean
- * 
- * @author Tom Oinn
- */
-public interface HibernateComponentClass {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateMappedEntity.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateMappedEntity.java
 
b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateMappedEntity.java
deleted file mode 100644
index ae77e1d..0000000
--- 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/HibernateMappedEntity.java
+++ /dev/null
@@ -1,39 +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.reference.h3;
-
-import net.sf.taverna.t2.reference.ExternalReferenceSPI;
-import net.sf.taverna.t2.reference.ReferenceSet;
-
-/**
- * A marker interface used to denote that the component should be registered
- * with the Hibernate ORM system prior to any {@link ExternalReferenceSPI}
- * implementations. This is here to allow implementations of e.g.
- * {@link ReferenceSet} to be in the implementation package where they belong
- * and still guarantee that they are registered before any other plugins.
- * <p>
- * This should be used as an SPI marker, and set as the first SPI registry in
- * the spiRegistries property of the SpiRegistryAwareLocalSessionFactoryBean
- * 
- * @author Tom Oinn
- */
-public interface HibernateMappedEntity {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/package.html
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/package.html
 
b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/package.html
deleted file mode 100644
index 4ffba14..0000000
--- 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/h3/package.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<body>
-Contains the marker interfaces used by the implementation package to
-ensure that all appropriate classes are mapped in hibernate
-<em>before</em>
-implementations of classes that depend upon them, and to ensure that
-'static' classes such as the implementations of reference set etc are
-mapped correctly.
-</body>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/package.html
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/package.html 
b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/package.html
deleted file mode 100644
index 503dc3b..0000000
--- 
a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/package.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<body>
-<p>Interfaces for the Taverna 2 reference manager. This replaces the
-(badly named) DataManager and is, in effect, a version 2 of that system.
-While these APIs are implementation neutral the intent is heavily
-towards the use of an object relational mapping (ORM) tool such as
-Hibernate backed by a relational database to hold the various
-collection, external reference and error documents managed by the
-reference manager.</p>
-<p>For those familiar with the previous DataManager code the table
-below shows the old class names and the equivalent (where appropriate)
-in the new code:
-</p>
-<table>
-       <tr>
-               <td>DataDocument</td>
-               <td>{@link net.sf.taverna.t2.reference.ReferenceSet}</td>
-       </tr>
-       <tr>
-               <td>ReferenceScheme</td>
-               <td>{@link 
net.sf.taverna.t2.reference.ExternalReferenceSPI}</td>
-       </tr>
-       <tr>
-               <td>EntityIdentifier</td>
-               <td>{@link net.sf.taverna.t2.reference.T2Reference}</td>
-       </tr>
-       <tr>
-               <td colspan="2">...</td>
-       </tr>
-</table>
-<p>One fundamental change is a move to runtime exceptions rather
-than checked exceptions. This follows the pattern used by Spring and
-Hibernate. The rationale is the same as in those systems - in general
-checked exceptions are not handled properly by client code. The loss of
-compiler level functionality from moving to runtime exceptions is
-countered by much higher readability of code which in itself leads to
-more robust and reliable systems.</p>
-<p>A second change is the availability of asynchronous versions of
-all the critical APIs. Reference construction or translation in
-particular can be a costly process taking substantial time to complete.
-Synchronous versions of the get methods still exist but in general the
-simple callback based asynchronous ones are recommended over them for
-most applications.</p>
-</body>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-api/src/main/resources/net/sf/taverna/t2/reference/AbstractExternalReference.hbm.xml
----------------------------------------------------------------------
diff --git 
a/taverna-reference-api/src/main/resources/net/sf/taverna/t2/reference/AbstractExternalReference.hbm.xml
 
b/taverna-reference-api/src/main/resources/net/sf/taverna/t2/reference/AbstractExternalReference.hbm.xml
deleted file mode 100644
index e8851e9..0000000
--- 
a/taverna-reference-api/src/main/resources/net/sf/taverna/t2/reference/AbstractExternalReference.hbm.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE hibernate-mapping PUBLIC
-                "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-                "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd";>
-<!-- Hibernate mapping for the abstract superclass of -->
-<!-- ExternalReferenceSPI implementations             -->
-<hibernate-mapping>
-       <class name="net.sf.taverna.t2.reference.AbstractExternalReference"
-               abstract="true">
-               <!-- Let hibernate choose the primary key generation strategy 
-->
-               <id name="primaryKey" unsaved-value="0" column="bean_id">
-                       <generator class="native" />
-               </id>
-       </class>
-</hibernate-mapping>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-reference-impl/.gitignore 
b/taverna-reference-impl/.gitignore
deleted file mode 100644
index 1298c5f..0000000
--- a/taverna-reference-impl/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-derby.log

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-reference-impl/pom.xml b/taverna-reference-impl/pom.xml
deleted file mode 100644
index 0eb9e8c..0000000
--- a/taverna-reference-impl/pom.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.apache.taverna.engine</groupId>
-               <artifactId>taverna-engine</artifactId>
-               <version>3.1.0-incubating-SNAPSHOT</version>
-       </parent>
-       <artifactId>taverna-reference-impl</artifactId>
-       <packaging>bundle</packaging>
-       <name>Apache Taverna Reference Manager Implementation</name>
-       <description>
-               Implementations of the core APIs, not including extension point
-               implementations.
-               This package contains implementations of the data access 
objects, translator
-               infrastructure etc.
-               The extension point implementations that can be
-               considered as core functionality (files, URLs etc) are held in
-               the taverna-reference-types module.
-    </description>
-
-       <properties>
-               <aspectj.version>1.6.0</aspectj.version>
-       </properties>
-
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <extensions>true</extensions>
-                               <configuration>
-                                       <instructions>
-                                               <Import-Package>
-                                                       org.aspectj.lang,
-                                                       
org.springframework.orm.*,
-                                                       org.hibernate.*,
-                                                       org.hibernate.cfg,
-                                                       org.hibernate.proxy, *
-                                               </Import-Package>
-                                               <!-- <Import-Package> 
org.aspectj.lang;resolution:=optional, 
org.springframework.orm.*;resolution:=optional,
-                                                       
org.hibernate.*;resolution:=optional, org.hibernate.proxy;resolution:=optional,
-                                                       org.apache.derby.jdbc, 
* </Import-Package> -->
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
-       <dependencies>
-               <dependency>
-                       <groupId>${project.parent.groupId}</groupId>
-                       <artifactId>taverna-reference-api</artifactId>
-                       <version>${project.parent.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>${project.parent.groupId}</groupId>
-                       
<artifactId>taverna-database-configuration-api</artifactId>
-                       <version>${project.parent.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.springframework</groupId>
-                       <artifactId>org.springframework.orm</artifactId>
-                       <version>${spring.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.springframework</groupId>
-                       <artifactId>org.springframework.transaction</artifactId>
-                       <version>${spring.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.aspectj</groupId>
-                       
<artifactId>com.springsource.org.aspectj.weaver</artifactId>
-                       <version>${aspectj.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>${project.parent.groupId}</groupId>
-                       <artifactId>taverna-reference-testhelpers</artifactId>
-                       <version>${project.parent.version}</version>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.hibernate</groupId>
-                       <artifactId>com.springsource.org.hibernate</artifactId>
-                       <version>${hibernate.version}</version>
-                       <!-- <optional>true</optional> -->
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>javax.transaction</groupId>
-                                       <artifactId>jta</artifactId>
-                               </exclusion>
-                               <exclusion>
-                                       <groupId>net.sf.ehcache</groupId>
-                                       <artifactId>ehcache</artifactId>
-                               </exclusion>
-                               <exclusion>
-                                       <groupId>asm</groupId>
-                                       <artifactId>asm-attrs</artifactId>
-                               </exclusion>
-                               <exclusion>
-                                       <groupId>antlr</groupId>
-                                       <artifactId>antlr</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
-               <dependency>
-                       <groupId>javax.transaction</groupId>
-                       
<artifactId>com.springsource.javax.transaction</artifactId>
-                       <version>${javax.transaction.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>log4j</groupId>
-                       <artifactId>log4j</artifactId>
-                       <version>${log4j.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.derby</groupId>
-                       
<artifactId>com.springsource.org.apache.derby</artifactId>
-                       <version>${derby.version}</version>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>geronimo-spec</groupId>
-                       <artifactId>geronimo-spec-jta</artifactId>
-                       <version>${geronimo.spec.jta.version}</version>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/TemporaryJDBC.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/TemporaryJDBC.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/TemporaryJDBC.java
deleted file mode 100644
index d041320..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/TemporaryJDBC.java
+++ /dev/null
@@ -1,75 +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.platform.spring.jdbc;
-
-import static java.io.File.createTempFile;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Create JDBC connection strings for temporary use (ie. from tests)
- * <p>
- * {@link #getTemporaryDerbyJDBC()} creates a temporary directory that is used
- * to construct the JDBC connection string for a local Derby database.
- * </p>
- * <p>
- * This is most useful from a spring configuration, for example when using
- * {@link InterpolatingDriverManagerDataSource}:
- * </p>
- * 
- * <pre>
- * &lt;!-- Apache Derby rooted at a temporary directory --&gt;
- *  &lt;bean id=&quot;t2reference.jdbc.temporaryjdbc&quot;
- *  class=&quot;net.sf.taverna.platform.spring.jdbc.TemporaryJDBC&quot;&gt;
- *  &lt;/bean&gt;
- *  &lt;bean id=&quot;t2reference.jdbc.url&quot; 
class=&quot;java.lang.String&quot;
- *  factory-bean=&quot;t2reference.jdbc.temporaryjdbc&quot;
- *  factory-method=&quot;getTemporaryDerbyJDBC&quot; /&gt;
- *  &lt;bean id=&quot;t2reference.jdbc.datasource&quot;
- *  
class=&quot;net.sf.taverna.platform.spring.jdbc.InterpolatingDriverManagerDataSource&quot;&gt;
- *  &lt;property name=&quot;driverClassName&quot;&gt;
- *  &lt;value&gt;org.apache.derby.jdbc.EmbeddedDriver&lt;/value&gt;
- *  &lt;/property&gt;
- *  &lt;property name=&quot;url&quot;&gt;
- *  &lt;ref bean=&quot;t2reference.jdbc.url&quot; /&gt;
- *  &lt;/property&gt;
- *  &lt;property name=&quot;repository&quot;&gt;
- *  &lt;ref bean=&quot;raven.repository&quot; /&gt;
- *  &lt;/property&gt;
- *  &lt;property name=&quot;driverArtifact&quot;&gt;
- *  &lt;value&gt;org.apache.derby:derby:10.4.1.3&lt;/value&gt;
- *  &lt;/property&gt;
- *  &lt;/bean&gt;
- * </pre>
- * 
- * @author Stian Soiland-Reyes
- */
-public class TemporaryJDBC {
-       public String getTemporaryDerbyJDBC() throws IOException {
-               File tmpDir = createTempFile("t2platform-", ".db");
-               tmpDir.delete();
-               if (!tmpDir.mkdir())
-                       throw new IOException("Could not create temporary 
directory "
-                                       + tmpDir);
-               return "jdbc:derby:" + tmpDir.getPath() + 
"/database;create=true";
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/package.html
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/package.html
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/package.html
deleted file mode 100644
index 2355a14..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/platform/spring/jdbc/package.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<body>
-Extensions to the JDBC parts of Spring, and support for proxying of JDBC 
-drivers so we can load them dynamically from raven artifacts. The proxy 
-approach is inspired by 
http://www.jroller.com/tackline/entry/dynamically_loading_jdbc_drivers 
-with additions to build from raven rather than from existing jar files.
-</body>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractEntityImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractEntityImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractEntityImpl.java
deleted file mode 100644
index 8559607..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractEntityImpl.java
+++ /dev/null
@@ -1,66 +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.reference.impl;
-
-import net.sf.taverna.t2.reference.T2Reference;
-
-/**
- * Abstract superclass of ReferenceSetImpl, IdentifiedArrayList and
- * ErrorDocumentImpl, manages the T2Reference field for these types and their
- * hibernate backing.
- * 
- * @author Tom Oinn
- */
-public class AbstractEntityImpl {
-       private T2ReferenceImpl id;
-       private String compactId = null;
-
-       public T2Reference getId() {
-               return id;
-       }
-
-       /**
-        * This method is only ever called from within Hibernate, and is used to
-        * initialize the unique ID of this reference set.
-        */
-       public void setTypedId(T2ReferenceImpl newId) {
-               id = newId;
-       }
-
-       /**
-        * Used because technically you can't accept and return implementation 
types
-        * in the methods on a bean which implements an interface, but Hibernate
-        * needs to construct concrete input and output types!
-        */
-       public T2ReferenceImpl getTypedId() {
-               return id;
-       }
-
-       public void setInternalId(String newId) {
-               compactId = newId;
-       }
-
-       public final String getInternalId() {
-               if (compactId == null)
-                       compactId = id.getCompactForm();
-               return compactId;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractErrorDocumentServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractErrorDocumentServiceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractErrorDocumentServiceImpl.java
deleted file mode 100644
index ccabf5a..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractErrorDocumentServiceImpl.java
+++ /dev/null
@@ -1,119 +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.reference.impl;
-
-import net.sf.taverna.t2.reference.DaoException;
-import net.sf.taverna.t2.reference.ErrorDocument;
-import net.sf.taverna.t2.reference.ErrorDocumentDao;
-import net.sf.taverna.t2.reference.ErrorDocumentService;
-import net.sf.taverna.t2.reference.ErrorDocumentServiceCallback;
-import net.sf.taverna.t2.reference.ErrorDocumentServiceException;
-import net.sf.taverna.t2.reference.ListServiceException;
-import net.sf.taverna.t2.reference.ReferenceContext;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.T2ReferenceGenerator;
-
-/**
- * Abstract implementation of ErrorDocumentService, inject with an appropriate
- * ErrorDocumentDao and T2ReferenceGenerator to enable. Contains injectors for
- * id generation and dao along with other bookkeeping, leaving the
- * implementation of the actual service logic to the subclass.
- * 
- * @author Tom Oinn
- */
-public abstract class AbstractErrorDocumentServiceImpl extends
-               AbstractServiceImpl implements ErrorDocumentService {
-       protected ErrorDocumentDao errorDao = null;
-       protected T2ReferenceGenerator t2ReferenceGenerator = null;
-
-       /**
-        * Inject the error document data access object.
-        */
-       public final void setErrorDao(ErrorDocumentDao dao) {
-               errorDao = dao;
-       }
-
-       /**
-        * Inject the T2Reference generator used to allocate new IDs when
-        * registering ErrorDocuments
-        */
-       public final void setT2ReferenceGenerator(T2ReferenceGenerator t2rg) {
-               t2ReferenceGenerator = t2rg;
-       }
-
-       /**
-        * Check that the list dao is configured
-        * 
-        * @throws ListServiceException
-        *             if the dao is still null
-        */
-       protected final void checkDao() throws ErrorDocumentServiceException {
-               if (errorDao == null)
-                       throw new ErrorDocumentServiceException(
-                                       "ErrorDocumentDao not initialized, 
error document "
-                                                       + "service operations 
are not available");
-       }
-
-       /**
-        * Check that the t2reference generator is configured
-        * 
-        * @throws ListServiceException
-        *             if the generator is still null
-        */
-       protected final void checkGenerator() throws 
ErrorDocumentServiceException {
-               if (t2ReferenceGenerator == null)
-                       throw new ErrorDocumentServiceException(
-                                       "T2ReferenceGenerator not initialized, 
error document "
-                                                       + "service operations 
not available");
-       }
-
-       @Override
-       public final void getErrorAsynch(final T2Reference id,
-                       final ErrorDocumentServiceCallback callback)
-                       throws ErrorDocumentServiceException {
-               checkDao();
-               Runnable r = new Runnable() {
-                       @Override
-                       public void run() {
-                               try {
-                                       ErrorDocument e = errorDao.get(id);
-                                       callback.errorRetrieved(e);
-                               } catch (DaoException de) {
-                                       callback.errorRetrievalFailed(new 
ErrorDocumentServiceException(
-                                                       de));
-                               }
-                       }
-               };
-               executeRunnable(r);
-       }
-
-       @Override
-       public final ErrorDocument registerError(String message, int depth,
-                       ReferenceContext context) throws 
ErrorDocumentServiceException {
-               return registerError(message, (Throwable) null, depth, context);
-       }
-
-       @Override
-       public final ErrorDocument registerError(Throwable t, int depth,
-                       ReferenceContext context) throws 
ErrorDocumentServiceException {
-               return registerError("", t, depth, context);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractListServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractListServiceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractListServiceImpl.java
deleted file mode 100644
index ad564fb..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractListServiceImpl.java
+++ /dev/null
@@ -1,100 +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.reference.impl;
-
-import net.sf.taverna.t2.reference.ListDao;
-import net.sf.taverna.t2.reference.ListService;
-import net.sf.taverna.t2.reference.ListServiceCallback;
-import net.sf.taverna.t2.reference.ListServiceException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.T2ReferenceGenerator;
-
-/**
- * Abstract implementation of ListService, inject with an appropriate ListDao
- * and T2ReferenceGenerator to enable. Contains injectors for id generation and
- * dao along with other bookkeeping, leaving the implementation of the actual
- * service logic to the subclass.
- * 
- * @author Tom Oinn
- * 
- */
-public abstract class AbstractListServiceImpl extends AbstractServiceImpl
-               implements ListService {
-       protected ListDao listDao = null;
-       protected T2ReferenceGenerator t2ReferenceGenerator = null;
-
-       /**
-        * Inject the list data access object.
-        */
-       public final void setListDao(ListDao dao) {
-               listDao = dao;
-       }
-
-       /**
-        * Inject the T2Reference generator used to allocate new IDs when
-        * registering lists of T2Reference
-        */
-       public final void setT2ReferenceGenerator(T2ReferenceGenerator t2rg) {
-               t2ReferenceGenerator = t2rg;
-       }
-
-       /**
-        * Check that the list dao is configured
-        * 
-        * @throws ListServiceException
-        *             if the dao is still null
-        */
-       protected final void checkDao() throws ListServiceException {
-               if (listDao == null)
-                       throw new ListServiceException("ListDao not 
initialized, list "
-                                       + "service operations are not 
available");
-       }
-
-       /**
-        * Check that the t2reference generator is configured
-        * 
-        * @throws ListServiceException
-        *             if the generator is still null
-        */
-       protected final void checkGenerator() throws ListServiceException {
-               if (t2ReferenceGenerator == null)
-                       throw new ListServiceException(
-                                       "T2ReferenceGenerator not initialized, 
list "
-                                                       + "service operations 
not available");
-       }
-
-       @Override
-       public final void getListAsynch(final T2Reference id,
-                       final ListServiceCallback callback) throws 
ListServiceException {
-               checkDao();
-               Runnable r = new Runnable() {
-                       @Override
-                       public void run() {
-                               try {
-                                       callback.listRetrieved(getList(id));
-                               } catch (ListServiceException lse) {
-                                       callback.listRetrievalFailed(lse);
-                               }
-                       }
-               };
-               executeRunnable(r);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceServiceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceServiceImpl.java
deleted file mode 100644
index 3ef8e9b..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceServiceImpl.java
+++ /dev/null
@@ -1,171 +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.reference.impl;
-
-import java.util.List;
-import java.util.Set;
-
-import net.sf.taverna.t2.reference.ErrorDocumentService;
-import net.sf.taverna.t2.reference.ExternalReferenceSPI;
-import net.sf.taverna.t2.reference.ListService;
-import net.sf.taverna.t2.reference.ReferenceContext;
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.ReferenceServiceException;
-import net.sf.taverna.t2.reference.ReferenceServiceResolutionCallback;
-import net.sf.taverna.t2.reference.ReferenceSetService;
-import net.sf.taverna.t2.reference.StreamToValueConverterSPI;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.ValueToReferenceConverterSPI;
-
-/**
- * Implementation of ReferenceService, inject with ReferenceSetService,
- * ErrorDocumentService and ListService to enable. Inject with an instance
- * registry of ValueToReferenceConvertorSPI to enable on the fly registration 
of
- * otherwise illegal object types. This class contains the basic injection
- * functionality and the getters for the sub-services, mostly to isolate these
- * mundane bits of code from the more interesting actual implementation of the
- * reference service logic.
- * 
- * @author Tom Oinn
- */
-public abstract class AbstractReferenceServiceImpl extends AbstractServiceImpl
-               implements ReferenceService {
-       protected ErrorDocumentService errorDocumentService = null;
-       protected ReferenceSetService referenceSetService = null;
-       protected ListService listService = null;
-       protected List<ValueToReferenceConverterSPI> converters = null;
-       @SuppressWarnings("rawtypes")
-       protected List<StreamToValueConverterSPI> valueBuilders = null;
-
-       /**
-        * Inject value to reference convertor SPI
-        */
-       public final void setConverters(
-                       List<ValueToReferenceConverterSPI> converters) {
-               this.converters = converters;
-       }
-
-       /**
-        * Inject stream to value converter SPI
-        */
-       @SuppressWarnings("rawtypes")
-       public final void setValueBuilders(
-                       List<StreamToValueConverterSPI> valueBuilders) {
-               this.valueBuilders = valueBuilders;
-       }
-
-       /**
-        * Inject error document service
-        */
-       public final void setErrorDocumentService(ErrorDocumentService eds) {
-               this.errorDocumentService = eds;
-       }
-
-       /**
-        * Inject reference set service
-        */
-       public final void setReferenceSetService(ReferenceSetService rss) {
-               this.referenceSetService = rss;
-       }
-
-       /**
-        * Inject list service
-        */
-       public final void setListService(ListService ls) {
-               this.listService = ls;
-       }
-
-       /**
-        * Throw a ReferenceServiceException if methods in ReferenceService are
-        * called without the necessary sub-services configured.
-        */
-       protected final void checkServices() throws ReferenceServiceException {
-               if (errorDocumentService == null)
-                       throw new ReferenceServiceException(
-                                       "Reference service must be configued 
with an "
-                                                       + "instance of 
ErrorDocumentService to function");
-               if (referenceSetService == null)
-                       throw new ReferenceServiceException(
-                                       "Reference service must be configued 
with an "
-                                                       + "instance of 
ReferenceSetService to function");
-               if (listService == null)
-                       throw new ReferenceServiceException(
-                                       "Reference service must be configued 
with an "
-                                                       + "instance of 
ListService to function");
-       }
-
-       /**
-        * Check whether the converter registry has been defined, throw a
-        * ReferenceServiceException if not
-        */
-       protected final void checkConverterRegistry()
-                       throws ReferenceServiceException {
-               if (converters == null)
-                       throw new ReferenceServiceException(
-                                       "Reference service must be configued 
with an "
-                                                       + "instance registry of 
ValueToReferenceConvertorSPI "
-                                                       + "to enable on the fly 
mapping of arbitrary objects "
-                                                       + "during compound 
registration");
-       }
-
-       @Override
-       public final ErrorDocumentService getErrorDocumentService() {
-               checkServices();
-               return this.errorDocumentService;
-       }
-
-       @Override
-       public final ListService getListService() {
-               checkServices();
-               return this.listService;
-       }
-
-       @Override
-       public final ReferenceSetService getReferenceSetService() {
-               checkServices();
-               return this.referenceSetService;
-       }
-
-       /**
-        * Wraps the synchronous form, using the executeRunnable method to 
schedule
-        * it.
-        */
-       @Override
-       public void resolveIdentifierAsynch(final T2Reference id,
-                       final Set<Class<ExternalReferenceSPI>> ensureTypes,
-                       final ReferenceContext context,
-                       final ReferenceServiceResolutionCallback callback)
-                       throws ReferenceServiceException {
-               checkServices();
-               Runnable r = new Runnable() {
-                       @Override
-                       public void run() {
-                               try {
-                                       
callback.identifierResolved(resolveIdentifier(id,
-                                                       ensureTypes, context));
-                               } catch (ReferenceServiceException rse) {
-                                       callback.resolutionFailed(rse);
-                               }
-                       }
-               };
-               executeRunnable(r);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceSetServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceSetServiceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceSetServiceImpl.java
deleted file mode 100644
index 9c930a5..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractReferenceSetServiceImpl.java
+++ /dev/null
@@ -1,160 +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.reference.impl;
-
-import java.util.Set;
-
-import net.sf.taverna.t2.reference.DaoException;
-import net.sf.taverna.t2.reference.ExternalReferenceSPI;
-import net.sf.taverna.t2.reference.ReferenceContext;
-import net.sf.taverna.t2.reference.ReferenceSet;
-import net.sf.taverna.t2.reference.ReferenceSetAugmentor;
-import net.sf.taverna.t2.reference.ReferenceSetDao;
-import net.sf.taverna.t2.reference.ReferenceSetService;
-import net.sf.taverna.t2.reference.ReferenceSetServiceCallback;
-import net.sf.taverna.t2.reference.ReferenceSetServiceException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.T2ReferenceGenerator;
-
-/**
- * Abstract implementation of ReferenceSetService, inject with an appropriate
- * ReferenceSetDao to enable. Implements translation functionality as long as 
an
- * appropriate ReferenceSetAugmentor implementation is injected. Contains
- * injectors for id generation and dao along with other bookkeeping, leaving 
the
- * implementation of the actual service logic to the subclass.
- * 
- * @author Tom Oinn
- */
-public abstract class AbstractReferenceSetServiceImpl extends
-               AbstractServiceImpl implements ReferenceSetService {
-       protected ReferenceSetDao referenceSetDao = null;
-       protected T2ReferenceGenerator t2ReferenceGenerator = null;
-       protected ReferenceSetAugmentor referenceSetAugmentor = null;
-
-       /**
-        * Inject the reference set data access object.
-        */
-       public final void setReferenceSetDao(ReferenceSetDao dao) {
-               this.referenceSetDao = dao;
-       }
-
-       /**
-        * Inject the T2Reference generator used to allocate new IDs when
-        * registering sets of ExternalReferenceSPI
-        */
-       public final void setT2ReferenceGenerator(T2ReferenceGenerator t2rg) {
-               this.t2ReferenceGenerator = t2rg;
-       }
-
-       /**
-        * Inject the ReferenceSetAugmentor used to translate or construct new
-        * ExternalReferenceSPI instances within a ReferenceSet
-        */
-       public final void setReferenceSetAugmentor(ReferenceSetAugmentor rse) {
-               this.referenceSetAugmentor = rse;
-       }
-
-       /**
-        * Check that the reference set dao is configured
-        * 
-        * @throws ReferenceSetServiceException
-        *             if the dao is still null
-        */
-       protected final void checkDao() throws ReferenceSetServiceException {
-               if (referenceSetDao == null)
-                       throw new ReferenceSetServiceException(
-                                       "ReferenceSetDao not initialized, 
reference set "
-                                                       + "service operations 
are not available");
-       }
-
-       /**
-        * Check that the t2reference generator is configured
-        * 
-        * @throws ReferenceSetServiceException
-        *             if the generator is still null
-        */
-       protected final void checkGenerator() throws 
ReferenceSetServiceException {
-               if (t2ReferenceGenerator == null)
-                       throw new ReferenceSetServiceException(
-                                       "T2ReferenceGenerator not initialized, 
reference "
-                                                       + "set service 
operations not available");
-       }
-
-       /**
-        * Check that the reference set augmentor is configured
-        * 
-        * @throws ReferenceSetServiceException
-        *             if the reference set augmentor is still null
-        */
-       protected final void checkAugmentor() throws 
ReferenceSetServiceException {
-               if (referenceSetAugmentor == null)
-                       throw new ReferenceSetServiceException(
-                                       "ReferenceSetAugmentor not initialized, 
reference "
-                                                       + "set service 
operations not available");
-       }
-
-       @Override
-       public final void getReferenceSetAsynch(final T2Reference id,
-                       final ReferenceSetServiceCallback callback)
-                       throws ReferenceSetServiceException {
-               checkDao();
-               Runnable r = new Runnable() {
-                       @Override
-                       public void run() {
-                               try {
-                                       ReferenceSet rs = 
referenceSetDao.get(id);
-                                       callback.referenceSetRetrieved(rs);
-                               } catch (DaoException de) {
-                                       
callback.referenceSetRetrievalFailed(new ReferenceSetServiceException(
-                                                       de));
-                               }
-                       }
-               };
-               executeRunnable(r);
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       @Override
-       public final void getReferenceSetWithAugmentationAsynch(
-                       final T2Reference id,
-                       final Set<Class<ExternalReferenceSPI>> ensureTypes,
-                       final ReferenceContext context,
-                       final ReferenceSetServiceCallback callback)
-                       throws ReferenceSetServiceException {
-               checkDao();
-               checkAugmentor();
-               Runnable r = new Runnable() {
-                       @Override
-                       public void run() {
-                               try {
-                                       
callback.referenceSetRetrieved(getReferenceSetWithAugmentation(
-                                                       id, ensureTypes, 
context));
-                               } catch (ReferenceSetServiceException rsse) {
-                                       
callback.referenceSetRetrievalFailed(rsse);
-                               }
-                       }
-               };
-               executeRunnable(r);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractServiceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractServiceImpl.java
deleted file mode 100644
index c24981e..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractServiceImpl.java
+++ /dev/null
@@ -1,44 +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.reference.impl;
-
-/**
- * Abstract superclass for all service implementation objects, will be used to
- * allow injection of thread pooling logic as and when we implement it.
- * 
- * @author Tom Oinn
- */
-public class AbstractServiceImpl {
-       /**
-        * Schedule a runnable for execution - current naive implementation 
uses a
-        * new thread and executes immediately, but this is where any thread 
pool
-        * logic would go if we wanted to add that.
-        * 
-        * @param r
-        */
-       protected void executeRunnable(Runnable r) {
-               makeExecutionThread(r).start();
-       }
-
-       protected Thread makeExecutionThread(Runnable r) {
-               return new Thread(r);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractT2ReferenceGenerator.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractT2ReferenceGenerator.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractT2ReferenceGenerator.java
deleted file mode 100644
index dedcc67..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/AbstractT2ReferenceGenerator.java
+++ /dev/null
@@ -1,111 +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.reference.impl;
-
-import static net.sf.taverna.t2.reference.T2ReferenceType.ErrorDocument;
-import static net.sf.taverna.t2.reference.T2ReferenceType.IdentifiedList;
-import static net.sf.taverna.t2.reference.T2ReferenceType.ReferenceSet;
-
-import java.util.List;
-
-import net.sf.taverna.t2.reference.ReferenceContext;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.T2ReferenceGenerator;
-import net.sf.taverna.t2.reference.WorkflowRunIdEntity;
-
-/**
- * An abstract class for implementing simple {@link T2ReferenceGenerator}s.
- * 
- * @author Stian Soiland-Reyes
- */
-public abstract class AbstractT2ReferenceGenerator implements
-               T2ReferenceGenerator {
-       public AbstractT2ReferenceGenerator() {
-               super();
-       }
-
-       private void initReferenceNamespace(T2ReferenceImpl r, ReferenceContext 
context) {
-               if (context == null) {
-                       // this is not good, just use the default namespace
-                       r.setNamespacePart(getNamespace());
-                       return;
-               }
-
-               List<WorkflowRunIdEntity> workflowRunIdEntities = context
-                               .getEntities(WorkflowRunIdEntity.class);
-               if (workflowRunIdEntities == null || 
workflowRunIdEntities.isEmpty()) {
-                       // this is not good, just use the default namespace
-                       r.setNamespacePart(getNamespace());
-                       return;
-               }
-
-               // there should be only one wf run id entity
-               String workflowRunId = ((WorkflowRunIdEntity) 
workflowRunIdEntities
-                               .get(0)).getWorkflowRunId();
-               r.setNamespacePart(workflowRunId);
-       }
-
-       @Override
-       public synchronized T2Reference nextReferenceSetReference(
-                       ReferenceContext context) {
-               T2ReferenceImpl r = new T2ReferenceImpl();
-               initReferenceNamespace(r, context);
-               r.setLocalPart(getNextLocalPart());
-               r.setReferenceType(ReferenceSet);
-               r.setDepth(0);
-               r.setContainsErrors(false);
-               return r;
-       }
-
-       /**
-        * Generate a new local part for a new {@link T2Reference reference}. 
The
-        * local part should be unique within this
-        * {@link T2ReferenceGenerator#getNamespace() namespace}.
-        * 
-        * @return A new, unique local part to identify a new reference.
-        */
-       protected abstract String getNextLocalPart();
-
-       @Override
-       public T2Reference nextListReference(boolean containsErrors, int 
listDepth,
-                       ReferenceContext context) {
-               T2ReferenceImpl r = new T2ReferenceImpl();
-               initReferenceNamespace(r, context);
-               r.setLocalPart(getNextLocalPart());
-               r.setReferenceType(IdentifiedList);
-               r.setDepth(listDepth);
-               r.setContainsErrors(containsErrors);
-               return r;
-       }
-
-       @Override
-       public T2Reference nextErrorDocumentReference(int depth,
-                       ReferenceContext context) {
-               T2ReferenceImpl r = new T2ReferenceImpl();
-               initReferenceNamespace(r, context);
-               r.setLocalPart(getNextLocalPart());
-               r.setReferenceType(ErrorDocument);
-               r.setDepth(depth);
-               // This is an error document, it contains errors by definition
-               r.setContainsErrors(true);
-               return r;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/CacheAspect.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/CacheAspect.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/CacheAspect.java
deleted file mode 100644
index 59b5e04..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/CacheAspect.java
+++ /dev/null
@@ -1,127 +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.reference.impl;
-
-import net.sf.taverna.t2.reference.DaoException;
-import net.sf.taverna.t2.reference.Identified;
-import net.sf.taverna.t2.reference.ReferenceServiceCacheProvider;
-import net.sf.taverna.t2.reference.T2Reference;
-
-import org.aspectj.lang.ProceedingJoinPoint;
-
-/**
- * An aspect used to intercept calls to the various data access objects and
- * divert through a write-through cache provider
- * 
- * @author Tom Oinn
- */
-public class CacheAspect {
-       private ReferenceServiceCacheProvider cacheProvider;
-
-       /**
-        * Return an injected ReferenceServiceCacheProvider
-        */
-       private final ReferenceServiceCacheProvider getCacheProvider() {
-               return cacheProvider;
-       }
-
-       /**
-        * Inject an instance of ReferenceServiceCacheProvider
-        * 
-        * @param cacheProvider
-        *            the cache provider to use
-        */
-       public final void setCacheProvider(
-                       final ReferenceServiceCacheProvider cacheProvider) {
-               this.cacheProvider = cacheProvider;
-       }
-
-       /**
-        * Handle a 'get by T2Reference' operation on a Dao
-        * 
-        * @param pjp
-        *            the join point representing the ongoing method call to 
the dao
-        * @return the entity identified by the T2Reference supplied to the 
method
-        *         to which this advice applies
-        * @throws DaoException
-        *             if anything goes wrong
-        */
-       public final Identified getObject(final ProceedingJoinPoint pjp)
-                       throws DaoException {
-               Identified result = null;
-
-               // Get the T2Reference from the argument to the get method
-               T2Reference id = (T2Reference) pjp.getArgs()[0];
-               if (id != null) {
-                       result = getCacheProvider().get(id);
-                       if (result != null)
-                               return result;
-               }
-               // If we miss the cache then call the method as usual
-               try {
-                       result = (Identified) pjp.proceed();
-               } catch (DaoException e) {
-                       throw e;
-               } catch (Throwable e) {
-                       throw new DaoException("Unexpected exception type 
during aspect "
-                                       + "based invocation", e);
-               }
-
-               // Write back to the cache
-               if (result != null)
-                       getCacheProvider().put(result);
-
-               return result;
-       }
-
-       /**
-        * Called around a write or update operation on the backing store, 
writes
-        * through to the cache after modifying the state of the backing store 
and
-        * before returning from the dao method
-        * 
-        * @param pjp
-        *            join point representing the ongoing method invocation to 
cache
-        * @throws DaoException
-        *             if anything goes wrong
-        */
-       public void putObject(final ProceedingJoinPoint pjp) throws 
DaoException {
-               // Get the Identified being stored by the method we're advising
-               Identified storedObject = (Identified) pjp.getArgs()[0];
-
-               try {
-                       // Run the store or update method
-                       pjp.proceed();
-               } catch (DaoException e) {
-                       throw e;
-               } catch (Throwable e) {
-                       throw new DaoException("Unexpected exception type 
during aspect "
-                                       + "based invocation", e);
-               }
-
-               /*
-                * Assuming the method isn't null and has an identifier (which 
it will
-                * if we haven't thrown an exception before now) write it back 
to the
-                * cache provider
-                */
-               if (storedObject != null && storedObject.getId() != null)
-                       getCacheProvider().put(storedObject);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ContextualizedT2ReferenceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ContextualizedT2ReferenceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ContextualizedT2ReferenceImpl.java
deleted file mode 100644
index 30d8492..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ContextualizedT2ReferenceImpl.java
+++ /dev/null
@@ -1,61 +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.reference.impl;
-
-import net.sf.taverna.t2.reference.ContextualizedT2Reference;
-import net.sf.taverna.t2.reference.T2Reference;
-
-/**
- * Simple implementation of ContextualizedT2Reference
- * 
- * @author Tom Oinn
- */
-public class ContextualizedT2ReferenceImpl implements 
ContextualizedT2Reference {
-       private T2Reference reference;
-       private int[] index;
-
-       public ContextualizedT2ReferenceImpl(T2Reference ref, int[] context) {
-               this.reference = ref;
-               this.index = context;
-       }
-
-       @Override
-       public int[] getIndex() {
-               return this.index;
-       }
-
-       @Override
-       public T2Reference getReference() {
-               return this.reference;
-       }
-
-       @Override
-       public String toString() {
-               StringBuilder sb = new StringBuilder("[");
-               String sep = "";
-               for (int idx : index) {
-                       sb.append(sep).append(idx);
-                       sep = ",";
-               }
-               return sb.append("]").append(reference).toString();
-       }
-       
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/EmptyReferenceContext.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/EmptyReferenceContext.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/EmptyReferenceContext.java
deleted file mode 100644
index 6af0430..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/EmptyReferenceContext.java
+++ /dev/null
@@ -1,46 +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.reference.impl;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.sf.taverna.t2.reference.ReferenceContext;
-
-/**
- * A trivial implementation of ReferenceContext, used if the context parameter
- * to any service method is null.
- * 
- * @author Tom Oinn
- */
-public class EmptyReferenceContext implements ReferenceContext {
-       /**
-        * Return an empty entity set for all queries.
-        */
-       @Override
-       public <T> List<T> getEntities(Class<T> arg0) {
-               return new ArrayList<>();
-       }
-
-       @Override
-       public void addEntity(Object entity) {
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentImpl.java
deleted file mode 100644
index da00d59..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentImpl.java
+++ /dev/null
@@ -1,120 +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.reference.impl;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import net.sf.taverna.t2.reference.ErrorDocument;
-import net.sf.taverna.t2.reference.StackTraceElementBean;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.h3.HibernateMappedEntity;
-
-/**
- * Simple bean implementation of ErrorDocument
- * 
- * @author Tom Oinn
- */
-public class ErrorDocumentImpl extends AbstractEntityImpl implements
-               ErrorDocument, HibernateMappedEntity {
-       private String exceptionMessage = "";
-       private String message = "";
-       List<StackTraceElementBean> stackTrace;
-       Set<T2Reference> errorReferences = new HashSet<>();
-       
-       public ErrorDocumentImpl() {
-               this.stackTrace = new ArrayList<>();
-       }
-
-       @Override
-       public String getExceptionMessage() {
-               return this.exceptionMessage;
-       }
-
-       public void setExceptionMessage(String exceptionMessage) {
-               this.exceptionMessage = exceptionMessage;
-       }
-
-       @Override
-       public String getMessage() {
-               return this.message;
-       }
-
-       public void setMessage(String message) {
-               this.message = message;
-       }
-
-       /**
-        * From interface, not used by hibernate internally
-        */
-       @Override
-       public List<StackTraceElementBean> getStackTraceStrings() {
-               return this.stackTrace;
-       }
-
-       /**
-        * Used by Hibernate to bodge around problems with interface types in 
the
-        * API
-        */
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       public void setStackTraceList(List newList) {
-               this.stackTrace = newList;
-       }
-
-       /**
-        * Used by Hibernate to bodge around problems with interface types in 
the
-        * API
-        */
-       @SuppressWarnings("rawtypes")
-       public List getStackTraceList() {
-               return this.stackTrace;
-       }
-
-       @Override
-       public Set<T2Reference> getErrorReferences() {
-               return errorReferences;
-       }
-
-       /**
-        * Used by Hibernate to bodge around problems with interface types in 
the
-        * API
-        */
-       @SuppressWarnings({ "unchecked", "rawtypes" })
-       public void setErrorReferenceSet(Set errorReferenceSet) {
-               this.errorReferences = errorReferenceSet;
-       }
-       
-       /**
-        * Used by Hibernate to bodge around problems with interface types in 
the
-        * API
-        */
-       @SuppressWarnings("rawtypes")
-       public Set getErrorReferenceSet() {
-               return this.errorReferences;
-       }
-       
-       @Override
-       public String toString() {
-               return getMessage();
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentServiceImpl.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentServiceImpl.java
deleted file mode 100644
index 1e78f92..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/ErrorDocumentServiceImpl.java
+++ /dev/null
@@ -1,163 +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.reference.impl;
-
-import static net.sf.taverna.t2.reference.impl.T2ReferenceImpl.getAsImpl;
-
-import java.util.Set;
-
-import net.sf.taverna.t2.reference.ErrorDocument;
-import net.sf.taverna.t2.reference.ErrorDocumentService;
-import net.sf.taverna.t2.reference.ErrorDocumentServiceException;
-import net.sf.taverna.t2.reference.ReferenceContext;
-import net.sf.taverna.t2.reference.ReferenceServiceException;
-import net.sf.taverna.t2.reference.T2Reference;
-
-/**
- * Implementation of ErrorDocumentService, inject with an appropriate
- * ErrorDocumentDao and T2ReferenceGenerator to enable.
- * 
- * @author Tom Oinn
- */
-public class ErrorDocumentServiceImpl extends AbstractErrorDocumentServiceImpl
-               implements ErrorDocumentService {
-       @Override
-       public ErrorDocument getError(T2Reference id)
-                       throws ErrorDocumentServiceException {
-               checkDao();
-               try {
-                       return errorDao.get(id);
-               } catch (Throwable t) {
-                       throw new ErrorDocumentServiceException(t);
-               }
-       }
-
-       /**
-        * Register the specified error and any child errors (which have the 
same
-        * namespace and local part but a lower depth, down to depth of zero
-        */
-       @Override
-       public ErrorDocument registerError(String message, Throwable t, int 
depth,
-                       ReferenceContext context) throws 
ErrorDocumentServiceException {
-               checkDao();
-               checkGenerator();
-
-               T2Reference ref = 
t2ReferenceGenerator.nextErrorDocumentReference(
-                               depth, context);
-               T2ReferenceImpl typedId = getAsImpl(ref);
-
-               ErrorDocument docToReturn = null;
-               for (; depth >= 0; depth--) {
-                       ErrorDocumentImpl edi = new ErrorDocumentImpl();
-                       if (docToReturn == null)
-                               docToReturn = edi;
-                       edi.setTypedId(typedId);
-                       if (message != null)
-                               edi.setMessage(message);
-                       else
-                               edi.setMessage("");
-                       if (t != null) {
-                               edi.setExceptionMessage(t.toString());
-                               for (StackTraceElement ste : t.getStackTrace()) 
{
-                                       StackTraceElementBeanImpl stebi = new 
StackTraceElementBeanImpl();
-                                       stebi.setClassName(ste.getClassName());
-                                       stebi.setFileName(ste.getFileName());
-                                       
stebi.setLineNumber(ste.getLineNumber());
-                                       
stebi.setMethodName(ste.getMethodName());
-                                       edi.stackTrace.add(stebi);
-                               }
-                       } else
-                               edi.setExceptionMessage("");
-                       try {
-                               errorDao.store(edi);
-                       } catch (Throwable t2) {
-                               throw new ErrorDocumentServiceException(t2);
-                       }
-                       if (depth > 0)
-                               typedId = typedId.getDeeperErrorReference();
-               }
-               return docToReturn;
-       }
-
-       @Override
-       public ErrorDocument registerError(String message, Set<T2Reference> 
errors,
-                       int depth, ReferenceContext context)
-                       throws ErrorDocumentServiceException {
-               checkDao();
-               checkGenerator();
-
-               T2Reference ref = 
t2ReferenceGenerator.nextErrorDocumentReference(
-                               depth, context);
-               T2ReferenceImpl typedId = T2ReferenceImpl.getAsImpl(ref);
-
-               ErrorDocument docToReturn = null;
-               for (; depth >= 0; depth--) {
-                       ErrorDocumentImpl edi = new ErrorDocumentImpl();
-                       if (docToReturn == null)
-                               docToReturn = edi;
-                       edi.setTypedId(typedId);
-                       if (message != null)
-                               edi.setMessage(message);
-                       else
-                               edi.setMessage("");
-                       if (errors != null)
-                               edi.setErrorReferenceSet(errors);
-                       edi.setExceptionMessage("");
-
-                       try {
-                               errorDao.store(edi);
-                       } catch (Throwable t2) {
-                               throw new ErrorDocumentServiceException(t2);
-                       }
-                       if (depth > 0)
-                               typedId = typedId.getDeeperErrorReference();
-               }
-               return docToReturn;
-       }
-
-       @Override
-       public T2Reference getChild(T2Reference errorId)
-                       throws ErrorDocumentServiceException {
-               T2ReferenceImpl refImpl = getAsImpl(errorId);
-               try {
-                       return refImpl.getDeeperErrorReference();
-               } catch (Throwable t) {
-                       throw new ErrorDocumentServiceException(t);
-               }
-       }
-
-       @Override
-       public boolean delete(T2Reference reference)
-                       throws ReferenceServiceException {
-               checkDao();
-               ErrorDocument doc = errorDao.get(reference);
-               if (doc == null)
-                       return false;
-               return errorDao.delete(doc);
-       }
-
-       @Override
-       public void deleteErrorDocumentsForWorkflowRun(String workflowRunId)
-                       throws ReferenceServiceException {
-               checkDao();
-               errorDao.deleteErrorDocumentsForWFRun(workflowRunId);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateErrorDocumentDao.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateErrorDocumentDao.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateErrorDocumentDao.java
deleted file mode 100644
index 470a82e..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateErrorDocumentDao.java
+++ /dev/null
@@ -1,154 +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.reference.impl;
-
-import static net.sf.taverna.t2.reference.T2ReferenceType.ErrorDocument;
-
-import java.util.List;
-
-import net.sf.taverna.t2.reference.DaoException;
-import net.sf.taverna.t2.reference.ErrorDocument;
-import net.sf.taverna.t2.reference.ErrorDocumentDao;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.annotations.DeleteIdentifiedOperation;
-import net.sf.taverna.t2.reference.annotations.GetIdentifiedOperation;
-import net.sf.taverna.t2.reference.annotations.PutIdentifiedOperation;
-
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
-
-/**
- * An implementation of ErrorDocumentDao based on Spring's HibernateDaoSupport.
- * To use this in spring inject a property 'sessionFactory' with either a
- * {@link org.springframework.orm.hibernate3.LocalSessionFactoryBean
- * LocalSessionFactoryBean} or the equivalent class from the T2Platform module
- * to add SPI based implementation discovery and mapping. To use outside of
- * Spring ensure you call the setSessionFactory(..) method before using this
- * (but really, use it from Spring, so much easier).
- * 
- * @author Tom Oinn
- */
-public class HibernateErrorDocumentDao extends HibernateDaoSupport implements
-               ErrorDocumentDao {
-       private static final String GET_ERRORS_FOR_RUN = "FROM 
ErrorDocumentImpl WHERE namespacePart = :workflow_run_id";
-
-       /**
-        * Fetch an ErrorDocument list by id
-        * 
-        * @param ref
-        *            the T2Reference to fetch
-        * @return a retrieved identified list of T2 references
-        * @throws DaoException
-        *             if the supplied reference is of the wrong type or if
-        *             something goes wrong fetching the data or connecting to 
the
-        *             database
-        */
-       @Override
-       @GetIdentifiedOperation
-       public ErrorDocument get(T2Reference ref) throws DaoException {
-               if (ref == null)
-                       throw new DaoException(
-                                       "Supplied reference is null, can't 
retrieve.");
-               if (!ref.getReferenceType().equals(ErrorDocument))
-                       throw new DaoException(
-                                       "This dao can only retrieve reference 
of type T2Reference.ErrorDocument");
-               if (!(ref instanceof T2ReferenceImpl))
-                       throw new DaoException(
-                                       "Reference must be an instance of 
T2ReferenceImpl");
-
-               try {
-                       return (ErrorDocumentImpl) getHibernateTemplate().get(
-                                       ErrorDocumentImpl.class,
-                                       ((T2ReferenceImpl) 
ref).getCompactForm());
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-
-       @Override
-       @PutIdentifiedOperation
-       public void store(ErrorDocument theDocument) throws DaoException {
-               if (theDocument.getId() == null)
-                       throw new DaoException(
-                                       "Supplied error document set has a null 
ID, allocate "
-                                                       + "an ID before calling 
the store method in the dao.");
-               if 
(!theDocument.getId().getReferenceType().equals(ErrorDocument))
-                       throw new DaoException("Strangely the list ID doesn't 
have type "
-                                       + "T2ReferenceType.ErrorDocument, 
something has probably "
-                                       + "gone badly wrong somewhere 
earlier!");
-               if (!(theDocument instanceof ErrorDocumentImpl))
-                       throw new DaoException(
-                                       "Supplied ErrorDocument not an instance 
of ErrorDocumentImpl");
-
-               try {
-                       getHibernateTemplate().save(theDocument);
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-
-       @Override
-       @DeleteIdentifiedOperation
-       public boolean delete(ErrorDocument theDocument) throws DaoException {
-               if (theDocument.getId() == null)
-                       throw new DaoException(
-                                       "Supplied error document set has a null 
ID, allocate "
-                                                       + "an ID before calling 
the store method in the dao.");
-               if (!theDocument.getId().getReferenceType()
-                               .equals(ErrorDocument))
-                       throw new DaoException("Strangely the list ID doesn't 
have type "
-                                       + "T2ReferenceType.ErrorDocument, 
something has probably "
-                                       + "gone badly wrong somewhere 
earlier!");
-               if (!(theDocument instanceof ErrorDocumentImpl))
-                       throw new DaoException(
-                                       "Supplied ErrorDocument not an instance 
of ErrorDocumentImpl");
-
-               try {
-                       getHibernateTemplate().delete(theDocument);
-                       return true;
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       @DeleteIdentifiedOperation
-       public synchronized void deleteErrorDocumentsForWFRun(String 
workflowRunId)
-                       throws DaoException {
-               try {
-                       // Select all ErrorDocuments for this wf run
-                       Session session = getSession();
-                       Query selectQuery = 
session.createQuery(GET_ERRORS_FOR_RUN);
-                       selectQuery.setString("workflow_run_id", workflowRunId);
-                       List<ErrorDocument> errorDocuments = selectQuery.list();
-                       session.close();
-                       /*
-                        * need to close before we do delete otherwise 
hibernate complains
-                        * that two sessions are accessing collection
-                        */
-                       getHibernateTemplate().deleteAll(errorDocuments);
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/3ecb1291/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateListDao.java
----------------------------------------------------------------------
diff --git 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateListDao.java
 
b/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateListDao.java
deleted file mode 100644
index 62ba83f..0000000
--- 
a/taverna-reference-impl/src/main/java/net/sf/taverna/t2/reference/impl/HibernateListDao.java
+++ /dev/null
@@ -1,151 +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.reference.impl;
-
-import static net.sf.taverna.t2.reference.T2ReferenceType.IdentifiedList;
-
-import java.util.List;
-
-import net.sf.taverna.t2.reference.DaoException;
-import net.sf.taverna.t2.reference.IdentifiedList;
-import net.sf.taverna.t2.reference.ListDao;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.reference.annotations.DeleteIdentifiedOperation;
-import net.sf.taverna.t2.reference.annotations.GetIdentifiedOperation;
-import net.sf.taverna.t2.reference.annotations.PutIdentifiedOperation;
-
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
-
-/**
- * An implementation of ListDao based on Spring's HibernateDaoSupport. To use
- * this in spring inject a property 'sessionFactory' with either a
- * {@link org.springframework.orm.hibernate3.LocalSessionFactoryBean
- * LocalSessionFactoryBean} or the equivalent class from the T2Platform module
- * to add SPI based implementation discovery and mapping. To use outside of
- * Spring ensure you call the setSessionFactory(..) method before using this
- * (but really, use it from Spring, so much easier).
- * 
- * @author Tom Oinn
- */
-public class HibernateListDao extends HibernateDaoSupport implements ListDao {
-       private static final String GET_LISTS_FOR_RUN = "FROM 
T2ReferenceListImpl WHERE namespacePart = :workflow_run_id";
-
-       /**
-        * Fetch a t2reference list by id
-        * 
-        * @param ref
-        *            the T2Reference to fetch
-        * @return a retrieved identified list of T2 references
-        * @throws DaoException
-        *             if the supplied reference is of the wrong type or if
-        *             something goes wrong fetching the data or connecting to 
the
-        *             database
-        */
-       @Override
-       @GetIdentifiedOperation
-       public IdentifiedList<T2Reference> get(T2Reference ref) throws 
DaoException {
-               if (ref == null)
-                       throw new DaoException(
-                                       "Supplied reference is null, can't 
retrieve.");
-               if (!ref.getReferenceType().equals(IdentifiedList))
-                       throw new DaoException(
-                                       "This dao can only retrieve reference 
of type T2Reference.IdentifiedList");
-               if (!(ref instanceof T2ReferenceImpl))
-                       throw new DaoException(
-                                       "Reference must be an instance of 
T2ReferenceImpl");
-
-               try {
-                       return (T2ReferenceListImpl) getHibernateTemplate().get(
-                                       T2ReferenceListImpl.class,
-                                       ((T2ReferenceImpl) 
ref).getCompactForm());
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-
-       @Override
-       @PutIdentifiedOperation
-       public void store(IdentifiedList<T2Reference> theList) throws 
DaoException {
-               if (theList.getId() == null)
-                       throw new DaoException("Supplied list set has a null 
ID, allocate "
-                                       + "an ID before calling the store 
method in the dao.");
-               if (!theList.getId().getReferenceType().equals(IdentifiedList))
-                       throw new DaoException("Strangely the list ID doesn't 
have type "
-                                       + "T2ReferenceType.IdentifiedList, 
something has probably "
-                                       + "gone badly wrong somewhere 
earlier!");
-               if (!(theList instanceof T2ReferenceListImpl))
-                       throw new DaoException(
-                                       "Supplied identifier list not an 
instance of T2ReferenceList");
-
-               try {
-                       getHibernateTemplate().save(theList);
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-
-       @Override
-       public boolean delete(IdentifiedList<T2Reference> theList)
-                       throws DaoException {
-               if (theList.getId() == null)
-                       throw new DaoException("Supplied list set has a null 
ID, allocate "
-                                       + "an ID before calling the store 
method in the dao.");
-               if (!theList.getId().getReferenceType().equals(IdentifiedList))
-                       throw new DaoException("Strangely the list ID doesn't 
have type "
-                                       + "T2ReferenceType.IdentifiedList, 
something has probably "
-                                       + "gone badly wrong somewhere 
earlier!");
-               if (!(theList instanceof T2ReferenceListImpl))
-                       throw new DaoException(
-                                       "Supplied identifier list not an 
instance of T2ReferenceList");
-
-               try {
-                       getHibernateTemplate().delete(theList);
-                       return true;
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       @DeleteIdentifiedOperation
-       public synchronized void deleteIdentifiedListsForWFRun(String 
workflowRunId)
-                       throws DaoException {
-               try {
-                       // Select all T2Reference lists for this wf run
-                       Session session = getSession();
-                       Query selectQuery = 
session.createQuery(GET_LISTS_FOR_RUN);
-                       selectQuery.setString("workflow_run_id", workflowRunId);
-                       List<IdentifiedList<T2Reference>> identifiedLists = 
selectQuery
-                                       .list();
-                       session.close();
-                       /*
-                        * need to close before we do delete otherwise 
hibernate complains
-                        * that two sessions are accessing collection
-                        */
-                       getHibernateTemplate().deleteAll(identifiedLists);
-               } catch (Exception ex) {
-                       throw new DaoException(ex);
-               }
-       }
-}

Reply via email to