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

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

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListService.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListService.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListService.java
deleted file mode 100644
index dae18af..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListService.java
+++ /dev/null
@@ -1,144 +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;
-
-import static org.springframework.transaction.annotation.Propagation.REQUIRED;
-import static org.springframework.transaction.annotation.Propagation.SUPPORTS;
-
-import java.util.List;
-
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * Provides facilities to register list of T2References, register empty lists at
- * any given depth and to resolve appropriate T2Reference instances back to
- * these lists. Registration operations assign names and lock the list contents
- * as a result. This service operates strictly on T2References, it neither tries
- * to nor is capable of any form of reference resolution, so aspects such as
- * collection traversal are not handled here (these are performed by the top
- * level reference service)
- * 
- * @author Tom Oinn
- */
-@Transactional(propagation = SUPPORTS, readOnly = true)
-public interface ListService {
-	/**
-	 * Register a new list of T2References. The depth of the list will be
-	 * calculated based on the depth of the references within it - if these are
-	 * not uniform the list won't be created (all children of a list in T2 must
-	 * have the same depth as their siblings). Provided this constraint is
-	 * satisfied the list is named and stored in the backing store. The returned
-	 * list is at this point immutable, operations modifying it either directly
-	 * or through the ListIterator will fail with an IllegalStateException.
-	 * Implementations should copy the input list rather than keeping a
-	 * reference to it to preserve this property.
-	 * <p>
-	 * The created references will be related with a workflow run id passed
-	 * through ReferenceContext so we can track all data referenced by a
-	 * specific run.
-	 * 
-	 * @param items
-	 *            the T2Reference instances to store as a list.
-	 * @return a new IdentifiedList of T2Reference instances allocated with a
-	 *         T2Reference itself as the unique name and cached by the backing
-	 *         store.
-	 * @throws ListServiceException
-	 *             if there is a problem either with the specified list of
-	 *             references or with the storage subsystem.
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	IdentifiedList<T2Reference> registerList(List<T2Reference> items,
-			ReferenceContext context) throws ListServiceException;
-
-	/**
-	 * Register a new empty list with the specified depth. This is needed
-	 * because in the case of empty lists we can't calculate the depth from the
-	 * list items (what with there not being any!), but the depth property is
-	 * critical for the T2 iteration and collection management system in the
-	 * enactor - we need to know that this is an empty list that
-	 * <em>would have</em> contained lists, for example.
-	 * <p>
-	 * The created references will be related with a workflow run id passed
-	 * through ReferenceContext so we can track all data referenced by a
-	 * specific run.
-	 * 
-	 * @param depth
-	 *            the depth of the empty list, must be >=1
-	 * @return a new empty IdentifiedList allocated with a T2Reference itself as
-	 *         the unique name and cached by the backing store.
-	 * @throws ListServiceException
-	 *             if there is a problem with the storage subsystem or if called
-	 *             with an invalid depth argument
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	IdentifiedList<T2Reference> registerEmptyList(int depth,
-			ReferenceContext context) throws ListServiceException;
-
-	/**
-	 * Retrieve a previously named and registered list of T2Reference instances
-	 * identified by the specified T2Reference (which must be of type
-	 * T2ReferenceType.IdentifiedList)
-	 * 
-	 * @param id
-	 *            identifier of the list of reference to retrieve
-	 * @return an IdentifiedList of T2References. Note that because this list is
-	 *         named it is effectively immutable, if you want to modify the list
-	 *         you have to create and register a new list, you cannot modify the
-	 *         returned value of this directly. This is why there is no update
-	 *         method in the service or dao for reference lists.
-	 * @throws ListServiceException
-	 *             if anything goes wrong with the retrieval process or if there
-	 *             is something wrong with the reference (such as it being of
-	 *             the wrong reference type).
-	 */
-	IdentifiedList<T2Reference> getList(T2Reference id)
-			throws ListServiceException;
-
-	/**
-	 * Functionality the same as {@link #getList(T2Reference) getList} but in
-	 * asynchronous mode, returning immediately and using the supplied callback
-	 * to communicate its results.
-	 * 
-	 * @param id
-	 *            a {@link T2Reference} identifying an {@link IdentifiedList} to
-	 *            retrieve
-	 * @param callback
-	 *            a {@link ListServiceCallback} used to convey the results of
-	 *            the asynchronous call
-	 * @throws ListServiceException
-	 *             if the reference set service is not correctly configured.
-	 *             Exceptions encountered when performing the asynchronous call
-	 *             are not returned here, for obvious reasons, and are instead
-	 *             messaged through the callback interface.
-	 */
-	void getListAsynch(T2Reference id, ListServiceCallback callback)
-			throws ListServiceException;
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	boolean delete(T2Reference reference) throws ReferenceServiceException;
-
-	/**
-	 * Delete all {@link IdentifiedList}S used by the specific workflow run.
-	 */
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	void deleteIdentifiedListsForWorkflowRun(String workflowRunId)
-			throws ReferenceServiceException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceCallback.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceCallback.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceCallback.java
deleted file mode 100644
index 754caf6..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceCallback.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * Callback interface used by asynchronous methods in the
- * {@link ListService} interface
- * 
- * @author Tom Oinn
- */
-public interface ListServiceCallback {
-	/**
-	 * Called when the requested {@link ReferenceSet} has been successfully
-	 * retrieved.
-	 * 
-	 * @param references
-	 *            the ReferenceSet requested
-	 */
-	void listRetrieved(IdentifiedList<T2Reference> references);
-
-	/**
-	 * Called if the retrieval failed for some reason
-	 * 
-	 * @param cause
-	 *            a ListServiceException explaining the retrieval
-	 *            failure
-	 */
-	void listRetrievalFailed(ListServiceException cause);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceException.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceException.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceException.java
deleted file mode 100644
index 01cdd82..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ListServiceException.java
+++ /dev/null
@@ -1,48 +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;
-
-/**
- * Thrown by methods in the ListService interface if anything goes wrong with
- * list registration or retrieval. Any underlying exceptions that can't be
- * handled in the service layer are wrapped in this and re-thrown.
- * 
- * @author Tom Oinn
- */
-public class ListServiceException extends RuntimeException {
-	private static final long serialVersionUID = 5049346991071587866L;
-
-	public ListServiceException() {
-		super();
-	}
-
-	public ListServiceException(String message) {
-		super(message);
-	}
-
-	public ListServiceException(Throwable cause) {
-		super(cause);
-	}
-
-	public ListServiceException(String message, Throwable cause) {
-		super(message, cause);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceContext.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceContext.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceContext.java
deleted file mode 100644
index 0ce2de3..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceContext.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;
-
-import java.util.List;
-
-/**
- * Many operations over the reference manager require access to an appropriate
- * context. The context contains hooks out to platform level facilities such as
- * the security agent framework (when used in conjunction with the enactor).
- * <p>
- * This interface is also used to pass in resources required by the external
- * reference translation and construction SPIs. An example might be a translator
- * from File to URL could work by copying the source file to a web share of some
- * kind, but obviously this can't happen unless properties such as the location
- * of the web share folder are known. These properties tend to be properties of
- * the installation rather than of the code, referring as they do to resources
- * on the machine hosting the reference manager (and elsewhere).
- * <p>
- * Where entities in the context represent properties of the platform rather
- * than the 'session' they are likely to be configured in a central location
- * such as a Spring context definition, this interface is neutral to those
- * concerns.
- * 
- * @author Tom Oinn
- */
-public interface ReferenceContext {
-	/**
-	 * Return a list of all entities in the resolution context which match the
-	 * supplied entity type argument.
-	 * 
-	 * @param <T>
-	 *            The generic type of the returned entity list. In general the
-	 *            compiler is smart enough that you don't need to specify this,
-	 *            it can pick it up from the entityType parameter.
-	 * @param entityType
-	 *            Class of entity to return. Use Object.class to return all
-	 *            entities within the reference context
-	 * @return a list of entities from the reference context which can be cast
-	 *         to the specified type.
-	 */
-	<T extends Object> List<T> getEntities(Class<T> entityType);
-
-	/**
-	 * Add an entity to the context.
-	 */
-	void addEntity(Object entity);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceService.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceService.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceService.java
deleted file mode 100644
index ed52ecd..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceService.java
+++ /dev/null
@@ -1,294 +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;
-
-import static org.springframework.transaction.annotation.Propagation.REQUIRED;
-import static org.springframework.transaction.annotation.Propagation.SUPPORTS;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * Top level access point to the reference manager for client code which is
- * aware of references and error documents. Provides methods to store and
- * retrieve instances of ReferenceSet, IdentifiedList&lt;T2Reference&gt; and
- * ErrorDocument. Acts as an integration layer for the three sub-component
- * service, providing in addition collection traversal and retrieval of lists of
- * identified entities (ReferenceSet, IdentifiedList&lt;Identified&gt; and
- * ErrorDocument) from a T2Reference identifying a list.
- * <p>
- * Also provides registration and retrieval logic for POJOs where supported by
- * appropriate plug-in instances, these methods can be used by code which is not
- * 'reference aware' to store and retrieve value types transparently.
- * <p>
- * Resolution of collections can happen at three different levels:
- * <ol>
- * <li>The embedded {@link ListService} resolves the collection ID to a list of
- * child IDs, and doesn't traverse these children if they are themselves lists.
- * Use the {@link #getListService()}.{@link ListService#getList(T2Reference)
- * getList()} to call this method directly on the list service if you need this
- * functionality, returning a list of {@link T2Reference}</li>
- * <li>The {@link #resolveIdentifier(T2Reference, Set, ReferenceContext)
- * resolveIdentifier} method in this service instead resolves to a fully
- * realized collection of the entities which those IDs reference, and does
- * recursively apply this to child lists, resulting in a nested collection
- * structure where the leaf nodes are ReferenceSet and ErrorDocument instances
- * and non-leaf are IdentifiedList of Identified (the super-interface for
- * IdentifiedList, ReferenceSet and ErrorDocument). Use this method if you want
- * to access the ExternalReferenceSPI and ErrorDocument entities directly
- * because your code can act on a particular reference type - in general in
- * these cases you would also be using the augmentation system to ensure that
- * the required reference type was actually present in the collection structure.
- * </li>
- * <li>The third level of resolution is to render the identifier through
- * {@link #renderIdentifier(T2Reference, Class, ReferenceContext)
- * renderIdentifier} to a nested structure as in
- * {@link #resolveIdentifier(T2Reference, Set, ReferenceContext)
- * resolveIdentifier} but where the structure consists of POJOs of the specified
- * type and lists or either list or the leaf type. This is used when your code
- * is reference agnostic and just requires the values in an easy to consume
- * fashion. Note that because this involves pulling the entire structure into
- * memory it may not be suitable for large data, use with caution. This method
- * will, unlike {@link #resolveIdentifier(T2Reference, Set, ReferenceContext)
- * resolveIdentifier}, fail if the reference contains or is an error.</li>
- * </ol>
- * 
- * @author Tom Oinn
- */
-public interface ReferenceService {
-	/**
-	 * Perform recursive identifier resolution, building a collection structure
-	 * of Identified objects, any collection elements being IdentifiedLists of
-	 * Identified subclasses. If the id has depth 0 this will just return the
-	 * Identified to which that id refers.
-	 * 
-	 * @param id
-	 *            the T2Reference to resolve
-	 * @param ensureTypes
-	 *            a set of ExternalReferenceSPI classes, this is used to augment
-	 *            any resolved ReferenceSet instances to ensure that each one
-	 *            has at least one of the specified types. If augmentation is
-	 *            not required this can be set to null.
-	 * @param context
-	 *            the ReferenceContext to use to resolve this and any
-	 *            recursively resolved identifiers <br/>
-	 *            If null the implementation should insert a new empty context
-	 *            and proceed.
-	 * @return fully resolved Identified subclass - this is either a (recursive)
-	 *         IdentifiedList of Identified, a ReferenceSet or an ErrorDocument
-	 * @throws ReferenceServiceException
-	 *             if any problems occur during resolution
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	Identified resolveIdentifier(T2Reference id,
-			Set<Class<ExternalReferenceSPI>> ensureTypes,
-			ReferenceContext context) throws ReferenceServiceException;
-
-	/**
-	 * As resolveIdentifier but using a callback object and returning
-	 * immediately
-	 * 
-	 * @throws ReferenceServiceException
-	 *             if anything goes wrong with the setup of the resolution job.
-	 *             Any exceptions during the resolution process itself are
-	 *             communicated through the callback object.
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	void resolveIdentifierAsynch(T2Reference id,
-			Set<Class<ExternalReferenceSPI>> ensureTypes,
-			ReferenceContext context,
-			ReferenceServiceResolutionCallback callback)
-			throws ReferenceServiceException;
-
-	/**
-	 * Resolve the given identifier, building a POJO structure where the
-	 * non-list items are of the desired class. This makes of any external
-	 * references that can directly expose the appropriate object type, then, if
-	 * none are present in a given reference set, it attempts to locate a POJO
-	 * builder and uses the cheapest available reference to get an InputStream
-	 * and build the target object. If no appropriate builder or embedded value
-	 * can be found the process throws ReferenceServiceException, it also does
-	 * this if any error occurs during retrieval of a (potentially nested)
-	 * identifier.
-	 * <p>
-	 * This method will return a collection structure mirroring that of the
-	 * specified T2Reference, client code should use T2Reference.getDepth() to
-	 * determine the depth of this structure; a reference with depth of 0 means
-	 * that the object returned is of the specified class, one of depth 1 is a
-	 * list of this class and so on.
-	 * <p>
-	 * If the T2Reference contains or is an error this method will not retrieve
-	 * it, and instead throws ReferenceServiceException
-	 * 
-	 * @see StreamToValueConverterSPI
-	 * @see ValueCarryingExternalReference
-	 * @param id
-	 *            the T2Reference to render to a POJO
-	 * @param leafClass
-	 *            the java class for leaves in the resulting POJO structure
-	 * @param context
-	 *            a reference context, potentially used if required by the
-	 *            openStream methods of ExternalReferenceSPI implementations
-	 *            used as sources for the POJO construction <br/>
-	 *            If null the implementation should insert a new empty context
-	 *            and proceed.
-	 * @return a java structure as defined above
-	 * @throws ReferenceServiceException
-	 *             if anything fails during this process
-	 */
-	Object renderIdentifier(T2Reference id, Class<?> leafClass,
-			ReferenceContext context) throws ReferenceServiceException;
-
-	/**
-	 * The top level registration method is used to register either as yet
-	 * unregistered ErrorDocuments and ReferenceSets (if these are passed in and
-	 * already have an identifier this call does nothing) and arbitrarily nested
-	 * Lists of the same. In addition any ExternalReferenceSPI instances found
-	 * will be wrapped in a single item ReferenceSet and registered, and any
-	 * Throwables will be wrapped in an ErrorDocument and registered. Lists will
-	 * be converted to IdentifiedList&lt;T2Reference&gt; and registered if all
-	 * children can be (or were already) appropriately named.
-	 * <p>
-	 * This method is only valid on parameters of the following type :
-	 * <ol>
-	 * <li>{@link T2Reference} - returned immediately as itself, this is needed
-	 * because it means we can register lists of existing T2Reference</li>
-	 * <li>{@link ReferenceSet} - registered if not already registered,
-	 * otherwise returns existing T2Reference</li>
-	 * <li>{@link ErrorDocument} - same behaviour as ReferenceSet</li>
-	 * <li>{@link ExternalReferenceSPI} - wrapped in ReferenceSet, registered
-	 * and ID returned</li>
-	 * <li>Throwable - wrapped in {@link ErrorDocument} with no message,
-	 * registered and ID returned</li>
-	 * <li>List - all children are first registered, if this succeeds the list
-	 * is itself registered as an {@link IdentifiedList} of {@link T2Reference}
-	 * and its reference returned.</li>
-	 * </ol>
-	 * The exception to this is if the useConvertorSPI parameter is set to true
-	 * - in this case any objects which do not match the above allowed list will
-	 * be run through any available ValueToReferenceConvertorSPI instances in
-	 * turn until one succeeds or all fail, which may result in the creation of
-	 * ExternalReferenceSPI instances. As these can be registered such objects
-	 * will not cause an exception to be thrown.
-	 * 
-	 * @see ValueToReferenceConverterSPI
-	 * @param o
-	 *            the object to register with the reference system, must comply
-	 *            with and will be interpreted as shown in the type list above.
-	 * @param targetDepth
-	 *            the depth of the top level object supplied. This is needed
-	 *            when registering empty collections and error documents,
-	 *            whether as top level types or as members of a collection
-	 *            within the top level type. If registering a collection this is
-	 *            the collection depth, so a List of ReferenceSchemeSPI would be
-	 *            depth 1. Failing to specify this correctly will result in
-	 *            serious problems downstream so be careful! We can't catch all
-	 *            potential problems in this method (although some errors will
-	 *            be trapped).
-	 * @param useConverterSPI
-	 *            whether to attempt to use the ValueToReferenceConvertorSPI
-	 *            registry (if defined and available) to map arbitrary objects
-	 *            to ExternalReferenceSPI instances on the fly. The registry of
-	 *            converters is generally injected into the implementation of
-	 *            this service.
-	 * @param context
-	 *            ReferenceContext to use if required by component services,
-	 *            this is most likely to be used by the object to reference
-	 *            converters if engaged. <br/>
-	 *            If null the implementation should insert a new empty context
-	 *            and proceed.
-	 * @return a T2Reference to the registered object
-	 * @throws ReferenceServiceException
-	 *             if the object type (or, for collections, the recursive type
-	 *             of its contents) is not in the allowed list or if a problem
-	 *             occurs during registration. Also thrown if attempting to use
-	 *             the converter SPI without an attached registry.
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	T2Reference register(Object o, int targetDepth, boolean useConverterSPI,
-			ReferenceContext context) throws ReferenceServiceException;
-
-	/**
-	 * Given a string representation of a T2Reference create a new T2Reference
-	 * with the correct depth etc.
-	 * 
-	 * @param reference
-	 * @return a new T2Reference parsed from the original
-	 */
-	T2Reference referenceFromString(String reference);
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	boolean delete(T2Reference reference) throws ReferenceServiceException;
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	boolean delete(List<T2Reference> references)
-			throws ReferenceServiceException;
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	void deleteReferencesForWorkflowRun(String workflowRunId)
-			throws ReferenceServiceException;
-
-	/**
-	 * Returns the {@link ErrorDocumentService} this ReferenceService uses, use
-	 * this when you need functionality from that service explicitly.
-	 */
-	ErrorDocumentService getErrorDocumentService();
-
-	/**
-	 * Returns the {@link ReferenceSetService} this ReferenceService uses, use
-	 * this when you need functionality from that service explicitly.
-	 */
-	ReferenceSetService getReferenceSetService();
-
-	/**
-	 * Returns the {@link ListService} this ReferenceService uses, use this when
-	 * you need functionality from that service explicitly.
-	 */
-	ListService getListService();
-
-	/**
-	 * Initiates a traversal of the specified t2reference, traversing to
-	 * whatever level of depth is required such that all identifiers returned
-	 * within the iterator have the specified depth. The context (i.e. the index
-	 * path from the originally specified reference to each reference within the
-	 * iteration) is included through use of the ContextualizedT2Reference
-	 * wrapper class
-	 * 
-	 * @param source
-	 *            the T2Reference from which to traverse. In general this is the
-	 *            root of a collection structure.
-	 * @param desiredDepth
-	 *            the desired depth of all returned T2References, must be less
-	 *            than or equal to that of the source reference.
-	 * @throws ReferenceServiceException
-	 *             if unable to create the iterator for some reason. Note that
-	 *             implementations are free to lazily perform the iteration so
-	 *             this method may succeed but the iterator produced can fail
-	 *             when used. If the iterator fails it will do so by throwing
-	 *             one of the underlying sub-service exceptions.
-	 */
-	@Transactional(propagation = SUPPORTS, readOnly = true)
-	Iterator<ContextualizedT2Reference> traverseFrom(T2Reference source,
-			int desiredDepth);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceCacheProvider.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceCacheProvider.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceCacheProvider.java
deleted file mode 100644
index 56ebe4d..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceCacheProvider.java
+++ /dev/null
@@ -1,52 +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;
-
-/**
- * A simple interface to be implemented by data access object cache providers,
- * intended to be used to inject cache implementations through AoP
- * 
- * @author Tom Oinn
- */
-public interface ReferenceServiceCacheProvider {
-	/**
-	 * Called after an {@link Identified} has been written to the backing store,
-	 * either for the first time or after modification. In our model
-	 * {@link ReferenceSet} is the only {@link Identified} that is modifiable,
-	 * specifically only by the addition of {@link ExternalReferenceSPI}
-	 * instances to its reference set.
-	 * 
-	 * @param i
-	 *            the Identified written to the backing store
-	 */
-	void put(Identified i);
-
-	/**
-	 * Called before an attempt is made to retrieve an item from the backing
-	 * store
-	 * 
-	 * @param id
-	 *            the T2Reference of the item to retrieve
-	 * @return a cached item with matching {@link T2Reference}, or <tt>null</tt>
-	 *         if the cache does not contain that item
-	 */
-	Identified get(T2Reference id);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceException.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceException.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceException.java
deleted file mode 100644
index 25e1765..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceException.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * Thrown by methods in the ReferenceService, used to wrap any underlying
- * exceptions from lower layers.
- * 
- * @author Tom Oinn
- */
-public class ReferenceServiceException extends RuntimeException {
-	private static final long serialVersionUID = -2607675495513408333L;
-
-	public ReferenceServiceException() {
-		//
-	}
-
-	public ReferenceServiceException(String message) {
-		super(message);
-	}
-
-	public ReferenceServiceException(Throwable cause) {
-		super(cause);
-	}
-
-	public ReferenceServiceException(String message, Throwable cause) {
-		super(message, cause);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceResolutionCallback.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceResolutionCallback.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceResolutionCallback.java
deleted file mode 100644
index 3b67da0..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceServiceResolutionCallback.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * Used by the asynchronous form of the resolveIdentifier method in
- * {@link ReferenceService}
- * 
- * @author Tom Oinn
- */
-public interface ReferenceServiceResolutionCallback {
-	/**
-	 * Called when the resolution process has completed
-	 * 
-	 * @param result
-	 *            the Identified that corresponds to the {@link T2Reference}
-	 *            specified in the call to
-	 *            {@link ReferenceService#resolveIdentifierAsynch}
-	 */
-	void identifierResolved(Identified result);
-
-	/**
-	 * Called when the resolution process has failed
-	 * 
-	 * @param cause
-	 *            a ReferenceServiceException describing the failure
-	 */
-	void resolutionFailed(ReferenceServiceException cause);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSet.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSet.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSet.java
deleted file mode 100644
index 5c82cee..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSet.java
+++ /dev/null
@@ -1,53 +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;
-
-import java.util.Set;
-
-/**
- * A set of ExternalReferenceSPI instances, all of which point to the same (byte
- * equivalent) data. The set is identified by a T2Reference. This interface is
- * read-only, as are most of the interfaces in this package. Rather than
- * modifying properties of the reference set directly the client code should use
- * the reference manager functionality.
- * <p>
- * It is technically okay, but rather unhelpful, to have a ReferenceSet with no
- * ExternalReferenceSPI implementations. In general this is a sign that
- * something has gone wrong somewhere as the reference set will not be
- * resolvable in any way, but it would still retain its unique identifier so
- * there may be occasions where this is the desired behaviour.
- * 
- * @author Tom Oinn
- */
-public interface ReferenceSet extends Identified {
-	/**
-	 * The reference set contains a set of ExternalReferenceSPI instances, all
-	 * of which point to byte equivalent data.
-	 * 
-	 * @return the set of references to external data
-	 */
-	Set<ExternalReferenceSPI> getExternalReferences();
-
-	/**
-	 * Get approximate size of the data pointed to by this ReferenceSet.
-	 */
-	Long getApproximateSizeInBytes();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentationException.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentationException.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentationException.java
deleted file mode 100644
index 1922baa..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentationException.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * Thrown when the reference set augmentor is unable to provide at least one of
- * the desired types for any reason.
- * 
- * @author Tom Oinn
- */
-public class ReferenceSetAugmentationException extends RuntimeException {
-	private static final long serialVersionUID = -6156508424485682266L;
-
-	public ReferenceSetAugmentationException() {
-		//
-	}
-
-	public ReferenceSetAugmentationException(String message) {
-		super(message);
-	}
-
-	public ReferenceSetAugmentationException(Throwable cause) {
-		super(cause);
-	}
-
-	public ReferenceSetAugmentationException(String message, Throwable cause) {
-		super(message, cause);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentor.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentor.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentor.java
deleted file mode 100644
index 1dd2f92..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentor.java
+++ /dev/null
@@ -1,92 +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;
-
-import java.util.Set;
-
-/**
- * Provides a framework to find and engage appropriate instances of
- * {@link ExternalReferenceTranslatorSPI} and
- * {@link ExternalReferenceBuilderSPI} to build external references from,
- * respectively, other external references and from streams. These are then used
- * to augment the contents of implementations of {@link ReferenceSet} with
- * additional {@link ExternalReferenceSPI} implementations.
- * <p>
- * Methods in this interface throw the runtime exception
- * {@link ReferenceSetAugmentationException} for all problems, other exceptions
- * are wrapped in this type and re-thrown.
- * 
- * @author Tom Oinn
- */
-public interface ReferenceSetAugmentor {
-	/**
-	 * Attempts to modify the supplied ReferenceSet such that it contains an
-	 * implementation of at least one of the ExternalReferenceSPI classes
-	 * specified. Uses the supplied context if required to build or translate
-	 * existing references within the reference set.
-	 * 
-	 * @param references
-	 *            reference set object to augment
-	 * @param targetReferenceTypes
-	 *            a set of Class objects, this method succeeds if it can create
-	 *            an instance of at least one of these pointing to the same data
-	 *            as the other external references in the supplied reference set
-	 * @param context
-	 *            a reference resolution context, potentially required for
-	 *            access to the existing references or for creation of the
-	 *            augmentations
-	 * @return a set of new ExternalReferenceSPI instances such that the union
-	 *         of this set with the pre-existing reference set satisfies the
-	 *         target reference constraint. It is the responsibility of the
-	 *         caller to re-integrate these references into the original
-	 *         ReferenceSet if so desired.
-	 * @throws ReferenceSetAugmentationException
-	 *             if a problem occurs either in configuration of the
-	 *             ReferenceSetAugmentor or in the augmentation process itself.
-	 *             Any other exception types are wrapped in this and re-thrown.
-	 */
-	Set<ExternalReferenceSPI> augmentReferenceSet(ReferenceSet references,
-			Set<Class<ExternalReferenceSPI>> targetReferenceTypes,
-			ReferenceContext context) throws ReferenceSetAugmentationException;
-
-	/**
-	 * As with {@link #augmentReferenceSet(ReferenceSet, Set, ReferenceContext)}
-	 * but called in an asynchronous fashion. Returns immediately and uses the
-	 * supplied instance of {@link ReferenceSetAugmentorCallback} to provide
-	 * either the augmented {@link ReferenceSet} or an exception indicating a
-	 * failure in the augmentation process.
-	 * 
-	 * @param callback
-	 *            callback object used to indicate failure or to return the
-	 *            modified reference set
-	 * @throws ReferenceSetAugmentationException
-	 *             if the ReferenceSetAugmentor is missing critical
-	 *             configuration. Exceptions that happen during augmentation or
-	 *             as a result of a failure to find an appropriate augmentation
-	 *             path are signalled by calls to the callback object, this
-	 *             method only throws the exception if it can't even try to do
-	 *             the augmentation for some reason.
-	 */
-	void augmentReferenceSetAsynch(ReferenceSet references,
-			Set<Class<ExternalReferenceSPI>> targetReferenceTypes,
-			ReferenceContext context, ReferenceSetAugmentorCallback callback)
-			throws ReferenceSetAugmentationException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentorCallback.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentorCallback.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentorCallback.java
deleted file mode 100644
index 8d03b45..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetAugmentorCallback.java
+++ /dev/null
@@ -1,53 +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;
-
-import java.util.Set;
-
-/**
- * Callback interface used when augmenting a ReferenceSet in an asynchronous
- * fashion through
- * {@link ReferenceSetAugmentor#augmentReferenceSetAsynch(ReferenceSet, Set, ReferenceContext, ReferenceSetAugmentorCallback)
- * augmentReferenceSetAsynch} in {@link ReferenceSetAugmentor}.
- * 
- * @author Tom Oinn
- */
-public interface ReferenceSetAugmentorCallback {
-	/**
-	 * Called when the augmentation has succeeded
-	 * 
-	 * @param newReferences
-	 *            a set of ExternalReferenceSPI instances created during the
-	 *            augmentation process. It is the responsibility of the caller
-	 *            to re-integrate these back into the ReferenceSet used in the
-	 *            translation
-	 */
-	void augmentationCompleted(Set<ExternalReferenceSPI> newReferences);
-
-	/**
-	 * Called when the augmentation has failed for some reason
-	 * 
-	 * @param cause
-	 *            a {@link ReferenceSetAugmentationException} object describing
-	 *            the failure.
-	 */
-	void augmentationFailed(ReferenceSetAugmentationException cause);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetDao.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetDao.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetDao.java
deleted file mode 100644
index 3c60e89..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetDao.java
+++ /dev/null
@@ -1,82 +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;
-
-import static org.springframework.transaction.annotation.Propagation.REQUIRED;
-import static org.springframework.transaction.annotation.Propagation.SUPPORTS;
-
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * Data Access Object interface for {@link ReferenceSet}. Used by the
- * {@link ReferenceSetService} to store and retrieve implementations of
- * reference set to and from the database. Client code should use the reference
- * set service rather than using this Dao directly.
- * <p>
- * All methods throw DaoException, and nothing else. Where a deeper error is
- * propagated it is wrapped in a DaoException and passed on to the caller.
- * 
- * @author Tom Oinn
- */
-public interface ReferenceSetDao {
-	/**
-	 * Store the specified new reference set
-	 * 
-	 * @param rs
-	 *            a reference set, must not already exist in the database.
-	 * @throws DaoException
-	 *             if the entry already exists in the database or some other
-	 *             database related problem occurs
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	void store(ReferenceSet rs) throws DaoException;
-
-	/**
-	 * Update a pre-existing entry in the database
-	 * 
-	 * @param rs
-	 *            the reference set to update. This must already exist in the
-	 *            database
-	 * @throws DaoException
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	void update(ReferenceSet rs) throws DaoException;
-
-	/**
-	 * Fetch a reference set by id
-	 * 
-	 * @param ref
-	 *            the T2Reference to fetch
-	 * @return a retrieved ReferenceSet
-	 * @throws DaoException
-	 *             if the supplied reference is of the wrong type or if
-	 *             something goes wrong fetching the data or connecting to the
-	 *             database
-	 */
-	@Transactional(propagation = SUPPORTS, readOnly = true)
-	ReferenceSet get(T2Reference ref) throws DaoException;
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	boolean delete(ReferenceSet rs) throws DaoException;
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	void deleteReferenceSetsForWFRun(String workflowRunId) throws DaoException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetService.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetService.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetService.java
deleted file mode 100644
index a574264..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetService.java
+++ /dev/null
@@ -1,181 +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;
-
-import static org.springframework.transaction.annotation.Propagation.REQUIRED;
-import static org.springframework.transaction.annotation.Propagation.SUPPORTS;
-
-import java.util.Set;
-
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * Provides facilities to register sets of ExternalReferenceSPI implementations
- * within the reference manager and to retrieve these sets by T2Reference either
- * as stored or with translation support. In general applications should be
- * using this interface (where only ReferenceSet functionality is required) or
- * the support classes which in turn use this and the collection and error
- * handling interfaces to present a unified view over the various components of
- * the reference management system.
- * 
- * @author Tom Oinn
- */
-@Transactional(propagation = SUPPORTS, readOnly = true)
-public interface ReferenceSetService {
-	/**
-	 * Register a set of {@link ExternalReferenceSPI} instances, all of which
-	 * should point to byte equivalent data, and return the newly created
-	 * {@link ReferenceSet}. This method blocks on the underlying store, but
-	 * guarantees that the returned value has been persisted.
-	 * <p>
-	 * The created references will be related with a workflow run id passed
-	 * through ReferenceContext so we can track all data referenced by a
-	 * specific run.
-	 * 
-	 * @param references
-	 *            a set of {@link ExternalReferenceSPI} implementations to
-	 *            register as a {@link ReferenceSet}
-	 * @return the registered {@link ReferenceSet}
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	ReferenceSet registerReferenceSet(Set<ExternalReferenceSPI> references,
-			ReferenceContext context) throws ReferenceSetServiceException;
-
-	/**
-	 * Get a previously registered {@link ReferenceSet} by {@link T2Reference}.
-	 * Note that this method blocks and may take some time to return in the case
-	 * of distributed reference managers; if this is likely to be an issue then
-	 * you should use the asynchronous form
-	 * {@link #getReferenceSetAsynch(T2Reference, ReferenceSetServiceCallback)
-	 * getReferenceSetAsynch} instead of this method.
-	 * 
-	 * @param id
-	 *            a {@link T2Reference} identifying a {@link ReferenceSet} to
-	 *            retrieve
-	 * @return the requested {@link ReferenceSet}
-	 */
-	ReferenceSet getReferenceSet(T2Reference id)
-			throws ReferenceSetServiceException;
-
-	/**
-	 * Functionality the same as {@link #getReferenceSet(T2Reference)
-	 * getReferenceSet} but in asynchronous mode, returning immediately and
-	 * using the supplied callback to communicate its results.
-	 * 
-	 * @param id
-	 *            a {@link T2Reference} identifying a {@link ReferenceSet} to
-	 *            retrieve
-	 * @param callback
-	 *            a {@link ReferenceSetServiceCallback} used to convey the
-	 *            results of the asynchronous call
-	 * @throws ReferenceSetServiceException
-	 *             if the reference set service is not correctly configured.
-	 *             Exceptions encountered when performing the asynchronous call
-	 *             are not returned here, for obvious reasons, and are instead
-	 *             messaged through the callback interface.
-	 */
-	void getReferenceSetAsynch(T2Reference id,
-			ReferenceSetServiceCallback callback)
-			throws ReferenceSetServiceException;
-
-	/**
-	 * Functionality the same as {@link #getReferenceSet(T2Reference)
-	 * getReferenceSet} but with the additional option to specify a set of
-	 * {@link ExternalReferenceSPI} classes. The reference set manager will
-	 * attempt to ensure that the returned {@link ReferenceSet} contains an
-	 * instance of at least one of the specified classes. This method blocks,
-	 * and may potentially incur both the remote lookup overhead of the simpler
-	 * version of this call and any translation logic. It is <em>strongly</em>
-	 * recommended that you do not use this version of the call and instead use
-	 * the asynchronous form
-	 * {@link #getReferenceSetWithAugmentationAsynch(T2Reference, Set, ReferenceContext, ReferenceSetServiceCallback)
-	 * getReferenceSetWithAugmentationAsynch} instead.
-	 * <p>
-	 * If the translation logic cannot provide at least one of the required
-	 * types this call will fail, even if the {@link ReferenceSet} requested is
-	 * otherwise available.
-	 * 
-	 * @param id
-	 *            a {@link T2Reference} identifying a {@link ReferenceSet} to
-	 *            retrieve
-	 * @param ensureTypes
-	 *            a set of {@link ExternalReferenceSPI} classes. The framework
-	 *            will attempt to ensure there is an instance of at least one of
-	 *            these classes in the returned {@link ReferenceSet}
-	 * @param context
-	 *            if translation of references is required the translation
-	 *            infrastructure will need information in this
-	 *            {@link ReferenceContext} parameter.
-	 *            <p>
-	 *            If null the implementation should insert a new empty context
-	 *            and proceed.
-	 * @return the requested {@link ReferenceSet}
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	ReferenceSet getReferenceSetWithAugmentation(T2Reference id,
-			Set<Class<ExternalReferenceSPI>> ensureTypes,
-			ReferenceContext context) throws ReferenceSetServiceException;
-
-	/**
-	 * Functionality as
-	 * {@link #getReferenceSetWithAugmentation(T2Reference, Set, ReferenceContext)
-	 * getReferenceSetWithAugmentation} but with the addition of a callback
-	 * interface to report the result or failure of the method.
-	 * 
-	 * @param id
-	 *            a {@link T2Reference} identifying a {@link ReferenceSet} to
-	 *            retrieve
-	 * @param ensureTypes
-	 *            a set of {@link ExternalReferenceSPI} classes. The framework
-	 *            will attempt to ensure there is an instance of at least one of
-	 *            these classes in the returned {@link ReferenceSet}
-	 * @param context
-	 *            if translation of references is required the translation
-	 *            infrastructure will need information in this
-	 *            {@link ReferenceContext} parameter.
-	 *            <p>
-	 *            If null the implementation should insert a new empty context
-	 *            and proceed.
-	 * @param callback
-	 *            a {@link ReferenceSetServiceCallback} used to convey the
-	 *            results of the asynchronous call *
-	 * @throws ReferenceSetServiceException
-	 *             if the reference set service is not correctly configured.
-	 *             Exceptions encountered when performing the asynchronous call
-	 *             are not returned here, for obvious reasons, and are instead
-	 *             messaged through the callback interface.
-	 */
-	@Transactional(propagation = REQUIRED, readOnly = false)
-	void getReferenceSetWithAugmentationAsynch(T2Reference id,
-			Set<Class<ExternalReferenceSPI>> ensureTypes,
-			ReferenceContext context, ReferenceSetServiceCallback callback)
-			throws ReferenceSetServiceException;
-
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	boolean delete(T2Reference reference) throws ReferenceServiceException;
-
-	/**
-	 * Delete all {@link ReferenceSet}S used by the specific workflow run.
-	 */
-	@Transactional(propagation = SUPPORTS, readOnly = false)
-	void deleteReferenceSetsForWorkflowRun(String workflowRunId)
-			throws ReferenceServiceException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceCallback.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceCallback.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceCallback.java
deleted file mode 100644
index a75eb1f..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceCallback.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * Callback interface used by asynchronous methods in the
- * {@link ReferenceSetService} interface
- * 
- * @author Tom Oinn
- */
-public interface ReferenceSetServiceCallback {
-	/**
-	 * Called when the requested {@link ReferenceSet} has been successfully
-	 * retrieved.
-	 * 
-	 * @param references
-	 *            the ReferenceSet requested
-	 */
-	void referenceSetRetrieved(ReferenceSet references);
-
-	/**
-	 * Called if the retrieval failed for some reason
-	 * 
-	 * @param cause
-	 *            a ReferenceSetServiceException explaining the retrieval
-	 *            failure
-	 */
-	void referenceSetRetrievalFailed(ReferenceSetServiceException cause);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceException.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceException.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceException.java
deleted file mode 100644
index 7e8c507..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferenceSetServiceException.java
+++ /dev/null
@@ -1,48 +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;
-
-/**
- * RuntimeException subclass thrown by the reference set service layer
- * interfaces. All underlying exceptions are either handled by the service layer
- * or wrapped in this exception (or a subclass) and rethrown.
- * 
- * @author Tom Oinn
- */
-public class ReferenceSetServiceException extends RuntimeException {
-	private static final long serialVersionUID = -2762995062729638168L;
-
-	public ReferenceSetServiceException() {
-		//
-	}
-
-	public ReferenceSetServiceException(String message) {
-		super(message);
-	}
-
-	public ReferenceSetServiceException(Throwable cause) {
-		super(cause);
-	}
-
-	public ReferenceSetServiceException(String message, Throwable cause) {
-		super(message, cause);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferencedDataNature.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferencedDataNature.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferencedDataNature.java
deleted file mode 100644
index a6861f1..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/ReferencedDataNature.java
+++ /dev/null
@@ -1,45 +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;
-
-/**
- * Where possible ExternalReferenceSPI implementations should be able to
- * determine whether the data they refer to is textual or binary in nature. This
- * enumeration contains values for textual, binary and unknown data natures.
- * 
- * @author Tom Oinn
- */
-public enum ReferencedDataNature {
-	/**
-	 * The data is binary, no character encoding will be specified.
-	 */
-	BINARY,
-
-	/**
-	 * The data is textual, character encoding may be defined.
-	 */
-	TEXT,
-
-	/**
-	 * Unknown data nature.
-	 */
-	UNKNOWN;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StackTraceElementBean.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StackTraceElementBean.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StackTraceElementBean.java
deleted file mode 100644
index 8b560b1..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StackTraceElementBean.java
+++ /dev/null
@@ -1,54 +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;
-
-/**
- * Used by the {@link ErrorDocument} interface to represent a frame within a
- * stack trace
- * 
- * @author Tom Oinn
- * @see StackTraceElement
- */
-public interface StackTraceElementBean {
-	/**
-	 * Returns the fully qualified name of the class containing the execution
-	 * point represented by this stack trace element.
-	 */
-	String getClassName();
-
-	/**
-	 * Returns the name of the source file containing the execution point
-	 * represented by this stack trace element.
-	 */
-	String getFileName();
-
-	/**
-	 * Returns the line number of the source line containing the execution point
-	 * represented by this stack trace element.
-	 */
-	int getLineNumber();
-
-	/**
-	 * Returns the name of the method containing the execution point represented
-	 * by this stack trace element.
-	 */
-	String getMethodName();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StreamToValueConverterSPI.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StreamToValueConverterSPI.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StreamToValueConverterSPI.java
deleted file mode 100644
index dc3da5c..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/StreamToValueConverterSPI.java
+++ /dev/null
@@ -1,48 +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;
-
-import java.io.InputStream;
-
-/**
- * SPI for objects that can render a POJO from an InputStream
- * 
- * @author Tom Oinn
- */
-public interface StreamToValueConverterSPI<T> {
-	/**
-	 * The class of objects which this builder can construct from a stream
-	 */
-	Class<T> getPojoClass();
-
-	/**
-	 * Render the stream to the target object type
-	 * 
-	 * @param stream
-	 *            input stream of data to render to the object; the caller will
-	 *            close it
-	 * @param charset
-	 * @param dataNature
-	 * @return the newly created object
-	 */
-	T renderFrom(InputStream stream, ReferencedDataNature dataNature,
-			String charset);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2Reference.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2Reference.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2Reference.java
deleted file mode 100644
index 4a9a725..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2Reference.java
+++ /dev/null
@@ -1,102 +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;
-
-import java.net.URI;
-
-/**
- * The T2Reference is used within the workflow system to refer to any entity
- * within the reference management system, whether reference set, list or error
- * document. The reference carries certain properties which can be evaluated
- * without resolution, these include a depth property and whether the reference
- * either is or contains an error document at any point in its structure.
- * 
- * @author Tom Oinn
- */
-public interface T2Reference {
-	/**
-	 * To determine the entity that this reference points to we use an
-	 * enumeration of possible entity types
-	 * 
-	 * @return the type of entity to which this reference refers.
-	 */
-	T2ReferenceType getReferenceType();
-
-	/**
-	 * All entities identified by a T2Reference have a conceptual depth. In the
-	 * case of lists the depth is the (uniform) depth of any item in the list
-	 * plus one, in the case of reference sets the depth is 0. Error documents
-	 * and empty lists may also have non zero depth; error documents in
-	 * particular have a depth corresponding to the depth of the list or
-	 * reference set that would have been created if there was no error.
-	 * 
-	 * @return the depth of the entity identified by this T2Reference
-	 */
-	int getDepth();
-
-	/**
-	 * Error documents always return true, as do any lists where at least one
-	 * immediate child of the list returns true when this property is evaluated.
-	 * As lists are immutable this property is actually set on list
-	 * registration. This is used to determine whether to allow POJO resolution
-	 * of the entity identified by this T2Reference - this is configurable by
-	 * the caller but there will be some cases where an attempt to render a
-	 * collection containing errors to a POJO should return an error and other
-	 * occasions when it should return a collection containing error objects.
-	 * <p>
-	 * ReferenceSet implementations always return false.
-	 * 
-	 * @return whether the entity identified by this T2Reference either is or
-	 *         contains an error document. Containment is transitive, so a list
-	 *         containing a list that contained an error would return true.
-	 */
-	boolean containsErrors();
-
-	/**
-	 * T2Reference instances retain a reference to the reference manager which
-	 * created them in the form of a namespace. This is an opaque string
-	 * matching the regular expression [a-zA-Z_0-9]+, and is immutable once
-	 * assigned (as are the other properties of this interface). The reference
-	 * manager infrastructure uses this namespace property primarily to
-	 * differentiate between cases where a reference cannot be resolved because
-	 * of a lack of connection to the appropriate remote reference manager and
-	 * those where the reference simply does not exist anywhere.
-	 * 
-	 * @return the namespace of this T2Reference as a string.
-	 */
-	String getNamespacePart();
-
-	/**
-	 * In addition to the namespace the T2Reference contains a local identifier.
-	 * This identifier is unique in the context of the namespace and is also
-	 * represented as a string matching the regular expression [a-z_A-Z0-9]+
-	 * 
-	 * @return the local part of this T2Reference as a string.
-	 */
-	String getLocalPart();
-
-	/**
-	 * All T2Reference instances can be represented as a URI.
-	 * 
-	 * @return representation of this T2Reference as a URI
-	 */
-	URI toUri();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/5f1ddb71/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2ReferenceGenerator.java
----------------------------------------------------------------------
diff --git a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2ReferenceGenerator.java b/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2ReferenceGenerator.java
deleted file mode 100644
index dfaca7a..0000000
--- a/taverna-reference-api/src/main/java/net/sf/taverna/t2/reference/T2ReferenceGenerator.java
+++ /dev/null
@@ -1,81 +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;
-
-/**
- * Provides new unique T2Reference instances. Used by and injected into the
- * various service interface implementations when registering new reference
- * sets, error documents and lists.
- * 
- * @author Tom Oinn
- * @see T2Reference
- */
-public interface T2ReferenceGenerator {
-	/**
-	 * All T2Reference objects will have this namespace
-	 * 
-	 * @return the namespace as a string
-	 */
-	String getNamespace();
-
-	/**
-	 * Create a new and otherwise unused T2Reference to a ReferenceSet. The
-	 * namespace of the reference will depend on the current workflow run read
-	 * from the ReferenceContext.
-	 * 
-	 * @return new T2Reference for a ReferenceSet, namespace and local parts
-	 *         will be initialized and the reference is ready to use when
-	 *         returned.
-	 */
-	T2Reference nextReferenceSetReference(ReferenceContext context);
-
-	/**
-	 * Create a new and otherwise unused T2Reference to an IdentifiedList. The
-	 * namespace of the reference will depend on the current workflow run read
-	 * from the ReferenceContext.
-	 * 
-	 * @param containsErrors
-	 *            whether the list this reference is generated for contains
-	 *            t2references with their containsErrors property set to true.
-	 *            Returns true if <em>any</em> reference in the list is or
-	 *            contains an error.
-	 * @param listDepth
-	 *            depth of the list to which this identifier will be applied
-	 * @return a new T2Reference for an IdentifiedList. Namespace, type and
-	 *         local parts will be initialized but depth and error content will
-	 *         still be at their default values of '0' and 'false' respectively,
-	 *         these will need to be re-set before the reference is viable.
-	 */
-	T2Reference nextListReference(boolean containsErrors, int listDepth,
-			ReferenceContext context);
-
-	/**
-	 * Create a new and otherwise unused T2Reference to an ErrorDocument. The
-	 * namespace of the reference will depend on the current workflow run read
-	 * from the ReferenceContext.
-	 * 
-	 * @param depth
-	 *            the depth of the error document to which this identifier will
-	 *            refer
-	 * @return a new T2Reference for an ErrorDocument
-	 */
-	T2Reference nextErrorDocumentReference(int depth, ReferenceContext context);
-}