You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 21:39:52 UTC

[01/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Repository: incubator-taverna-language
Updated Branches:
  refs/heads/master aa46364df -> 316e4a8a8


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/manifest/Algorithm.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/manifest/Algorithm.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/manifest/Algorithm.java
deleted file mode 100644
index ced62b5..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/manifest/Algorithm.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- * 
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- * 
- * Use is subject to license terms.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * 
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest;
-
-public class Algorithm {
-	private String name;
-	private String initializationVector;
-
-	public Algorithm() {
-	}
-
-	public Algorithm(String name, String initializationVector) {
-		this.name = name;
-		this.initializationVector = initializationVector;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setInitializationVector(String initializationVector) {
-		this.initializationVector = initializationVector;
-	}
-
-	public String getInitializationVector() {
-		return initializationVector;
-	}
-}


[39/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/pav.rdf
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/pav.rdf b/taverna-robundle/src/main/resources/ontologies/pav.rdf
deleted file mode 100644
index d5bbbd7..0000000
--- a/taverna-robundle/src/main/resources/ontologies/pav.rdf
+++ /dev/null
@@ -1,552 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="owl2html.xslt"?>
-
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY pav "http://purl.org/pav/" >
-    <!ENTITY dct "http://purl.org/dc/terms/" >
-    <!ENTITY prov "http://www.w3.org/ns/prov#" >
-    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-    <!ENTITY pav1 "http://swan.mindinformatics.org/ontologies/1.2/pav/" >
-]>
-
-
-<rdf:RDF xmlns="&pav;"
-     xml:base="&pav;"
-     xmlns:dc="http://purl.org/dc/elements/1.1/"
-     xmlns:prov="http://www.w3.org/ns/prov#"
-     xmlns:foaf="http://xmlns.com/foaf/0.1/"
-     xmlns:pav1="http://swan.mindinformatics.org/ontologies/1.2/pav/"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:pav="http://purl.org/pav/"
-     xmlns:dct="http://purl.org/dc/terms/"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-    <owl:Ontology rdf:about="http://purl.org/pav/">
-        <prov:has_provenance rdf:resource="provenance.ttl" />
-        <rdfs:label xml:lang="en">Provenance, Authoring and Versioning (PAV)</rdfs:label>
-        <owl:versionInfo rdf:datatype="&xsd;string">2.1.1</owl:versionInfo>
-        <dct:modified rdf:datatype="&xsd;dateTime">2013-03-26T14:49:00Z</dct:modified>
-        <dc:contributor rdf:datatype="&xsd;string">Marco Ocana</dc:contributor>
-        <dc:creator rdf:datatype="&xsd;string">Paolo Ciccarese</dc:creator>
-        <dc:contributor rdf:datatype="&xsd;string">Stian Soiland-Reyes</dc:contributor>
-        <dct:format rdf:datatype="&xsd;string">application/rdf+xml</dct:format>
-        <dct:language rdf:datatype="&xsd;language">en</dct:language>
-        <dct:issued rdf:datatype="&xsd;dateTime">2013-03-27T16:03:24Z</dct:issued>
-        <dct:title xml:lang="en">PAV - Provenance, Authoring and Versioning</dct:title>
-        <rdfs:comment xml:lang="en">PAV is a lightweight ontology for tracking Provenance, Authoring and Versioning. PAV specializes the W3C provenance ontology PROV-O in order to describe authorship, curation and digital creation of online resources.
-
-This ontology describes the defined PAV properties and their usage. Note that PAV does not define any explicit classes or domain/ranges, as every property is meant to be used directly on the described online resource.</rdfs:comment>
-        <dc:description xml:lang="en">PAV supplies terms for distinguishing between the different roles of the agents contributing content in current web based systems: contributors, authors, curators and digital artifact creators. The ontology also provides terms for tracking provenance of digital entities that are published on the web and then accessed, transformed and consumed. In order to support broader interoperability, PAV specializes the general purpose W3C PROV provenance model (PROV-O).
-
-PAV distinguishes between the data related to the digital artifact - named Provenance - and those related to the actual knowledge creation and therefore to the intellectual property aspects – named Authoring. The Versioning axis describes the evolution of digital entities in time. 
-
-Using PAV, descriptions can define the Authors that originate or gave existence to the work that is expressed in the digital resource (pav:authoredBy); curators (pav:curatedBy) who are content specialists responsible for shaping the expression in an appropriate format, and contributors (super-property pav:contributedBy) that provided some help in conceiving the resource or in the expressed knowledge creation/extraction.
-
-These provenance aspects can be detailed with dates using pav:curatedOn, pav:authoredOn, etc. Further details about the creation activities, such as different authors contributing specific parts of the resource at different dates are out of scope for PAV and should be defined using vocabularies like PROV-O and additional intermediate entities to describe the different states. 
-
-For resources based on other resources, PAV allows specification of direct retrieval (pav:retrievedFrom), import through transformations (pav:importedFrom) and sources that were merely consulted (pav:sourceAccessedAt). These aspects can also define the agents responsible using pav:retrievedBy, pav:importedBy and pav:sourceAccessedBy. Version information can be specified using pav:previousVersion and pav:version. 
-
-The creation of the digital representation, for instance an RDF graph, can in many cases be different from the authorship of the knowledge, and in PAV this digital creation is specified using pav:createdBy, pav:createdWith and pav:createdOn. 
-
-PAV 2.1 updates PAV 2.0 with PROV-O specializations and more detailed descriptions of the defined terms. Note that PROV-O is not imported directly by this ontology as PAV can be used independent of PROV. PAV 2 is based on PAV 1.2 but in a new namespace ( http://purl.org/pav/ ). Terms compatible with 1.2 are indicated in this ontology using owl:equivalentProperty. 
-
-The ontology IRI http://purl.org/pav/ always resolve to the latest version of PAV 2. Particular versionIRIs such as http://purl.org/pav/2.1 can be used by clients to force imports of a particular version - note however that all terms are defined directly in the http://purl.org/pav/ namespace.
-
-The goal of PAV is to provide a lightweight, straight forward way to give the essential information about authorship, provenance and versioning, and therefore these properties are described directly on the published resource. As such, PAV does not define any classes or restrict domain/ranges, as all properties are applicable to any online resource.</dc:description>
-        <dc:description rdf:resource="http://pav-ontology.googlecode.com/svn/branches/2.1/images/pav-overview.svg" />
-        <rdfs:seeAlso rdf:resource="http://code.google.com/p/pav-ontology/"/>
-        <rdfs:seeAlso rdf:resource="http://pav-ontology.googlecode.com/svn/trunk/1.2/pav.owl"/>
-        <!--
-        <owl:imports rdf:resource="http://pav-ontology.googlecode.com/svn/trunk/1.2/pav.owl"/>
-        <owl:imports rdf:resource="http://www.w3.org/ns/prov#"/>
-        -->
-        <owl:versionIRI rdf:resource="&pav;2.1"/>
-        <rdfs:seeAlso rdf:resource="&pav;doc"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;2.0/"/>
-        <owl:priorVersion rdf:resource="&pav;2.0/"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;authoring/2.0/"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;provenance/2.0/"/>
-        <owl:backwardCompatibleWith rdf:resource="&pav;versioning/2.0/"/>
-        <dct:contributor rdf:resource="http://soiland-reyes.com/stian/#me"/>
-        <dct:publisher rdf:resource="http://swan.mindinformatics.org/"/>
-        <owl:incompatibleWith rdf:resource="http://swan.mindinformatics.org/ontologies/1.2/pav.owl"/>
-        <dct:license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0"/>
-        <dct:creator rdf:resource="http://www.hcklab.org/foaf.rdf#me"/>
-        <dct:creator rdf:resource="http://www.paolociccarese.info/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Ontology>
-    
-
-
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/pav/authoredBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;authoredBy">
-        <rdfs:label xml:lang="en">Authored by</rdfs:label>
-        <rdfs:comment xml:lang="en">An agent that originated or gave existence to the work that is expressed by the digital resource.
-
-The author of the content of a resource may be different from the creator of the resource representation (although they are often the same). See pav:createdBy for a discussion.
-
-The date of authoring can be expressed using pav:authoredOn - note however in the case of multiple authors that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;authoredOn"/>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;authoredBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/contributedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;contributedBy">
-        <rdfs:label xml:lang="en">Contributed by</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource was contributed to by the given agent.
-
-The agent provided any sort of help in conceiving the work that is expressed by the digital artifact. Superproperty of pav:authoredBy and pav:curatedBy.
-
-Note that as pav:contributedBy identifies only agents that contributed to the work, knowledge or intellectual property, and not agents that made the digital artifact or representation (pav:createdBy), thus this property can be considered more precise than dct:contributor. See pav:createdBy for a discussion.
-
-The date of contribution can be expressed using pav:contributedOn - note however in the case of multiple contributors that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;contributedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;contributedBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdAt -->
-
-    <owl:ObjectProperty rdf:about="&pav;createdAt">
-        <rdfs:label xml:lang="en">Created at</rdfs:label>
-        <rdfs:comment xml:lang="en">The geo-location of the agents when creating the resource (pav:createdBy). For instance  a photographer takes a picture of the Eiffel Tower while standing in front of it.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;createdBy">
-        <rdfs:label xml:lang="en">Created by</rdfs:label>
-        <rdfs:comment xml:lang="en">An agent primary responsible for making the digital artifact or resource representation.
-
-This property is distinct from forming the content, which is indicated with pav:contributedBy or its subproperties; pav:authoredBy, which identifies who authored the knowledge expressed by this resource; and pav:curatedBy, which identifies who curated the knowledge into its current form. 
-
-pav:createdBy is more specific than dct:createdBy - which might or might not be interpreted to cover this creator.
-
-For instance, the author wrote &apos;this species has bigger wings than normal&apos; in his log book. The curator, going through the log book and identifying important knowledge, formalizes this as &apos;locus perculus has wingspan &gt; 0.5m&apos;. The creator enters this knowledge as a digital resource in the knowledge system, thus creating the digital artifact (say as JSON, RDF, XML or HTML).
-
-A different example is a news article. pav:authoredBy indicates the journalist who wrote the article. pav:contributedBy can indicate the artist who added an illustration. pav:curatedBy can indicate the editor who made the article conform to the news paper&apos;s style. pav:createdBy can indicate who put the article on the web site.
-
-The software tool used by the creator to make the digital resource (say Protege, Wordpress or OpenOffice) can be indicated with pav:createdWith.
-
-The date the digital resource was created can be indicated with pav:createdOn.
-
-The location the agent was at when creating the digital resource can be made using pav:createdAt.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;authoredBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;curatedBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;createdBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdWith -->
-
-    <owl:ObjectProperty rdf:about="&pav;createdWith">
-        <rdfs:label xml:lang="en">Created with</rdfs:label>
-        <rdfs:comment xml:lang="en">The software/tool used by the creator (pav:createdBy) when making the digital resource, for instance a word processor or an annotation tool. A more independent software agent that creates the resource without direct interaction by a human creator should instead should instead by indicated using pav:createdBy.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/curatedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;curatedBy">
-        <rdfs:label xml:lang="en">Curated by</rdfs:label>
-        <rdfs:comment xml:lang="en">An agent specialist responsible for shaping the expression in an appropriate format. Often the primary agent responsible for ensuring the quality of the representation.
-
-The curator may be different from the creator of the author (pav:authoredBy) and the creator of the digital resource (pav:createdBy).  
-
-The date of curating can be expressed using pav:curatedOn - note however in the case of multiple curators that there is no relationship in PAV identifying which agent contributed when or what. If capturing such lineage is desired, it should be additionally expressed using activity-centric provenance vocabularies, for instance with prov:wasGeneratedBy and prov:qualifiedAssocation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;curatedOn"/>
-        <owl:equivalentProperty rdf:resource="&pav1;curatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/curates -->
-
-    <owl:ObjectProperty rdf:about="&pav;curates">
-        <rdfs:label xml:lang="en">Curates</rdfs:label>
-        <owl:deprecated rdf:datatype="&xsd;boolean">true</owl:deprecated>
-        <rdfs:comment xml:lang="en">Provided for backwards compatibility with PAV 1.2 only. Use instead the inverse pav:curatedBy.</rdfs:comment>
-        <owl:inverseOf rdf:resource="&pav;curatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/derivedFrom -->
-
-    <owl:ObjectProperty rdf:about="&pav;derivedFrom">
-        <rdfs:label xml:lang="en">Derived from</rdfs:label>
-        <rdfs:comment xml:lang="en">Derived from a different resource. Derivation conserns itself with derived knowledge. If this resource has the same content as the other resource, but has simply been transcribed to fit a different model (like XML -&gt; RDF or SQL -&gt; CVS), use pav:importedFrom. If a resource was simply retrieved, use pav:retrievedFrom. If the content has however been further refined or modified, pav:derivedFrom should be used.
-
-Details about who performed the derivation may be indicated with pav:contributedBy and its subproperties.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/importedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;importedBy">
-        <rdfs:label xml:lang="en">Imported by</rdfs:label>
-        <rdfs:comment xml:lang="en">An entity responsible for importing the data. 
-
-The importer is usually a software entity which has done the transcription from the original source. 
-Note that pav:importedBy may overlap with pav:createdWith.
-
-The source for the import should be given with pav:importedFrom. The time of the import should be given with pav:importedOn.
-
-See pav:importedFrom for a discussion of import vs. retrieve vs. derived.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedBy"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/importedFrom -->
-
-    <owl:ObjectProperty rdf:about="&pav;importedFrom">
-        <rdfs:label xml:lang="en">Imported from</rdfs:label>
-        <rdfs:comment xml:lang="en">The original source of imported information. 
-
-Import means that the content has been preserved, but transcribed somehow, for instance to fit a different representation model. Examples of import are when the original was JSON and the current resource is RDF, or where the original was an document scan, and this resource is the plain text found through OCR. 
-
-The imported resource does not have to be complete, but should be consistent with the knowledge conveyed by the original resource.
-
-If additional knowledge has been contributed, pav:derivedFrom would be more appropriate.
-
-If the resource has been copied verbatim from the original representation (e.g. downloaded), use pav:retrievedFrom.
-
-To indicate which agent(s) performed the import, use pav:importedBy. Use pav:importedOn to indicate when it happened. </rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;derivedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedFrom"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedFromSource"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/previousVersion -->
-
-    <owl:ObjectProperty rdf:about="&pav;previousVersion">
-        <rdfs:label xml:lang="en">Previous version</rdfs:label>
-        <rdfs:comment xml:lang="en">The previous version of a resource in a lineage. For instance a news article updated to correct factual information would point to the previous version of the article with pav:previousVersion. If however the content has significantly changed so that the two resources no longer share lineage (say a new news article that talks about the same facts), they should be related using pav:derivedFrom.
-
-A version number of this resource can be provided using the data property pav:version.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;derivedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;version"/>
-        <owl:equivalentProperty rdf:resource="&pav1;previousVersion"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasRevisionOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/providedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;providedBy">
-        <rdfs:label xml:lang="en">Provided by</rdfs:label>
-        <rdfs:comment xml:lang="en">The original provider of the encoded information (e.g. PubMed, UniProt, Science Commons).
-
-The provider might not coincide with the dct:publisher, which would describe the current publisher of the resource. For instance if the resource was retrieved, imported or derived from a source, that source was published by the original provider. pav:providedBy provides a shortcut to indicate the original provider on the new resource.  </rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&dct;publisher"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/retrievedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;retrievedBy">
-        <rdfs:label xml:lang="en">Retrieved by</rdfs:label>
-        <rdfs:comment xml:lang="en">An entity responsible for retrieving the data from an external source. 
-
-The retrieving agent is usually a software entity, which has done the retrieval from the original source without performing any transcription.
-
-The source that was retrieved should be given with pav:retrievedFrom. The time of the retrieval should be indicated using pav:retrievedOn.
-
-See pav:importedFrom for a discussion of import vs. retrieve vs. derived.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/retrievedFrom -->
-
-    <owl:ObjectProperty rdf:about="&pav;retrievedFrom">
-        <rdfs:label xml:lang="en">Retrieved from</rdfs:label>
-        <rdfs:comment xml:lang="en">The URI where a resource has been retrieved from.
-
-Retrieval indicates that this resource has the same representation as the original resource. If the resource has been somewhat transformed, use pav:importedFrom instead.
-
-The time of the retrieval should be indicated using pav:retrievedOn. The agent may be indicated with pav:retrievedBy.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedOn"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceAccessedAt -->
-
-    <owl:ObjectProperty rdf:about="&pav;sourceAccessedAt">
-        <rdfs:label xml:lang="en">Source accessed at</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a given source which was accessed or consulted (but not retrieved, imported or derived from). This access can be detailed with pav:sourceAccessedBy and pav:sourceAccessedOn.
-
-For instance, a curator (pav:curatedBy) might have consulted figures in a published paper to confirm that a dataset was correctly pav:importedFrom the paper&apos;s supplementary CSV file.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceLastAccessedOn"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasInfluencedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceAccessedBy -->
-
-    <owl:ObjectProperty rdf:about="&pav;sourceAccessedBy">
-        <rdfs:label xml:lang="en">Source accessed by</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a source which was accessed or consulted 
-by the given agent. The source(s) should be specified using pav:sourceAccessedAt, and the time with pav:sourceAccessedOn.
-
-For instance, the given agent could be a curator (also pav:curatedBy) which consulted figures in a published paper to confirm that a dataset was correctly pav:importedFrom the paper&apos;s supplementary CSV file.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedAt"/>
-    </owl:ObjectProperty>
-    
-
-
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/pav/authoredOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;authoredOn">
-        <rdfs:label xml:lang="en">Authored on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was authored.
-
-pav:authoredBy gives the authoring agent.
-
-Note that pav:authoredOn is different from pav:createdOn, although they are often the same. See pav:createdBy for a discussion.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;authoredBy"/>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;createdOn"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/contributedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;contributedOn">
-        <rdfs:label xml:lang="en">Contributed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was contributed to.
-
-pav:contributedBy provides the agent(s) that contributed.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;contributedBy"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/createdOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;createdOn">
-        <rdfs:label xml:lang="en">Created On</rdfs:label>
-        <rdfs:comment xml:lang="en">The date of creation of the resource.
-
-pav:createdBy provides the agent(s) that created the resource.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;createdOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/curatedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;curatedOn">
-        <rdfs:label xml:lang="en">Curated on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was curated. 
-
-pav:curatedBy gives the agent(s) that performed the curation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&pav;contributedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;curatedBy"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/importedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;importedOn">
-        <rdfs:label xml:lang="en">Imported on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date this resource was imported from a source (pav:importedFrom). 
-
-Note that pav:importedOn may overlap with pav:createdOn, but in cases where they differ, the import time indicates the time of the retrieval and transcription of the original source, while the creation time indicates when the final resource was made, for instance after user approval.
-
-If the source is later reimported, this should be indicated with pav:lastRefreshedOn.
-
-The source of the import should be given with pav:importedFrom. The agent that performed the import should be given with pav:importedBy.
-
-See pav:importedFrom for a discussion about import vs. retrieval.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/lastRefreshedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;lastRefreshedOn">
-        <rdfs:label xml:lang="en">Last refreshed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date of the last re-import of the resource. This property is used in addition to pav:importedOn if this version has been updated due to a re-import. If the re-import created a new resource rather than refreshing an existing, then pav:importedOn should be used together with pav:previousVersion.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;importedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedFrom"/>
-        <rdfs:seeAlso rdf:resource="&pav;importedOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <owl:equivalentProperty rdf:resource="&pav1;importedLastOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/lastUpdateOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;lastUpdateOn">
-        <rdfs:label xml:lang="en">Last updated on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date of the last update of the resource. An update is a change which did not warrant making a new resource related using pav:previousVersion, for instance correcting a spelling mistake.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdOn"/>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <owl:equivalentProperty rdf:resource="&pav1;lastUpdateOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/retrievedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;retrievedOn">
-        <rdfs:label xml:lang="en">Retrieved on</rdfs:label>
-        <rdfs:comment xml:lang="en">The date the source for this resource was retrieved. 
-
-The source that was retrieved should be indicated with pav:retrievedFrom. The agent that performed the retrieval may be specified with pav:retrievedBy.
-</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;retrievedFrom"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceAccessedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;sourceAccessedOn">
-        <rdfs:label xml:lang="en">Source accessed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a source which was originally accessed or consulted on the given date as part of creating or authoring the resource. The source(s) should be specified using pav:sourceAccessedAt. If the source is subsequently checked again (say to verify validity), this should be indicated with pav:sourceLastAccessedOn.
-
-In the case multiple sources being accessed at different times or by different agents, PAV does not distinguish who accessed when what. If such details are required, they may be provided by additionally using prov:qualifiedInfluence.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedBy"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceLastAccessedOn"/>
-        <owl:equivalentProperty rdf:resource="&pav1;sourceAccessedOn"/>
-        <owl:equivalentProperty rdf:resource="&pav1;sourceFirstAccessedOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/sourceLastAccessedOn -->
-
-    <owl:DatatypeProperty rdf:about="&pav;sourceLastAccessedOn">
-        <rdfs:label xml:lang="en">Source last accessed on</rdfs:label>
-        <rdfs:comment xml:lang="en">The resource is related to a source which was last accessed or consulted on the given date. The source(s) should be specified using pav:sourceAccessedAt. Usage of this property indicates that the source has been checked previously, which the initial time should be indicated with pav:sourceAccessedOn.
-
-This property can be useful together with pav:lastRefreshedOn or pav:lastUpdateOn in order to indicate a re-import or update, but could also be used alone, for instance when a source was simply verified and no further action was taken for the resource,</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;createdAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedAt"/>
-        <rdfs:seeAlso rdf:resource="&pav;sourceAccessedBy"/>
-        <owl:equivalentProperty rdf:resource="&pav1;sourceLastAccessedOn"/>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/pav/version -->
-
-    <owl:DatatypeProperty rdf:about="&pav;version">
-        <rdfs:label xml:lang="en">Version</rdfs:label>
-        <rdfs:comment rdf:datatype="&xsd;string">The version number of a resource. This is a freetext string, typical values are &quot;1.5&quot; or &quot;21&quot;. The URI identifying the previous version can be provided using prov:previousVersion.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="&pav;previousVersion"/>
-        <owl:equivalentProperty rdf:resource="&pav1;versionNumber"/>
-        <rdfs:range rdf:resource="&xsd;string"/>
-    </owl:DatatypeProperty>
-    
-
-
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net -->
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf b/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
deleted file mode 100644
index cd40f4d..0000000
--- a/taverna-robundle/src/main/resources/ontologies/prov-aq.rdf
+++ /dev/null
@@ -1,341 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://www.w3.org/ns/prov#"
-     xml:base="http://www.w3.org/ns/prov"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:xml="http://www.w3.org/XML/1998/namespace">
-    <owl:Ontology rdf:about="http://www.w3.org/ns/prov-aq#">
-        <rdfs:label xml:lang="en">PROV Access and Query Ontology</rdfs:label>
-        <rdfs:comment rdf:datatype="&xsd;string">0.2</rdfs:comment>
-        <rdfs:comment xml:lang="en">This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page). 
-
-If you wish to make comments regarding this document, please send them to public-prov-comments@w3.org (subscribe public-prov-comments-request@w3.org, archives http://lists.w3.org/Archives/Public/public-prov-comments/). All feedback is welcome.</rdfs:comment>
-        <owl:versionIRI rdf:resource="http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-aq/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Ontology>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Annotation properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#unqualifiedForm">
-        <rdfs:comment xml:lang="en">Classes and properties used to qualify relationships are annotated with prov:unqualifiedForm to indicate the property used to assert an unqualified provenance relation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#aq">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#sharesDefinitionWith">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#definition">
-        <rdfs:comment xml:lang="en">A definition quoted from PROV-DM or PROV-CONSTRAINTS that describes the concept expressed with this OWL term.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorialNote">
-        <rdfs:comment xml:lang="en">A note by the OWL development team about how this term expresses the PROV-DM concept, or how it should be used in context of semantic web or linked data.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;label">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#inverse">
-        <rdfs:comment xml:lang="en">PROV-O does not define all property inverses. The directionalities defined in PROV-O should be given preference over those not defined. However, if users wish to name the inverse of a PROV-O property, the local name given by prov:inverse should be used.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-o/#names-of-inverse-properties"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;comment">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#constraints">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&owl;versionInfo"/>
-    <owl:AnnotationProperty rdf:about="&rdfs;seeAlso">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#dm">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-DM document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#category">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into three categories, including &apos;starting-point&apos;, &apos;qualifed&apos;, and &apos;extended&apos;. This classification is used by the prov-o html document to gently introduce prov-o terms to its users. </rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;isDefinedBy"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorsDefinition">
-        <rdfs:comment xml:lang="en">When the prov-o term does not have a definition drawn from prov-dm, and the prov-o editor provides one.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#definition"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#component">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into six components according to prov-dm, including &apos;agents-responsibility&apos;, &apos;alternate&apos;, &apos;annotations&apos;, &apos;collections&apos;, &apos;derivations&apos;, and &apos;entities-activities&apos;. This classification is used so that readers of prov-o specification can find its correspondence with the prov-dm specification.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#qualifiedForm">
-        <rdfs:comment xml:lang="en">This annotation property links a subproperty of prov:wasInfluencedBy with the subclass of prov:Influence and the qualifying property that are used to qualify it. 
-
-Example annotation:
-
-    prov:wasGeneratedBy prov:qualifiedForm prov:qualifiedGeneration, prov:Generation .
-
-Then this unqualified assertion:
-
-    :entity1 prov:wasGeneratedBy :activity1 .
-
-can be qualified by adding:
-
-   :entity1 prov:qualifiedGeneration :entity1Gen .
-   :entity1Gen 
-       a prov:Generation, prov:Influence;
-       prov:activity :activity1;
-       :customValue 1337 .
-
-Note how the value of the unqualified influence (prov:wasGeneratedBy :activity1) is mirrored as the value of the prov:activity (or prov:entity, or prov:agent) property on the influence class.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#todo"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#n">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-M document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:AnnotationProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Datatypes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/2002/07/owl#topObjectProperty -->
-
-    <owl:ObjectProperty rdf:about="&owl;topObjectProperty"/>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#describesService -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#describesService">
-        <rdfs:label>describesService</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/rovenance-query-service-description</aq>
-        <inverse>serviceDescribedBy</inverse>
-        <category>access-and-query</category>
-        <rdfs:comment xml:lang="en">relates a generic provenance query service resource (type prov:ServiceDescription) to a specific query service description (e.g. a prov:DirectQueryService or a sd:Service).</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadUsage -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadUsage">
-        <rdfs:label>hadUsage</rdfs:label>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Usage involved in an Entity&apos;s Derivation.</rdfs:comment>
-        <inverse>wasUsedInDerivation</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#has_anchor -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#has_anchor">
-        <rdfs:label>has_anchor</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#resource-represented-as-html</aq>
-        <category>access-and-query</category>
-        <rdfs:comment xml:lang="en">Indicates anchor URI for a potentially dynamic resource instance.</rdfs:comment>
-        <inverse>anchorOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#has_provenance -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#has_provenance">
-        <rdfs:label>has_provenance</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#resource-represented-as-html</aq>
-        <inverse>provenanceOf</inverse>
-        <rdfs:comment xml:lang="en">Indicates a provenance-URI for a resource; the resource identified by this property presents a provenance record about its subject or anchor resource.</rdfs:comment>
-        <category>access-and-query</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#has_query_service -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#has_query_service">
-        <rdfs:label>hasProvenanceService</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/</aq>
-        <category>access-and-query</category>
-        <inverse>provenanceQueryServiceOf</inverse>
-        <rdfs:comment xml:lang="en">Indicates a provenance query service that can access provenance related to its subject or anchor resource.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#pingback -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#pingback">
-        <rdfs:label>provenance pingback</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#provenance-pingback</aq>
-        <rdfs:comment xml:lang="en">Relates a resource to a provenance pingback service that may receive additional provenance links about the resource.</rdfs:comment>
-        <category>access-and-query</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#specializationOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#specializationOf">
-        <rdfs:label>specializationOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-constraints.html#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-dm.html#term-specialization</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-n.html#expression-specialization</n>
-        <component>alternate</component>
-        <category>expanded</category>
-        <inverse>generalizationOf</inverse>
-        <definition xml:lang="en">An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity.</definition>
-        <rdfs:subPropertyOf rdf:resource="&owl;topObjectProperty"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#provenanceUriTemplate -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#provenanceUriTemplate">
-        <rdfs:label>provenanceUriTemplate</rdfs:label>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/</aq>
-        <category>access-and-query</category>
-        <rdfs:comment xml:lang="en">Relates a provenance service to a URI template string for constructing provenance-URIs.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/2002/07/owl#Thing -->
-
-    <owl:Class rdf:about="&owl;Thing"/>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#DirectQueryService -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#DirectQueryService">
-        <rdfs:label>ProvenanceService</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#SoftwareAgent"/>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#provenance-query-service-discovery</aq>
-        <category>access-and-query</category>
-        <rdfs:comment>Type for a generic provenance query service. Mainly for use in RDF provenance query service descriptions, to facilitate discovery in linked data environments.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#ServiceDescription -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#ServiceDescription">
-        <rdfs:label>ServiceDescription</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#SoftwareAgent"/>
-        <aq rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/NOTE-prov-aq-20130430/#provenance-query-service-discovery</aq>
-        <rdfs:comment>Type for a generic provenance query service. Mainly for use in RDF provenance query service descriptions, to facilitate discovery in linked data environments.</rdfs:comment>
-        <category>access-and-query</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#SoftwareAgent -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#SoftwareAgent">
-        <rdfs:label>SoftwareAgent</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-dm.html#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2012/WD-prov-dm-20120703/prov-n.html#expression-types</n>
-        <component>agents-responsibility</component>
-        <definition xml:lang="en">A software agent is running software.</definition>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov#"/>
-    </owl:Class>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.2.5.1928) http://owlapi.sourceforge.net -->
-


[06/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/interaction_simple_tell.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/interaction_simple_tell.t2flow b/taverna-scufl2-t2flow/src/test/resources/interaction_simple_tell.t2flow
deleted file mode 100644
index 563908a..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/interaction_simple_tell.t2flow
+++ /dev/null
@@ -1,53 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-biodiversity-2.5.0"><dataflow id="a2922e48-9c02-4edd-adbf-b2ebfd4fd5ce" role="top"><name>Workflow1</name><inputPorts /><outputPorts><port><name>answer</name><lastPredictedDepth>0</lastPredictedDepth><annotations /></port></outputPorts><processors><processor><name>tell</name><inputPorts><port><name>message</name><depth>0</depth></port></inputPorts><outputPorts><port><name>answer</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>interaction-activity</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.activities.interaction.InteractionActivity</class><inputMap><map from="message" to="message" /></inputMap><outputMap><map from="answer" to="answer" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.interaction.InteractionActivityConfigurationBea
 n xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>message</name>
-      <depth>0</depth>
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>title</name>
-      <depth>0</depth>
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>answer</name>
-      <depth>0</depth>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <presentationOrigin>tell</presentationOrigin>
-  <interactionActivityType>VelocityTemplate</interactionActivityType>
-  <progressNotification>false</progressNotification>
-</net.sf.taverna.t2.activities.interaction.InteractionActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="message" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>message_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to=
 "value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>My message</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>tell</processor><port>message</port></sink><source type="processor"><processor>message_value</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>answer</port></sink><source type="processor"><processor>tell</processor><port>answer</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>a2922e48-9c02-4edd-adbf-b2ebfd4fd5ce</identification>
-      </annotationBean>
-      <date>2014-06-23 09:53:47.764 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/iterationstrategies.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/iterationstrategies.t2flow b/taverna-scufl2-t2flow/src/test/resources/iterationstrategies.t2flow
deleted file mode 100644
index 412dde9..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/iterationstrategies.t2flow
+++ /dev/null
@@ -1,387 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="87aa4917-46ce-473e-b183-f7d4e1860d30" role="top"><name>Demonstrationofconfigurableiteration</name><inputPorts /><outputPorts><port><name>Output</name><annotations /></port></outputPorts><processors><processor><name>Colours</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>red ,green ,</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>0</initialDelay>
-  <maxDelay>0</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>Animals</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="x
 stream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>cat ,rabbit ,</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>0</initialDelay>
-  <maxDelay>0</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>Shapes</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xs
 tream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>square ,circular ,triangular ,</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>0</initialDelay>
-  <maxDelay>0</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>ColoursLisr</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string" to="st
 ring" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
-  <script>List split = new ArrayList();
-if (!string.equals("")) {
-	String regexString = ",";
-	if (regex != void) {
-		regexString = regex;
-	}
-	String[] result = string.split(regexString);
-	for (int i = 0; i &lt; result.length; i++) {
-		split.add(result[i]);
-	}
-}
-</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>regex</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>split</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>AnimalsList</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</cla
 ss><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
-  <script>List split = new ArrayList();
-if (!string.equals("")) {
-	String regexString = ",";
-	if (regex != void) {
-		regexString = regex;
-	}
-	String[] result = string.split(regexString);
-	for (int i = 0; i &lt; result.length; i++) {
-		split.add(result[i]);
-	}
-}
-</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>regex</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>split</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>ShapesList</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</clas
 s><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
-  <script>List split = new ArrayList();
-if (!string.equals("")) {
-	String regexString = ",";
-	if (regex != void) {
-		regexString = regex;
-	}
-	String[] result = string.split(regexString);
-	for (int i = 0; i &lt; result.length; i++) {
-		split.add(result[i]);
-	}
-}
-</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>regex</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>split</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Concatenate_two_strings</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>ne
 t.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><dot><port name="string1" depth="0" /><port name="string2" depth="0" /></dot></strategy></iteration></iterationStrategyStack></processor><processor><name>ShapeAnimals</name><inputPorts><port><name>string2</name><depth>0</depth></port><port><name>string1</name><depth>0</depth></port><port><name>string3</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>lo
 calworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /><map from="string3" to="string3" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2 + string3;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string3</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
-        <text>UserNameHere</text>
-      </annotationBean>
-      <date>2011-02-10 16:47:32.655 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string1" depth="0" /><dot><port name="string3" depth="0" /><port name="string2" depth="0" /></dot></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>ColoursLisr</processor><port>string</port></sink><source type="processor"><processor>Colours</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>AnimalsList</processor><port>string</port></sink><source type="processor"><processor>Animals</proc
 essor><port>value</port></source></datalink><datalink><sink type="processor"><processor>ShapesList</processor><port>string</port></sink><source type="processor"><processor>Shapes</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>ColoursLisr</processor><port>split</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="processor"><processor>AnimalsList</processor><port>split</port></source></datalink><datalink><sink type="processor"><processor>ShapeAnimals</processor><port>string2</port></sink><source type="processor"><processor>Concatenate_two_strings</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>ShapeAnimals</processor><port>string1</port></sink><source type="processor"><processor>ShapesList</processor><port
 >split</port></source></datalink><datalink><sink type="processor"><processor>ShapeAnimals</processor><port>string3</port></sink><source type="processor"><processor>AnimalsList</processor><port>split</port></source></datalink><datalink><sink type="dataflow"><port>Output</port></sink><source type="processor"><processor>ShapeAnimals</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Demonstration of configurable iteration</text>
-      </annotationBean>
-      <date>2009-06-29 15:44:05.675 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8b6bb6f1-a567-4c65-89e4-ed400e487b9f</identification>
-      </annotationBean>
-      <date>2011-02-10 16:49:07.245 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>87aa4917-46ce-473e-b183-f7d4e1860d30</identification>
-      </annotationBean>
-      <date>2011-02-10 17:06:01.482 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>be152f54-e4a7-4324-9ce6-44438c5daed7</identification>
-      </annotationBean>
-      <date>2010-07-04 18:12:25.361 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Tom Oinn</text>
-      </annotationBean>
-      <date>2009-06-29 15:44:05.675 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>This workflow shows the use of the iteration strategy editor to ensure that only relevant combinations of inputs are used during an implicit iteration.</text>
-      </annotationBean>
-      <date>2009-06-29 15:44:05.675 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>4bdec587-5bd1-4923-aef2-6acbe660e8f4</identification>
-      </annotationBean>
-      <date>2011-02-10 16:47:56.751 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/merge_fun.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/merge_fun.t2flow b/taverna-scufl2-t2flow/src/test/resources/merge_fun.t2flow
deleted file mode 100644
index a84b482..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/merge_fun.t2flow
+++ /dev/null
@@ -1,66 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="aaecfd60-6456-4573-a25c-bcb841050601" role="top"><name>Workflow1</name><inputPorts /><outputPorts><port><name>a</name><annotations /></port><port><name>b</name><annotations /></port></outputPorts><processors><processor><name>Echo_List</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>outputlist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="inputlist" to="inputlist" /></inputMap><outputMap><map from="outputlist" to="outputlist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurati
 onBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EchoList</localworkerName>
-  <script>outputlist = inputlist;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="inputlist" depth="1" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>a</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" />
 </outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>a</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>b</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.
 t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>b</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="merge"><port>b</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="merge"><port>b</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalink><sink type="merge"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalink><
 sink type="merge"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>a</port></sink><source type="processor"><processor>Echo_List</processor><port>outputlist</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>aaecfd60-6456-4573-a25c-bcb841050601</identification>
-      </annotationBean>
-      <date>2010-10-29 09:52:34.321 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/merge_then_dataflow_link.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/merge_then_dataflow_link.t2flow b/taverna-scufl2-t2flow/src/test/resources/merge_then_dataflow_link.t2flow
deleted file mode 100644
index 4968daa..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/merge_then_dataflow_link.t2flow
+++ /dev/null
@@ -1,66 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="aaecfd60-6456-4573-a25c-bcb841050601" role="top"><name>Workflow1</name><inputPorts /><outputPorts><port><name>a</name><annotations /></port><port><name>b</name><annotations /></port></outputPorts><processors><processor><name>Echo_List</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>outputlist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="inputlist" to="inputlist" /></inputMap><outputMap><map from="outputlist" to="outputlist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurati
 onBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EchoList</localworkerName>
-  <script>outputlist = inputlist;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="inputlist" depth="1" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>a</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" />
 </outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>a</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>b</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.
 t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>b</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="merge"><port>b</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>b</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalink><sink type="merge"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalin
 k><sink type="merge"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>a</port></sink><source type="processor"><processor>Echo_List</processor><port>outputlist</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>aaecfd60-6456-4573-a25c-bcb841050601</identification>
-      </annotationBean>
-      <date>2010-10-29 09:52:34.321 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/missing_merge.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/missing_merge.t2flow b/taverna-scufl2-t2flow/src/test/resources/missing_merge.t2flow
deleted file mode 100644
index 3cadf5b..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/missing_merge.t2flow
+++ /dev/null
@@ -1,66 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="aaecfd60-6456-4573-a25c-bcb841050601" role="top"><name>Workflow1</name><inputPorts /><outputPorts><port><name>a</name><annotations /></port><port><name>b</name><annotations /></port></outputPorts><processors><processor><name>Echo_List</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>outputlist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="inputlist" to="inputlist" /></inputMap><outputMap><map from="outputlist" to="outputlist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurati
 onBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EchoList</localworkerName>
-  <script>outputlist = inputlist;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="inputlist" depth="1" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>a</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" />
 </outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>a</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>b</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.
 t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>b</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="merge"><port>b</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="merge"><port>b</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datali
 nk><sink type="processor"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>a</port></sink><source type="processor"><processor>Echo_List</processor><port>outputlist</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>aaecfd60-6456-4573-a25c-bcb841050601</identification>
-      </annotationBean>
-      <date>2010-10-29 09:52:34.321 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file


[21/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.svg
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.svg b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.svg
deleted file mode 100644
index 0c14a45..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
-]>
-<!-- Generated by Graphviz version 2.20.2 (Tue Mar &#160;2 19:03:41 UTC 2010)
-     For user: (stain) Stian Soiland&#45;Reyes,,,, -->
-<!-- Title: A_simple_hello_world_workflow Pages: 1 -->
-<svg width="146pt" height="210pt"
- viewBox="0.00 0.00 146.00 210.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 206)">
-<title>A_simple_hello_world_workflow</title>
-<polygon style="fill:#ffffff;stroke:#ffffff;" points="-4,4 -4,-206 142,-206 142,4 -4,4"/>
-<g id="cluster2" class="cluster"><title>cluster_A_simple_hello_world_workflowsinks</title>
-<polygon style="fill:none;stroke:black;stroke-dasharray:1,5;" points="11,-16 11,-73 130,-73 130,-16 11,-16"/>
-<text text-anchor="middle" x="70" y="-60.5" style="font-family:Times New Roman;font-size:10.00;">Workflow output ports</text>
-</g>
-<g id="cluster3" class="cluster"><title>cluster_A_simple_hello_world_workflowsources</title>
-<polygon style="fill:none;stroke:black;stroke-dasharray:1,5;" points="10,-137 10,-194 121,-194 121,-137 10,-137"/>
-<text text-anchor="middle" x="65" y="-181.5" style="font-family:Times New Roman;font-size:10.00;">Workflow input ports</text>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSINKCONTROL -->
-<g id="node2" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSINKCONTROL</title>
-<polygon style="fill:#66cd00;stroke:black;" points="96,-28 102,-37 90,-37 96,-28"/>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results -->
-<g id="node3" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results</title>
-<polygon style="fill:#8ed6f0;stroke:black;" points="67,-44 23,-44 23,-24 67,-24 67,-44"/>
-<text text-anchor="middle" x="45" y="-31" style="font-family:Arial;font-size:10.00;">results</text>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCECONTROL -->
-<g id="node5" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCECONTROL</title>
-<polygon style="fill:#ff4040;stroke:black;" points="101,-161 95,-152 107,-152 101,-161"/>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName -->
-<g id="node6" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName</title>
-<polygon style="fill:#8ed6f0;stroke:black;" points="86,-165 26,-165 26,-145 86,-145 86,-165"/>
-<text text-anchor="middle" x="56" y="-152" style="font-family:Arial;font-size:10.00;">yourName</text>
-</g>
-<!-- A_simple_hello_world_workflowBeanshell -->
-<g id="node7" class="node"><title>A_simple_hello_world_workflowBeanshell</title>
-<polygon style="fill:#deb887;stroke:black;" points="58,-129 2.13163e-14,-129 0,-109 58,-109 58,-129"/>
-<text text-anchor="middle" x="29" y="-116" style="font-family:Arial;font-size:10.00;">Beanshell</text>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowBeanshell -->
-<g id="edge4" class="edge"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowBeanshell</title>
-<path style="fill:none;stroke:#000000;" d="M48,-145C46,-143 44,-140 42,-138"/>
-<polygon style="fill:#000000;stroke:#000000;" points="44.916,-136.042 37,-129 38.7969,-139.441 44.916,-136.042"/>
-</g>
-<!-- A_simple_hello_world_workflowMerge0 -->
-<g id="node8" class="node"><title>A_simple_hello_world_workflowMerge0</title>
-<ellipse style="fill:#4f94cd;stroke:black;" cx="45" cy="-87" rx="6" ry="6"/>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowMerge0 -->
-<g id="edge6" class="edge"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowMerge0</title>
-<path style="fill:none;stroke:#000000;" d="M58,-145C60,-135 61,-121 58,-109 57,-106 56,-103 54,-100"/>
-<polygon style="fill:#000000;stroke:#000000;" points="57.268,-98.625 49,-92 51.332,-102.335 57.268,-98.625"/>
-</g>
-<!-- A_simple_hello_world_workflowBeanshell&#45;&gt;A_simple_hello_world_workflowMerge0 -->
-<g id="edge8" class="edge"><title>A_simple_hello_world_workflowBeanshell&#45;&gt;A_simple_hello_world_workflowMerge0</title>
-<path style="fill:none;stroke:#000000;" d="M34,-109C35,-107 36,-105 38,-102"/>
-<polygon style="fill:#000000;stroke:#000000;" points="41.1369,-103.56 42,-93 34.7402,-100.717 41.1369,-103.56"/>
-</g>
-<!-- A_simple_hello_world_workflowMerge0&#45;&gt;A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results -->
-<g id="edge10" class="edge"><title>A_simple_hello_world_workflowMerge0&#45;&gt;A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results</title>
-<path style="fill:none;stroke:#000000;" d="M45,-81C45,-74 45,-64 45,-54"/>
-<polygon style="fill:#000000;stroke:#000000;" points="48.5001,-54 45,-44 41.5001,-54 48.5001,-54"/>
-</g>
-</g>
-</svg>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/mimetype
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/mimetype b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/mimetype
deleted file mode 100644
index 2d61400..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/mimetype
+++ /dev/null
@@ -1 +0,0 @@
-application/vnd.taverna.scufl2.workflow-bundle
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/ontologies/taverna2.2.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/ontologies/taverna2.2.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/ontologies/taverna2.2.rdf
deleted file mode 100644
index fdd234c..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/ontologies/taverna2.2.rdf
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2010/scufl2#" 
-	xmlns:beanshell="beanshell#"
-	xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:owl="http://www.w3.org/2002/07/owl#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd 
-						http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd"
-	xsi:type="OntologyDocument" xml:base="http://ns.taverna.org.uk/2010/activity/" >
-
-	<owl:Class
-		rdf:about="beanshell">
-		<configurationType
-			rdf:resource="beanshell#Configuration" />
-		<rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity" />
-	</owl:Class>
-
-	<owl:Class
-		rdf:about="beanshell#Config">
-		<rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configuration" />
-	</owl:Class>
-
-	<owl:DatatypeProperty
-		rdf:about="beanshell#script">
-		<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty" />
-		<required rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</required>
-		<rdfs:domain
-			rdf:resource="beanshell#Configuration" />
-		<rdfs:label>script</rdfs:label>
-		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
-		<rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#script" />
-	</owl:DatatypeProperty>
-</rdf:RDF>
-	

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaServer.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaServer.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaServer.rdf
deleted file mode 100644
index a156847..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaServer.rdf
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2010/scufl2#"
-	xmlns:beanshell="http://ns.taverna.org.uk/2010/activity/beanshell#"
-	xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:owl="http://www.w3.org/2002/07/owl#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd 
-						http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd"
-	xsi:type="ProfileDocument" xml:base="tavernaServer/">
-
-	<Profile rdf:about="">
-		<name>tavernaServer</name>
-		<processorBinding rdf:resource="processorbinding/Hello/" />
-		<activateConfiguration rdf:resource="configuration/Hello/" />
-	</Profile>
-
-	<Activity rdf:about="activity/HelloScript/">
-		<rdf:type
-			rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell" />
-		<name>HelloScript</name>
-		<inputActivityPort>
-			<InputActivityPort rdf:about="activity/HelloScript/in/personName">
-				<name>personName</name>
-				<portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-			</InputActivityPort>
-		</inputActivityPort>
-
-		<outputActivityPort>
-			<OutputActivityPort rdf:about="activity/HelloScript/out/hello">
-				<name>hello</name>
-				<portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-				<granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-			</OutputActivityPort>
-		</outputActivityPort>
-	</Activity>
-
-	<ProcessorBinding rdf:about="processorbinding/Hello/">
-		<name>Hello</name>
-		<bindActivity rdf:resource="activity/HelloScript/" />
-		<bindProcessor rdf:resource="../../workflow/HelloWorld/processor/Hello/" />
-		<inputPortBinding>
-			<InputPortBinding rdf:about="processorbinding/Hello/in/name">
-				<bindInputActivityPort rdf:resource="activity/HelloScript/in/personName" />
-				<bindInputProcessorPort
-					rdf:resource="../../workflow/HelloWorld/processor/Hello/in/name" />
-			</InputPortBinding>
-		</inputPortBinding>
-		<outputPortBinding>
-			<OutputPortBinding rdf:about="processorbinding/Hello/out/greeting">
-				<bindOutputActivityPort rdf:resource="activity/HelloScript/out/hello" />
-				<bindOutputProcessorPort
-					rdf:resource="../../workflow/HelloWorld/processor/Hello/out/greeting" />
-			</OutputPortBinding>
-		</outputPortBinding>
-	</ProcessorBinding>
-
-	<Configuration rdf:about="configuration/Hello/">
-		<rdf:type
-			rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell#Config" />
-		<name>Hello</name>
-		<configure rdf:resource="activity/HelloScript/" />
-		<beanshell:script>hello = "Hello, " + personName;
-System.out.println("Server says: " + hello);</beanshell:script>
-	</Configuration>
-
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaWorkbench.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaWorkbench.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaWorkbench.rdf
deleted file mode 100644
index 3f2b98b..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/profile/tavernaWorkbench.rdf
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2010/scufl2#"
-	xmlns:beanshell="http://ns.taverna.org.uk/2010/activity/beanshell#"
-	xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:owl="http://www.w3.org/2002/07/owl#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd 
-						http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd"
-	xsi:type="ProfileDocument" xml:base="tavernaWorkbench/">
-	<Profile rdf:about="">
-		<name>tavernaWorkbench</name>
-		<processorBinding rdf:resource="processorbinding/Hello/" />
-		<activateConfiguration rdf:resource="configuration/Hello/" />
-	</Profile>
-
-	<Activity rdf:about="activity/HelloScript/">
-		<rdf:type
-			rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell" />
-		<name>HelloScript</name>
-		<inputActivityPort>
-			<InputActivityPort rdf:about="activity/HelloScript/in/personName">
-				<name>personName</name>
-				<portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-			</InputActivityPort>
-		</inputActivityPort>
-		<outputActivityPort>
-			<OutputActivityPort rdf:about="activity/HelloScript/out/hello">
-				<name>hello</name>
-				<portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-				<granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-			</OutputActivityPort>
-		</outputActivityPort>
-	</Activity>
-
-	<ProcessorBinding rdf:about="processorbinding/Hello/">
-		<name>Hello</name>		
-		<bindActivity rdf:resource="activity/HelloScript/" />		
-		<bindProcessor rdf:resource="../../workflow/HelloWorld/processor/Hello/" />
-		<activityPosition rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</activityPosition>
-		<inputPortBinding>
-			<InputPortBinding rdf:about="processorbinding/Hello/in/name">
-				<bindInputActivityPort rdf:resource="activity/HelloScript/in/personName" />
-				<bindInputProcessorPort
-					rdf:resource="../../workflow/HelloWorld/processor/Hello/in/name" />
-			</InputPortBinding>
-		</inputPortBinding> 
-		<outputPortBinding>
-			<OutputPortBinding rdf:about="processorbinding/Hello/out/greeting">
-				<bindOutputActivityPort rdf:resource="activity/HelloScript/out/hello" />
-				<bindOutputProcessorPort
-					rdf:resource="../../workflow/HelloWorld/processor/Hello/out/greeting" />
-			</OutputPortBinding>
-		</outputPortBinding>		
-	</ProcessorBinding>
-
-	<Configuration rdf:about="configuration/Hello/">
-		<rdf:type
-			rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell#Config" />
-		<name>Hello</name>
-		<configure rdf:resource="activity/HelloScript/" />
-		<beanshell:script>hello = "Hello, " + personName;
-JOptionPane.showMessageDialog(null, hello);</beanshell:script>
-	</Configuration>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflow/HelloWorld.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflow/HelloWorld.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflow/HelloWorld.rdf
deleted file mode 100644
index 7c58856..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflow/HelloWorld.rdf
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://ns.taverna.org.uk/2010/scufl2#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="WorkflowDocument" xml:base="HelloWorld/" xsi:schemaLocation="http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd">
-    <Workflow rdf:about="">
-        <name>HelloWorld</name>
-        <workflowIdentifier rdf:resource="http://ns.taverna.org.uk/2010/workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/"/>
-        <inputWorkflowPort>
-            <InputWorkflowPort rdf:about="in/yourName">
-                <name>yourName</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputWorkflowPort>
-        </inputWorkflowPort>
-        <outputWorkflowPort>
-            <OutputWorkflowPort rdf:about="out/results">
-                <name>results</name>
-            </OutputWorkflowPort>
-        </outputWorkflowPort>
-        <processor>
-            <Processor rdf:about="processor/Hello/">
-                <name>Hello</name>
-                <inputProcessorPort>
-                    <InputProcessorPort rdf:about="processor/Hello/in/name">
-                        <name>name</name>
-                        <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                    </InputProcessorPort>
-                </inputProcessorPort>
-                <outputProcessorPort>
-                    <OutputProcessorPort rdf:about="processor/Hello/out/greeting">
-                        <name>greeting</name>
-                        <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                        <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-                    </OutputProcessorPort>
-                </outputProcessorPort>
-                <dispatchStack>
-                    <DispatchStack rdf:about="processor/Hello/dispatchstack/">
-                        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/DefaultDispatchStack"/>
-                        <dispatchStackLayers rdf:parseType="Collection">
-                            <DispatchStackLayer rdf:about="processor/Hello/dispatchstack/0/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Parallelise"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/Hello/dispatchstack/1/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/ErrorBounce"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/Hello/dispatchstack/2/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Failover"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/Hello/dispatchstack/3/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Retry"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/Hello/dispatchstack/4/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Stop"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/Hello/dispatchstack/5/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Invoke"/>
-                            </DispatchStackLayer>
-                        </dispatchStackLayers>
-                    </DispatchStack>
-                </dispatchStack>
-                <iterationStrategyStack>
-                    <IterationStrategyStack rdf:about="processor/Hello/iterationstrategy/">
-                        <iterationStrategies rdf:parseType="Collection">
-                            <CrossProduct rdf:about="processor/Hello/iterationstrategy/0/">
-<productOf rdf:parseType="Collection">
-    <PortNode rdf:about="processor/Hello/iterationstrategy/0/0/">
-        <iterateOverInputPort rdf:resource="processor/Hello/in/name"/>
-        <desiredDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</desiredDepth>
-    </PortNode>
-</productOf>
-                            </CrossProduct>
-                        </iterationStrategies>
-                    </IterationStrategyStack>
-                </iterationStrategyStack>
-            </Processor>
-        </processor>
-        <processor>
-            <Processor rdf:about="processor/wait4me/">
-                <name>wait4me</name>
-                <dispatchStack>
-                    <DispatchStack rdf:about="processor/wait4me/dispatchstack/">
-                        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/DefaultDispatchStack"/>
-                        <dispatchStackLayers rdf:parseType="Collection">
-                            <DispatchStackLayer rdf:about="processor/wait4me/dispatchstack/0/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Parallelise"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/wait4me/dispatchstack/1/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/ErrorBounce"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/wait4me/dispatchstack/2/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Failover"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/wait4me/dispatchstack/3/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Retry"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/wait4me/dispatchstack/4/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Stop"/>
-                            </DispatchStackLayer>
-                            <DispatchStackLayer rdf:about="processor/wait4me/dispatchstack/5/">
-<rdf:type rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Invoke"/>
-                            </DispatchStackLayer>
-                        </dispatchStackLayers>
-                    </DispatchStack>
-                </dispatchStack>
-                <iterationStrategyStack>
-                    <IterationStrategyStack rdf:about="processor/wait4me/iterationstrategy/">
-                        <iterationStrategies rdf:parseType="Collection">
-                            <CrossProduct rdf:about="processor/wait4me/iterationstrategy/0/">
-<productOf rdf:parseType="Collection"/>
-                            </CrossProduct>
-                        </iterationStrategies>
-                    </IterationStrategyStack>
-                </iterationStrategyStack>
-            </Processor>
-        </processor>
-        <datalink>
-            <DataLink rdf:about="datalink?from=processor/Hello/out/greeting&amp;to=out/results&amp;mergePosition=0">
-                <receiveFrom rdf:resource="processor/Hello/out/greeting"/>
-                <sendTo rdf:resource="out/results"/>
-                <mergePosition rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</mergePosition>
-            </DataLink>
-        </datalink>
-        <datalink>
-            <DataLink rdf:about="datalink?from=in/yourName&amp;to=processor/Hello/in/name">
-                <receiveFrom rdf:resource="in/yourName"/>
-                <sendTo rdf:resource="processor/Hello/in/name"/>
-            </DataLink>
-        </datalink>
-        <datalink>
-            <DataLink rdf:about="datalink?from=in/yourName&amp;to=out/results&amp;mergePosition=1">
-                <receiveFrom rdf:resource="in/yourName"/>
-                <sendTo rdf:resource="out/results"/>
-                <mergePosition rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</mergePosition>
-            </DataLink>
-        </datalink>
-        <control>
-            <Blocking rdf:about="control?block=processor/Hello/&amp;untilFinished=processor/wait4me/">
-                <block rdf:resource="processor/Hello/"/>
-                <untilFinished rdf:resource="processor/wait4me/"/>
-            </Blocking>
-        </control>
-    </Workflow>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflowBundle.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflowBundle.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflowBundle.rdf
deleted file mode 100644
index e39204f..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflowBundle.rdf
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2010/scufl2#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd"
-	xsi:type="WorkflowBundleDocument" xml:base="./">
-	<WorkflowBundle rdf:about="">
-		<name>HelloWorld</name>
-		<globalBaseURI
-			rdf:resource="http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/" />		
-		<mainWorkflow rdf:resource="workflow/HelloWorld/" />
-		<workflow>
-			<Workflow rdf:about="workflow/HelloWorld/">
-				<rdfs:seeAlso rdf:resource="workflow/HelloWorld.rdf" />
-			</Workflow>
-		</workflow>
-		<!--
-		<workflow>
-			<Workflow rdf:about="workflow/SomeNestedWorkflow/">
-				<rdfs:seeAlso rdf:resource="workflow/SomeNestedWorkflow.rdf" />
-			</Workflow>
-		</workflow>
-		-->
-		<mainProfile rdf:resource="profile/tavernaWorkbench/" />
-		<profile>
-			<Profile rdf:about="profile/tavernaServer/">
-				<rdfs:seeAlso rdf:resource="profile/tavernaServer.rdf" />
-			</Profile>
-		</profile>
-		<profile>
-			<Profile rdf:about="profile/tavernaWorkbench/">
-				<rdfs:seeAlso rdf:resource="profile/tavernaWorkbench.rdf" />
-			</Profile>
-		</profile>
-		<rdfs:seeAlso rdf:resource="annotation/workflowBundle.rdf" />
-	</WorkflowBundle>
-
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/megaProfile.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/megaProfile.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/megaProfile.rdf
deleted file mode 100644
index 3e23437..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/megaProfile.rdf
+++ /dev/null
@@ -1,696 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2010/scufl2#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ProfileDocument" xml:base="taverna-2.2.0/" xsi:schemaLocation="http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd">
-    <Profile rdf:about="">
-        <name>taverna-2.2.0</name>
-        <activateConfiguration rdf:resource="configuration/Content_list/"/>
-        <activateConfiguration rdf:resource="configuration/Format_as_GFF/"/>
-        <activateConfiguration rdf:resource="configuration/Get_XML_result/"/>
-        <activateConfiguration rdf:resource="configuration/Get_XML_result_type_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Get_text_result/"/>
-        <activateConfiguration rdf:resource="configuration/Get_text_result_type_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Input_data/"/>
-        <activateConfiguration rdf:resource="configuration/Input_data_type_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Job_params/"/>
-        <activateConfiguration rdf:resource="configuration/Job_params_async_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Job_params_crc_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Job_params_goterms_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Job_params_seqtype_defaultValue/"/>
-        <activateConfiguration rdf:resource="configuration/Unpack_XML_result/"/>
-        <activateConfiguration rdf:resource="configuration/Unpack_text_result/"/>
-        <activateConfiguration rdf:resource="configuration/checkStatus/"/>
-        <activateConfiguration rdf:resource="configuration/runInterProScan/"/>
-    </Profile>
-    <Activity rdf:about="activity/Content_list/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/xml-splitter/in"/>
-        <name>Content_list</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Content_list/in/WSArrayofData">
-                <name>WSArrayofData</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Content_list/out/output">
-                <name>output</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Format_as_GFF/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell"/>
-        <name>Format_as_GFF</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Format_as_GFF/in/interproscan_text">
-                <name>interproscan_text</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Format_as_GFF/out/interproscan_gff">
-                <name>interproscan_gff</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Get_XML_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl"/>
-        <name>Get_XML_result</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Get_XML_result/in/jobid">
-                <name>jobid</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Get_XML_result/in/type">
-                <name>type</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Get_XML_result/out/attachmentList">
-                <name>attachmentList</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Get_XML_result/out/result">
-                <name>result</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Get_XML_result_type_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Get_XML_result_type_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Get_XML_result_type_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Get_text_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl"/>
-        <name>Get_text_result</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Get_text_result/in/jobid">
-                <name>jobid</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Get_text_result/in/type">
-                <name>type</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Get_text_result/out/attachmentList">
-                <name>attachmentList</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Get_text_result/out/result">
-                <name>result</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Get_text_result_type_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Get_text_result_type_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Get_text_result_type_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Input_data/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/xml-splitter/in"/>
-        <name>Input_data</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Input_data/in/content">
-                <name>content</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Input_data/in/type">
-                <name>type</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Input_data/out/output">
-                <name>output</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Input_data_type_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Input_data_type_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Input_data_type_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Job_params/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/xml-splitter/in"/>
-        <name>Job_params</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/app">
-                <name>app</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/async">
-                <name>async</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/crc">
-                <name>crc</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/email">
-                <name>email</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/goterms">
-                <name>goterms</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/outformat">
-                <name>outformat</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/seqtype">
-                <name>seqtype</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/trlen">
-                <name>trlen</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Job_params/in/trtable">
-                <name>trtable</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Job_params/out/output">
-                <name>output</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Job_params_async_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Job_params_async_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Job_params_async_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Job_params_crc_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Job_params_crc_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Job_params_crc_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Job_params_goterms_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Job_params_goterms_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Job_params_goterms_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Job_params_seqtype_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant"/>
-        <name>Job_params_seqtype_defaultValue</name>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Job_params_seqtype_defaultValue/out/value">
-                <name>value</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Unpack_XML_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell"/>
-        <name>Unpack_XML_result</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Unpack_XML_result/in/bytes">
-                <name>bytes</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Unpack_XML_result/out/string">
-                <name>string</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/Unpack_text_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell"/>
-        <name>Unpack_text_result</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/Unpack_text_result/in/bytes">
-                <name>bytes</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/Unpack_text_result/out/string">
-                <name>string</name>
-                <portDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</portDepth>
-                <granularPortDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</granularPortDepth>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/checkStatus/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl"/>
-        <name>checkStatus</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/checkStatus/in/jobid">
-                <name>jobid</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/checkStatus/out/status">
-                <name>status</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Activity rdf:about="activity/runInterProScan/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl"/>
-        <name>runInterProScan</name>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/runInterProScan/in/content">
-                <name>content</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <inputActivityPort>
-            <InputActivityPort rdf:about="activity/runInterProScan/in/params">
-                <name>params</name>
-            </InputActivityPort>
-        </inputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/runInterProScan/out/attachmentList">
-                <name>attachmentList</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-        <outputActivityPort>
-            <OutputActivityPort rdf:about="activity/runInterProScan/out/jobid">
-                <name>jobid</name>
-            </OutputActivityPort>
-        </outputActivityPort>
-    </Activity>
-    <Configuration rdf:about="configuration/Content_list/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/xml-splitter#Config"/>
-        <name>Content_list</name>
-        <configure rdf:resource="activity/Content_list/"/>
-        <wrappedType:wrappedType xmlns:wrappedType="http://ns.taverna.org.uk/2010/activity/xml-splitter#" rdf:parseType="Literal">
-            <s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-                <s:arraytype name="content" optional="false" qname="{http://www.ebi.ac.uk/WSInterProScan}WSArrayofData" typename="WSArrayofData" unbounded="false" wrapped="false">
-                    <s:elementtype>
-                        <s:complextype name="" optional="false" qname="{http://www.ebi.ac.uk/WSInterProScan}data" typename="data" unbounded="false">
-                            <s:elements>
-<s:basetype name="type" optional="false" qname="data&gt;type" typename="string" unbounded="false"/>
-<s:basetype name="content" optional="false" qname="data&gt;content" typename="string" unbounded="false"/>
-                            </s:elements>
-                        </s:complextype>
-                    </s:elementtype>
-                </s:arraytype>
-            </s:extensions>
-        </wrappedType:wrappedType>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Content_list/in/WSArrayofData"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/xml"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <outputPortDefinition>
-            <OutputPortDefinition>
-                <definesOutputPort rdf:resource="../../activity/Content_list/out/output"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/xml"/>
-            </OutputPortDefinition>
-        </outputPortDefinition>
-    </Configuration>
-    <Configuration rdf:about="configuration/Format_as_GFF/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell#Config"/>
-        <name>Format_as_GFF</name>
-        <configure rdf:resource="activity/Format_as_GFF/"/>
-        <script:script xmlns:script="http://ns.taverna.org.uk/2010/activity/beanshell#">import java.util.StringTokenizer;
-
-interproscan_gff = &quot;&quot;;
-
-// Split into lines
-StringTokenizer tok1 = new StringTokenizer(interproscan_text, &quot;\n&quot;);
-while(tok1.hasMoreElements()) {
-  feat1 = tok1.nextElement();
-  // Split into fields
-  StringTokenizer tok2 = new StringTokenizer(feat1, &quot;\t&quot;);
-  fieldCount = 0;
-  attributeStr = &quot;&quot;;
-  while(tok2.hasMoreElements()) {
-    fieldCount++;
-    fieldStr = tok2.nextElement();
-    if(fieldCount &lt; 2) { // First field is the ID
-      interproscan_gff += fieldStr;
-    }
-    // The tool, feature, start and stop
-    else if(fieldCount == 4 || (fieldCount &gt; 5 &amp;&amp; fieldCount &lt; 9)) {
-      interproscan_gff += &quot;\t&quot; + fieldStr;
-    }
-    // Score
-    else if(fieldCount == 9) {
-      if(fieldStr.equals(&quot;NA&quot;)) {
-        interproscan_gff += &quot;\t.&quot;;
-      } else {
-        interproscan_gff += &quot;\t&quot; + fieldStr;
-      }
-    }
-    // Matching InterPro entry
-    else if(fieldCount == 12 &amp;&amp; !fieldStr.equals(&quot;NULL&quot;)) {
-      attributeStr += fieldStr;
-    }
-    // Matching InterPro entry name
-    else if(fieldCount == 13 &amp;&amp; !fieldStr.equals(&quot;NULL&quot;)) {
-      attributeStr += &quot; &quot; + fieldStr;
-    }
-  }
-  interproscan_gff += &quot;\t.\t.\tInterProScan&quot;;
-  if(attributeStr.length() &gt; 0) {
-    interproscan_gff += &quot; ; &quot; + attributeStr;
-  }
-  interproscan_gff += &quot;\n&quot;;
-}</script:script>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Format_as_GFF/in/interproscan_text"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <outputPortDefinition>
-            <OutputPortDefinition>
-                <definesOutputPort rdf:resource="../../activity/Format_as_GFF/out/interproscan_gff"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </OutputPortDefinition>
-        </outputPortDefinition>
-    </Configuration>
-    <Configuration rdf:about="configuration/Get_XML_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl#Config"/>
-        <name>Get_XML_result</name>
-        <configure rdf:resource="activity/Get_XML_result/"/>
-        <operation:operation xmlns:operation="http://ns.taverna.org.uk/2010/activity/wsdl#">
-            <ns6:operation xmlns:ns6="http://ns.taverna.org.uk/2010/activity/wsdl/">
-                <name:name xmlns:name="http://ns.taverna.org.uk/2010/activity/wsdl/operation#">poll</name:name>
-                <wsdl:wsdl xmlns:wsdl="http://ns.taverna.org.uk/2010/activity/wsdl/operation#" rdf:resource="http://www.ebi.ac.uk/Tools/webservices/wsdl/WSInterProScan.wsdl"/>
-            </ns6:operation>
-        </operation:operation>
-    </Configuration>
-    <Configuration rdf:about="configuration/Get_XML_result_type_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Get_XML_result_type_defaultValue</name>
-        <configure rdf:resource="activity/Get_XML_result_type_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">toolxml</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Get_text_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl#Config"/>
-        <name>Get_text_result</name>
-        <configure rdf:resource="activity/Get_text_result/"/>
-        <operation:operation xmlns:operation="http://ns.taverna.org.uk/2010/activity/wsdl#">
-            <ns6:operation xmlns:ns6="http://ns.taverna.org.uk/2010/activity/wsdl/">
-                <name:name xmlns:name="http://ns.taverna.org.uk/2010/activity/wsdl/operation#">poll</name:name>
-                <wsdl:wsdl xmlns:wsdl="http://ns.taverna.org.uk/2010/activity/wsdl/operation#" rdf:resource="http://www.ebi.ac.uk/Tools/webservices/wsdl/WSInterProScan.wsdl"/>
-            </ns6:operation>
-        </operation:operation>
-    </Configuration>
-    <Configuration rdf:about="configuration/Get_text_result_type_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Get_text_result_type_defaultValue</name>
-        <configure rdf:resource="activity/Get_text_result_type_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">toolraw</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Input_data/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/xml-splitter#Config"/>
-        <name>Input_data</name>
-        <configure rdf:resource="activity/Input_data/"/>
-        <wrappedType:wrappedType xmlns:wrappedType="http://ns.taverna.org.uk/2010/activity/xml-splitter#" rdf:parseType="Literal">
-            <s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-                <s:complextype name="" optional="false" qname="{http://www.ebi.ac.uk/WSInterProScan}data" typename="data" unbounded="false">
-                    <s:elements>
-                        <s:basetype name="type" optional="false" qname="data&gt;type" typename="string" unbounded="false"/>
-                        <s:basetype name="content" optional="false" qname="data&gt;content" typename="string" unbounded="false"/>
-                    </s:elements>
-                </s:complextype>
-            </s:extensions>
-        </wrappedType:wrappedType>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Input_data/in/content"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Input_data/in/type"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <outputPortDefinition>
-            <OutputPortDefinition>
-                <definesOutputPort rdf:resource="../../activity/Input_data/out/output"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/xml"/>
-            </OutputPortDefinition>
-        </outputPortDefinition>
-    </Configuration>
-    <Configuration rdf:about="configuration/Input_data_type_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Input_data_type_defaultValue</name>
-        <configure rdf:resource="activity/Input_data_type_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">sequence</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Job_params/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/xml-splitter#Config"/>
-        <name>Job_params</name>
-        <configure rdf:resource="activity/Job_params/"/>
-        <wrappedType:wrappedType xmlns:wrappedType="http://ns.taverna.org.uk/2010/activity/xml-splitter#" rdf:parseType="Literal">
-            <s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-                <s:complextype name="params" optional="false" qname="{http://www.ebi.ac.uk/WSInterProScan}inputParams" typename="inputParams" unbounded="false">
-                    <s:elements>
-                        <s:basetype name="app" optional="false" qname="inputParams&gt;app" typename="string" unbounded="false"/>
-                        <s:basetype name="crc" optional="false" qname="inputParams&gt;crc" typename="boolean" unbounded="false"/>
-                        <s:basetype name="seqtype" optional="false" qname="inputParams&gt;seqtype" typename="string" unbounded="false"/>
-                        <s:basetype name="trlen" optional="false" qname="inputParams&gt;trlen" typename="int" unbounded="false"/>
-                        <s:basetype name="trtable" optional="false" qname="inputParams&gt;trtable" typename="int" unbounded="false"/>
-                        <s:basetype name="goterms" optional="false" qname="inputParams&gt;goterms" typename="boolean" unbounded="false"/>
-                        <s:basetype name="async" optional="false" qname="inputParams&gt;async" typename="boolean" unbounded="false"/>
-                        <s:basetype name="outformat" optional="false" qname="inputParams&gt;outformat" typename="string" unbounded="false"/>
-                        <s:basetype name="email" optional="false" qname="inputParams&gt;email" typename="string" unbounded="false"/>
-                    </s:elements>
-                </s:complextype>
-            </s:extensions>
-        </wrappedType:wrappedType>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/app"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/async"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/crc"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/email"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/goterms"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/outformat"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/seqtype"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/trlen"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:java.lang.String"/>
-                <definesInputPort rdf:resource="../../activity/Job_params/in/trtable"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <outputPortDefinition>
-            <OutputPortDefinition>
-                <definesOutputPort rdf:resource="../../activity/Job_params/out/output"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/xml"/>
-            </OutputPortDefinition>
-        </outputPortDefinition>
-    </Configuration>
-    <Configuration rdf:about="configuration/Job_params_async_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Job_params_async_defaultValue</name>
-        <configure rdf:resource="activity/Job_params_async_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">1</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Job_params_crc_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Job_params_crc_defaultValue</name>
-        <configure rdf:resource="activity/Job_params_crc_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">1</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Job_params_goterms_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Job_params_goterms_defaultValue</name>
-        <configure rdf:resource="activity/Job_params_goterms_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">1</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Job_params_seqtype_defaultValue/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/constant#Config"/>
-        <name>Job_params_seqtype_defaultValue</name>
-        <configure rdf:resource="activity/Job_params_seqtype_defaultValue/"/>
-        <string:string xmlns:string="http://ns.taverna.org.uk/2010/activity/constant#">p</string:string>
-    </Configuration>
-    <Configuration rdf:about="configuration/Unpack_XML_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell#Config"/>
-        <name>Unpack_XML_result</name>
-        <configure rdf:resource="activity/Unpack_XML_result/"/>
-        <script:script xmlns:script="http://ns.taverna.org.uk/2010/activity/beanshell#">string = new String(bytes);
-</script:script>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:[B"/>
-                <definesInputPort rdf:resource="../../activity/Unpack_XML_result/in/bytes"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/application/octet-stream"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <outputPortDefinition>
-            <OutputPortDefinition>
-                <definesOutputPort rdf:resource="../../activity/Unpack_XML_result/out/string"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </OutputPortDefinition>
-        </outputPortDefinition>
-    </Configuration>
-    <Configuration rdf:about="configuration/Unpack_text_result/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/beanshell#Config"/>
-        <name>Unpack_text_result</name>
-        <configure rdf:resource="activity/Unpack_text_result/"/>
-        <script:script xmlns:script="http://ns.taverna.org.uk/2010/activity/beanshell#">string = new String(bytes);
-</script:script>
-        <inputPortDefinition>
-            <InputPortDefinition>
-                <dataType rdf:resource="java:[B"/>
-                <definesInputPort rdf:resource="../../activity/Unpack_text_result/in/bytes"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/application/octet-stream"/>
-            </InputPortDefinition>
-        </inputPortDefinition>
-        <outputPortDefinition>
-            <OutputPortDefinition>
-                <definesOutputPort rdf:resource="../../activity/Unpack_text_result/out/string"/>
-                <expectedMimeType rdf:resource="http://purl.org/NET/mediatypes/text/plain"/>
-            </OutputPortDefinition>
-        </outputPortDefinition>
-    </Configuration>
-    <Configuration rdf:about="configuration/checkStatus/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl#Config"/>
-        <name>checkStatus</name>
-        <configure rdf:resource="activity/checkStatus/"/>
-        <operation:operation xmlns:operation="http://ns.taverna.org.uk/2010/activity/wsdl#">
-            <ns6:operation xmlns:ns6="http://ns.taverna.org.uk/2010/activity/wsdl/">
-                <name:name xmlns:name="http://ns.taverna.org.uk/2010/activity/wsdl/operation#">checkStatus</name:name>
-                <wsdl:wsdl xmlns:wsdl="http://ns.taverna.org.uk/2010/activity/wsdl/operation#" rdf:resource="http://www.ebi.ac.uk/Tools/webservices/wsdl/WSInterProScan.wsdl"/>
-            </ns6:operation>
-        </operation:operation>
-    </Configuration>
-    <Configuration rdf:about="configuration/runInterProScan/">
-        <rdf:type rdf:resource="http://ns.taverna.org.uk/2010/activity/wsdl#Config"/>
-        <name>runInterProScan</name>
-        <configure rdf:resource="activity/runInterProScan/"/>
-        <operation:operation xmlns:operation="http://ns.taverna.org.uk/2010/activity/wsdl#">
-            <ns6:operation xmlns:ns6="http://ns.taverna.org.uk/2010/activity/wsdl/">
-                <name:name xmlns:name="http://ns.taverna.org.uk/2010/activity/wsdl/operation#">runInterProScan</name:name>
-                <wsdl:wsdl xmlns:wsdl="http://ns.taverna.org.uk/2010/activity/wsdl/operation#" rdf:resource="http://www.ebi.ac.uk/Tools/webservices/wsdl/WSInterProScan.wsdl"/>
-            </ns6:operation>
-        </operation:operation>
-    </Configuration>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/roevo-test.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/roevo-test.xml b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/roevo-test.xml
deleted file mode 100644
index 4b2415c..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/roevo-test.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://purl.org/wf4ever/roevo#" 
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/"
-	xmlns:prov="http://www.w3.org/ns/prov#"
-	xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RoEvoDocument"
-	xml:base="http://example.com/test/base"
-	xsi:schemaLocation="http://purl.org/wf4ever/roevo# ../../../../../../../main/resources/uk/org/taverna/scufl2/rdfxml/xsd/roevo.xsd">
-	<VersionableResource rdf:about="v3">
-		<wasChangedBy>
-			<ChangeSpecification>
-				<rdf:type rdf:resource="http://example.com/InsertNestedWorkflow"/>
-				<fromVersion rdf:resource="v2" />
-				<hasChange>
-					<Removal>
-						<relatedResource rdf:resource="http://example.net/removed-item"/>
-						<relatedResource rdf:resource="removed-item2"/>
-					</Removal>
-				</hasChange>
-				<hasChange>
-					<Addition> 
-						<relatedResource rdf:resource="nested-workflow1" />
-						<relatedResource rdf:resource="http://example.net/nested-workflow2" />
-					</Addition>
-				</hasChange>
-				<hasChange>
-					<Modification>
-						<relatedResource rdf:resource="modified"/>
-						<relatedResource rdf:resource="http://example.net/modified2"/>
-					</Modification>
-				</hasChange>
-			</ChangeSpecification>
-		</wasChangedBy>
-		<prov:generatedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2012-12-24T18:00:00+01:00</prov:generatedAtTime>
-		<prov:wasRevisionOf rdf:resource="v2" />
-		<prov:hadOriginalSource rdf:resource="http://example.org/originalSource1"/>
-		<prov:hadOriginalSource rdf:resource="originalSource2"/>		
-		<prov:wasAttributedTo rdf:resource="../Fred" />
-		<prov:wasAttributedTo rdf:resource="http://example.net/SomeoneElse#me" />
-	</VersionableResource>
-	<VersionableResource rdf:about="v2">		
-		<prov:generatedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-01-15T11:00:00+01:00</prov:generatedAtTime>
-		<prov:wasRevisionOf rdf:resource="http://example.net/v1" />
-	</VersionableResource>
-	<VersionableResource rdf:about="http://example.net/v1">		
-		<prov:generatedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-01-15T11:00:00+01:00</prov:generatedAtTime>
-		<prov:wasRevisionOf rdf:resource="http://example.net/v0" />
-	</VersionableResource>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/update-bundle.sh
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/update-bundle.sh b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/update-bundle.sh
deleted file mode 100644
index 8e422b3..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/update-bundle.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-set -e
-rm example.scufl2
-cd example
-zip -0 -X ../example.scufl2 mimetype
-zip -r ../example.scufl2 . -x mimetype 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/pom.xml b/taverna-scufl2-schemas/pom.xml
deleted file mode 100644
index 98258bc..0000000
--- a/taverna-scufl2-schemas/pom.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-schemas</artifactId>
-	<packaging>bundle</packaging>
-	<name>Apache Taverna Scufl 2 Schemas</name>
-	<description>Schemas for SCUFL2</description>
-	<build>
-		<plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <!-- NO!
-                <configuration>
-                    <instructions>
-                        <Export-Package>org.apache.taverna.scufl2.api.io;provide:=true</Export-Package>
-                    </instructions>
-                </configuration>
-                 -->
-            </plugin>
-      <plugin>
-          <groupId>org.jvnet.jaxb2.maven2</groupId>
-          <artifactId>maven-jaxb2-plugin</artifactId>
-          <executions>
-            <execution>
-              <goals>
-                <goal>generate</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <schemaDirectory>src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/</schemaDirectory>
-          </configuration>
-      </plugin>
-
-	            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-                <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-            </plugins>
-            </build>	<dependencies>
-	</dependencies>
-	<repositories>
-
-	</repositories>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/META-INF/NOTICE.vm
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/META-INF/NOTICE.vm b/taverna-scufl2-schemas/src/main/resources/META-INF/NOTICE.vm
deleted file mode 100644
index f8b48e6..0000000
--- a/taverna-scufl2-schemas/src/main/resources/META-INF/NOTICE.vm
+++ /dev/null
@@ -1,39 +0,0 @@
-##
-## Licensed to the Apache Software Foundation (ASF) under one
-## or more contributor license agreements.  See the NOTICE file
-## distributed with this work for additional information
-## regarding copyright ownership.  The ASF licenses this file
-## to you under the Apache License, Version 2.0 (the
-## "License"); you may not use this file except in compliance
-## with the License.  You may obtain a copy of the License at
-##
-##  http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing,
-## software distributed under the License is distributed on an
-## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-## KIND, either express or implied.  See the License for the
-## specific language governing permissions and limitations
-## under the License.
-##
-
-#if ($projectName)$projectName#else${project.name}#end
-
-Copyright ${projectTimespan}#if($project.organization.name) $project.organization.name#else The Apache Software Foundation#end
-
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
-# xml.xsd
-
-Copyright © 2008 W3C® (MIT, ERCIM, Keio, Beihang). This software or 
-document includes material copied from or derived from:
-
-- Extensible Markup Language (XML) 1.0 (Fifth Edition)
-  W3C Recommendation 26 November 2008
-  http://www.w3.org/2001/xml.xsd  
-  http://www.w3.org/TR/xml/
-
-


[30/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorPortBinding.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorPortBinding.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorPortBinding.java
deleted file mode 100644
index 658296d..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorPortBinding.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package org.apache.taverna.scufl2.api.profiles;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.Collection;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.port.ActivityPort;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.ProcessorPort;
-
-
-/**
- * The binding between an <code>ActivityPort</code> and a
- * <code>ProcessorPort</code>.
- * <p>
- * This abstract class is realized as either an
- * {@link ProcessorInputPortBinding} or {@link ProcessorOutputPortBinding}. For
- * an input port binding, the binding goes from an {@link InputProcessorPort} to
- * an {@link InputActivityPort}, while for an output port binding the binding
- * goes from an {@link OutputActivityPort} to an {@link OutputProcessorPort}.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- * @param <A>
- *            the <code>ActivityPort</code>
- * @param <P>
- *            the <code>ProcessorPort</code>
- *            
- */
-public abstract class ProcessorPortBinding<A extends ActivityPort, P extends ProcessorPort>
-		extends AbstractCloneable implements Child<ProcessorBinding> {
-	private P boundProcessorPort;
-	private A boundActivityPort;
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	/**
-	 * Return the {@link ActivityPort} which is passing data from/to the
-	 * {@link #getBoundProcessorPort()}.
-	 * 
-	 * @return the <code>ActivityPort</code> to which data is passing from/to
-	 *         the bound <code>ProcessorPort</code>
-	 */
-	public A getBoundActivityPort() {
-		return boundActivityPort;
-	}
-
-	/**
-	 * Return the {@link ProcessorPort} which is passing data to/from the
-	 * {@link #getBoundActivityPort()}.
-	 * 
-	 * @return the <code>ProcessorPort</code> to which data is passing to/from
-	 *         the bound <code>ActivityPort</code>
-	 */
-	public P getBoundProcessorPort() {
-		return boundProcessorPort;
-	}
-
-	/**
-	 * Sets the {@link ActivityPort} which is passing data from/to the
-	 * {@link #getBoundProcessorPort()}.
-	 * 
-	 * @param boundActivityPort
-	 *            the <code>ActivityPort</code> to which data is passing from/to
-	 *            the bound <code>ProcessorPort</code>
-	 */
-	public void setBoundActivityPort(A boundActivityPort) {
-		this.boundActivityPort = boundActivityPort;
-	}
-
-	/**
-	 * Sets the {@link ProcessorPort} which is passing data to/from the
-	 * {@link #getBoundActivityPort()}.
-	 * 
-	 * @param boundProcessorPort
-	 *            the <code>ProcessorPort</code> to which data is passing
-	 *            to/from the bound <code>ActivityPort</code>
-	 */
-	public void setBoundProcessorPort(P boundProcessorPort) {
-		this.boundProcessorPort = boundProcessorPort;
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		@SuppressWarnings("unchecked")
-		ProcessorPortBinding<A, P> cloneBinding = (ProcessorPortBinding<A, P>) clone;
-		cloneBinding.setBoundActivityPort(cloning
-				.cloneOrOriginal(getBoundActivityPort()));
-		cloneBinding.setBoundProcessorPort(cloning
-				.cloneOrOriginal(getBoundProcessorPort()));
-	}
-
-	// Derived operations
-
-	/**
-	 * Get all the annotations that pertain to this port binding.
-	 * 
-	 * @return The collection of annotations.
-	 * @see Scufl2Tools#annotationsFor(Child)
-	 */
-	public Collection<Annotation> getAnnotations() {
-		return getTools().annotationsFor(this);
-	}
-
-	/**
-	 * Get the URI of this port binding.
-	 * 
-	 * @return The absolute URI.
-	 * @see URITools#uriForBean(WorkflowBean)
-	 */
-	public URI getURI() {
-		return getUriTools().uriForBean(this);
-	}
-
-	/**
-	 * Get the URI of this port binding relative to another workflow element.
-	 * 
-	 * @return The relative URI.
-	 * @see URITools#relativeUriForBean(WorkflowBean,WorflowBean)
-	 */
-	public URI getRelativeURI(WorkflowBean relativeTo) {
-		return getUriTools().relativeUriForBean(this, relativeTo);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/Profile.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/Profile.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/Profile.java
deleted file mode 100644
index a6e3498..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/Profile.java
+++ /dev/null
@@ -1,220 +0,0 @@
-package org.apache.taverna.scufl2.api.profiles;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.annotation.Revisioned;
-import org.apache.taverna.scufl2.api.common.AbstractRevisioned;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-
-/**
- * A <code>Profile</code> specifies a set of compatible {@link ProcessorBinding}
- * s.
- * <p>
- * For example, one <code>Profile</code> could contain ways of enacting a set of
- * {@link org.apache.taverna.scufl2.api.core.Processor Processor}s on a grid whilst
- * another contained ways of enacting the <code>Processor</code>s on a laptop.
- * 
- * @author Alan R Williams
- */
-public class Profile extends AbstractRevisioned implements
-		Child<WorkflowBundle>, Revisioned {
-	private final NamedSet<ProcessorBinding> processorBindings = new NamedSet<>();
-	private final NamedSet<Configuration> configurations = new NamedSet<>();
-	private Integer profilePosition;
-	private final NamedSet<Activity> activities = new NamedSet<>();
-	private WorkflowBundle parent;
-
-	/**
-	 * Constructs a <code>Profile</code> with a random UUID as the name.
-	 */
-	public Profile() {
-		super();
-	}
-
-	/**
-	 * Constructs a <code>Profile</code> with the specified name.
-	 * 
-	 * @param name
-	 *            the name of the <code>Profile</code>. <strong>Must
-	 *            not</strong> be <code>null</code> or an empty String.
-	 */
-	public Profile(String name) {
-		super(name);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this)) {
-			List<Iterable<? extends WorkflowBean>> children = new ArrayList<>();
-			children.add(getActivities());
-			children.add(getProcessorBindings());
-			children.add(getConfigurations());
-			outer: for (Iterable<? extends WorkflowBean> it : children)
-				for (WorkflowBean bean : it)
-					if (!bean.accept(visitor))
-						break outer;
-		}
-		return visitor.visitLeave(this);
-	}
-
-	/**
-	 * Returns the <code>Activity</code>s that this <code>Profile</code>
-	 * contains.
-	 * <p>
-	 * The <code>Activity</code>s may be bound to <code>Processor</code>s in the
-	 * <code>ProcessorBinding</code>s.
-	 * 
-	 * @return the <code>Activity</code>s that this <code>Profile</code>
-	 *         contains
-	 */
-	public NamedSet<Activity> getActivities() {
-		return activities;
-	}
-
-	/**
-	 * Returns the <code>Configuration</code>s that this <code>Profile</code>
-	 * contains.
-	 * 
-	 * @return the <code>Configuration</code>s that this <code>Profile</code>
-	 *         contains
-	 */
-	public NamedSet<Configuration> getConfigurations() {
-		return configurations;
-	}
-
-	@Override
-	public WorkflowBundle getParent() {
-		return parent;
-	}
-
-	/**
-	 * Return the set of bindings for individual <code>Processor</code>s.
-	 * 
-	 * @return the set of bindings for individual <code>Processor</code>s
-	 */
-	public NamedSet<ProcessorBinding> getProcessorBindings() {
-		return processorBindings;
-	}
-
-	/**
-	 * Return the suggested position of this profile within the
-	 * {@link WorkflowBundle}.
-	 * <p>
-	 * If ordering profiles (for instance for displaying them to the user), they
-	 * might be sorted by increasing profilePosition. If two profiles have the
-	 * same position, their internal order is undetermined. Profiles with
-	 * profile position <code>null</code> should be sorted last in such a list.
-	 * 
-	 * @return the position of this profile within the
-	 *         <code>WorkflowBundle</code>
-	 */
-	public final Integer getProfilePosition() {
-		return profilePosition;
-	}
-
-	/**
-	 * Sets the <code>Activity</code>s that this <code>Profile</code> contains.
-	 * 
-	 * @param activities
-	 *            the <code>Activity</code>s that this <code>Profile</code>
-	 *            contains
-	 */
-	public void setActivities(Set<Activity> activities) {
-		this.activities.clear();
-		this.activities.addAll(activities);
-	}
-
-	/**
-	 * Sets the <code>Configuration</code>s that this <code>Profile</code>
-	 * contains.
-	 * 
-	 * @param configurations
-	 *            the <code>Configuration</code>s that this <code>Profile</code>
-	 *            contains
-	 */
-	public void setConfigurations(Set<Configuration> configurations) {
-		this.configurations.clear();
-		this.configurations.addAll(configurations);
-	}
-
-	@Override
-	public void setParent(WorkflowBundle parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getProfiles().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getProfiles().add(this);
-	}
-
-	/**
-	 * Sets the bindings for individual <code>Processor</code>s.
-	 * 
-	 * @param processorBindings
-	 *            the bindings for individual <code>Processor</code>s
-	 */
-	public void setProcessorBindings(Set<ProcessorBinding> processorBindings) {
-		this.processorBindings.clear();
-		this.processorBindings.addAll(processorBindings);
-	}
-
-	/**
-	 * Sets the position of this profile within the {@link WorkflowBundle}.
-	 * <p>
-	 * When ordering profiles, they can be sorted by decreasing profilePosition.
-	 * If two profiles have the same position, their internal order is
-	 * undetermined.
-	 * 
-	 * 
-	 * @param profilePosition
-	 *            the position of this profile within the
-	 *            <code>WorkflowBundle</code>
-	 */
-	public final void setProfilePosition(Integer profilePosition) {
-		this.profilePosition = profilePosition;
-	}
-
-	public static final URI PROFILE_ROOT = URI
-			.create("http://ns.taverna.org.uk/2012/scufl2-profile/");
-
-	@Override
-	protected URI getIdentifierRoot() {
-		return PROFILE_ROOT;
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		Profile cloneProfile = (Profile) clone;
-		cloneProfile.setProfilePosition(getProfilePosition());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/package-info.java
deleted file mode 100644
index 7b49066..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.taverna.scufl2.api.profiles;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/reference/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/reference/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/reference/package-info.java
deleted file mode 100644
index 7981ecd..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/reference/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.apache.taverna.scufl2.api.reference;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader b/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
deleted file mode 100644
index f26e617..0000000
--- a/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
+++ /dev/null
@@ -1 +0,0 @@
-#   Licensed to the Apache Software Foundation (ASF) under one or more
#   contributor license agreements.  See the NOTICE file distributed with
#   this work for additional information regarding copyright ownership.
#   The ASF licenses this file to You under the Apache License, Version 2.0
#   (the "License"); you may not use this file except in compliance with
#   the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
org.apache.taverna.scufl2.api.io.structure.StructureReader
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter b/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
deleted file mode 100644
index 7f5d611..0000000
--- a/taverna-scufl2-api/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
+++ /dev/null
@@ -1 +0,0 @@
-#   Licensed to the Apache Software Foundation (ASF) under one or more
#   contributor license agreements.  See the NOTICE file distributed with
#   this work for additional information regarding copyright ownership.
#   The ASF licenses this file to You under the Apache License, Version 2.0
#   (the "License"); you may not use this file except in compliance with
#   the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
org.apache.taverna.scufl2.api.io.structure.StructureWriter
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context-osgi.xml b/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context-osgi.xml
deleted file mode 100644
index c5845d4..0000000
--- a/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context-osgi.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<beans:beans xmlns="http://www.springframework.org/schema/osgi"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:beans="http://www.springframework.org/schema/beans"
-	xsi:schemaLocation="http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
-		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<list id="readers" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleReader" cardinality="0..N" />
-	<list id="writers" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleWriter" cardinality="0..N" />
-
-	<reference id="transformerFactory" interface="javax.xml.transform.TransformerFactory" cardinality="0..1"/>
-
-	<reference id="documentBuilderFactory" interface="javax.xml.parsers.DocumentBuilderFactory"  cardinality="0..1" filter="(parser.namespaceAware=true)"/>
-
-	<service ref="workflowBundleIO" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleIO" />
-
-	<service ref="structureReader" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleReader" />
-
-	<service ref="structureWriter" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleWriter" />
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context.xml b/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context.xml
deleted file mode 100644
index 7ef270b..0000000
--- a/taverna-scufl2-api/src/main/resources/META-INF/spring/scufl2-api-context.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<bean id="structureReader" class="org.apache.taverna.scufl2.api.io.structure.StructureReader" />
-
-	<bean id="structureWriter" class="org.apache.taverna.scufl2.api.io.structure.StructureWriter" />
-
-	<bean id="workflowBundleIO" class="org.apache.taverna.scufl2.api.io.WorkflowBundleIO">
-		<property name="readers" ref="readers" />
-		<property name="writers" ref="writers" />
-	</bean>
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/EqualsOnArrayListsTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/EqualsOnArrayListsTest.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/EqualsOnArrayListsTest.java
deleted file mode 100644
index 2aec94b..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/EqualsOnArrayListsTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.DotProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.junit.Test;
-
-
-public class EqualsOnArrayListsTest {
-    
-    @Test
-    public void crossProductEqualIfEmpty() throws Exception {
-        CrossProduct crossProd1 = new CrossProduct();
-        CrossProduct crossProd2 = new CrossProduct();
-        assertEquals(crossProd1, crossProd2);                
-    }
-        
-    @Test
-    public void crossProductNotEqual() throws Exception {
-        CrossProduct crossProd1 = new CrossProduct();
-        CrossProduct crossProd2 = new CrossProduct();
-        crossProd2.add(new PortNode());
-        assertNotEquals(crossProd1, crossProd2);                
-    }
-    
-    
-    @Test
-    public void crossProductNotEqualToDotProduct() throws Exception {
-        DotProduct dotProd = new DotProduct();
-        CrossProduct crossProd = new CrossProduct();
-        assertNotEquals(crossProd, dotProd);
-        assertNotEquals(dotProd, crossProd);
-    }
-
-    @Test
-    public void dotProductEqualIfEmpty() throws Exception {
-        DotProduct dotProd1 = new DotProduct();
-        DotProduct dotProd2 = new DotProduct();
-        assertEquals(dotProd1, dotProd2);                
-    }
-
-    @Test
-    public void dotProductNotEqual() throws Exception {
-        DotProduct dotProd1 = new DotProduct();
-        DotProduct dotProd2 = new DotProduct();
-        dotProd2.add(new PortNode());
-        assertNotEquals(dotProd1, dotProd2);                
-    }
-    
-    @Test
-    public void iterationStackEqualIfEmpty() throws Exception {
-        IterationStrategyStack itStack1 = new IterationStrategyStack();
-        IterationStrategyStack itStack2 = new IterationStrategyStack();        
-        assertEquals(itStack1, itStack2);                
-    }
-
-    @Test
-    public void iterationStackNotEqualToCrossProduct() throws Exception {
-        IterationStrategyStack itStack = new IterationStrategyStack();
-        CrossProduct crossProd = new CrossProduct();
-        assertNotEquals(itStack, crossProd);                
-    }    
-
-    @Test
-    public void iterationStackNotEqualToDotProduct() throws Exception {
-        IterationStrategyStack itStack = new IterationStrategyStack();
-        DotProduct dotProd = new DotProduct();
-        assertNotEquals(itStack, dotProd);                
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/ExampleWorkflow.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/ExampleWorkflow.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/ExampleWorkflow.java
deleted file mode 100644
index c8a047a..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/ExampleWorkflow.java
+++ /dev/null
@@ -1,238 +0,0 @@
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ExampleWorkflow {
-
-	protected Workflow workflow;
-	protected Processor processor;
-	protected WorkflowBundle workflowBundle;
-	protected InputProcessorPort processorName;
-	protected OutputProcessorPort processorGreeting;
-	protected InputActivityPort personName;
-	protected OutputActivityPort hello;
-	protected Activity activity;
-	protected BlockingControlLink condition;
-	protected Processor wait4me;
-    @SuppressWarnings("unused")
-    private DataLink nameLink;
-
-	protected static URI TAVERNA_2_2 = URI.create("http://ns.taverna.org.uk/2010/taverna/2.2/");
-
-	public Activity makeActivity() {
-		activity = new Activity();
-		activity.setName("HelloScript");
-		activity.setType(URI
-				.create("http://ns.taverna.org.uk/2010/activity/beanshell"));
-
-		personName = new InputActivityPort(activity, "personName");
-		personName.setDepth(0);
-		hello = new OutputActivityPort(activity, "hello");
-		hello.setDepth(0);
-		hello.setGranularDepth(0);
-		return activity;
-
-	}
-
-	public Configuration makeConfiguration() {
-		Configuration configuration = new Configuration("Hello");
-		configuration.setConfigures(activity);
-
-		configuration
-				.setType(
-						URI.create("http://ns.taverna.org.uk/2010/activity/beanshell#Config"));
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		json.put("script",
-				"hello = \"Hello, \" + personName;\n"
-								+ "JOptionPane.showMessageDialog(null, hello);");
-		return configuration;
-	}
-
-	public IterationStrategyStack makeIterationStrategyStack(
-			InputProcessorPort... inputs) {
-		IterationStrategyStack stack = new IterationStrategyStack();
-		CrossProduct crossProduct = new CrossProduct();
-		crossProduct.setParent(stack);
-		for (InputProcessorPort inp : inputs) {
-			PortNode n = new PortNode(crossProduct, inp);
-			n.setDesiredDepth(0);
-		}
-		return stack;
-	}
-
-	public Profile makeMainProfile() {
-		Profile profile = new Profile();
-		profile.setName("tavernaWorkbench");
-
-		// FIXME: Can't set dc:creator/date/description
-
-		// FIXME: Can't create recommendsEnvironment/requiresEnvironment
-
-		makeActivity().setParent(profile);
-
-		makeConfiguration().setParent(profile);
-		makeProcessorBinding().setParent(profile);
-
-		// profile.setProfilePosition(0);
-
-		return profile;
-	}
-
-	public Workflow makeMainWorkflow() {
-		workflow = new Workflow();
-		workflow.setName("HelloWorld");
-
-		// NOTE: setWorkflowIdentifier should only be called when loading a
-		// workflow
-		// which already has an ID
-		workflow.setIdentifier(URI
-				.create("http://ns.taverna.org.uk/2010/workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/"));
-
-		InputWorkflowPort yourName = new InputWorkflowPort(workflow, "yourName");
-		yourName.setDepth(0);
-		OutputWorkflowPort results = new OutputWorkflowPort(workflow, "results");
-		// Not needed:
-		// workflow.getInputPorts().add(yourName);
-		// workflow.getOutputPorts().add(results);
-
-		workflow.getProcessors().add(makeProcessor());
-		workflow.getProcessors().add(makeProcessor2());
-
-		// Make links
-		DataLink directLink = new DataLink(workflow, yourName, results);
-		directLink.setMergePosition(1);
-
-		DataLink greetingLink = new DataLink(workflow, processorGreeting,
-				results);
-		greetingLink.setMergePosition(0);
-
-		nameLink = new DataLink(workflow, yourName, processorName);
-
-		condition = new BlockingControlLink(processor, wait4me);
-
-		return workflow;
-	}
-
-	public Processor makeProcessor() {
-		processor = new Processor(workflow, "Hello");
-		processorName = new InputProcessorPort(processor, "name");
-		processorName.setDepth(0);
-		processorGreeting = new OutputProcessorPort(processor, "greeting");
-		processorGreeting.setDepth(0);
-		processorGreeting.setGranularDepth(0);
-
-		// FIXME: Should not need to make default iteration stack
-		makeIterationStrategyStack(processorName).setParent(processor);
-
-		return processor;
-	}
-
-	public Processor makeProcessor2() {
-		wait4me = new Processor(workflow, "wait4me");
-
-		// FIXME: Should not need to make default iteration stack
-		makeIterationStrategyStack().setParent(wait4me);
-
-		return processor;
-	}
-
-	public ProcessorBinding makeProcessorBinding() {
-		ProcessorBinding processorBinding = new ProcessorBinding();
-		processorBinding.setName("Hello");
-		processorBinding.setBoundProcessor(processor);
-		processorBinding.setBoundActivity(activity);
-
-		new ProcessorInputPortBinding(processorBinding, processorName,
-				personName);
-		new ProcessorOutputPortBinding(processorBinding, hello,
-				processorGreeting);
-
-		return processorBinding;
-	}
-
-	public Profile makeSecondaryProfile() {
-		Profile profile = makeMainProfile();
-		profile.setName("tavernaServer");
-		Configuration config = profile.getConfigurations().getByName("Hello");
-		ObjectNode json = JsonNodeFactory.instance.objectNode();
-	    json.put("script",
-						"hello = \"Hello, \" + personName;\n"
-								+ "System.out.println(\"Server says: \" + hello);");
-	    config.setJson(json);
-		return profile;
-	}
-
-	public WorkflowBundle makeWorkflowBundle() {
-		// Based on
-		// uk.org.taverna.scufl2.scufl2-usecases/src/main/resources/workflows/example/workflowBundle.rdf
-
-		workflowBundle = new WorkflowBundle();
-		workflowBundle.setName("HelloWorld");
-		// NOTE: setSameBaseAs should only be called when loading a workflow
-		// bundle
-		// which already has an ID
-		workflowBundle
-				.setGlobalBaseURI(URI
-						.create("http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/"));
-		Workflow workflow = makeMainWorkflow();
-		workflow.setParent(workflowBundle);
-		workflowBundle.setMainWorkflow(workflow);
-		Profile profile = makeMainProfile();
-		profile.setParent(workflowBundle);
-		workflowBundle.setMainProfile(profile);
-		Profile secondaryProfile = makeSecondaryProfile();
-		secondaryProfile.setParent(workflowBundle);
-		
-		Scufl2Tools scufl2Tools = new Scufl2Tools();
-		scufl2Tools.setParents(workflowBundle);
-		
-		return workflowBundle;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAPICreation.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAPICreation.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAPICreation.java
deleted file mode 100644
index 6f1f7be..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAPICreation.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.FileOutputStream;
-import java.net.URI;
-import java.util.Collections;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestAPICreation {
-
-	private WorkflowBundle ro;
-
-	@Test
-	public void makeExampleWorkflow() throws Exception {
-
-		ro = new WorkflowBundle();
-		Workflow wf1 = new Workflow();
-		ro.setWorkflows(Collections.singleton(wf1));
-		ro.setMainWorkflow(wf1);
-
-		assertEquals("Non-empty input ports", Collections.EMPTY_SET, wf1.getInputPorts());
-
-		InputWorkflowPort i = new InputWorkflowPort(wf1, "I");
-		assertEquals("Did not add input port 'I'", Collections.singleton(i), wf1
-				.getInputPorts());
-
-		OutputWorkflowPort wf1_out1 = new OutputWorkflowPort(wf1, "out1");
-		assertTrue("Did not add 'out1' to list of output ports", wf1
-				.getOutputPorts().contains(wf1_out1));
-
-		new OutputWorkflowPort(wf1, "out1");
-
-		assertTrue("Unexpected processors", wf1.getProcessors().isEmpty());
-		Processor p1 = new Processor(wf1, "p1");
-		assertTrue("Did not add processor", wf1.getProcessors().contains(p1));
-
-		InputProcessorPort p1_y1 = new InputProcessorPort(p1, "Y1");
-		OutputProcessorPort p1_y2 = new OutputProcessorPort(p1, "Y2");
-		p1.getOutputPorts().add(p1_y2);
-
-		Processor p4 = new Processor(wf1, "p4");
-		wf1.getProcessors().add(p4);
-		InputProcessorPort p4_x2 = new InputProcessorPort(p4, "X2");
-		p4.getInputPorts().add(p4_x2);
-		p4.getInputPorts().add(new InputProcessorPort(p4, "Y1"));
-		OutputProcessorPort p4_y = new OutputProcessorPort(p4, "Y");
-		p4.getOutputPorts().add(p4_y);
-
-		Processor pNested = new Processor(wf1, "PNested");
-		wf1.getProcessors().add(pNested);
-
-		InputProcessorPort pNested_i = new InputProcessorPort(pNested, "I");
-		pNested.getInputPorts().add(pNested_i);
-		OutputProcessorPort pNested_o = new OutputProcessorPort(pNested, "O");
-		pNested.getOutputPorts().add(pNested_o);
-
-		wf1.getDataLinks().add(new DataLink(wf1, p1_y2, pNested_i));
-
-		wf1.getDataLinks().add(new DataLink(wf1, p1_y2, p4_x2));
-
-		wf1.getDataLinks().add(new DataLink(wf1, pNested_o, p1_y1));
-
-		wf1.getDataLinks().add(new DataLink(wf1, p4_y, wf1_out1));
-
-		Activity activity = new Activity("act0");
-		Profile p = new Profile();
-		ro.getProfiles().add(p);
-		p.getActivities().add(activity);
-
-		activity.setType(URI
-				.create("http://taverna.sf.net/2009/2.1/activity/beanshell#wrongURI"));
-	}
-
-	@Ignore("Not doing XML here anymore")
-	@Test
-	public void marshal() throws Exception {
-		makeExampleWorkflow();
-		JAXBContext jc = JAXBContext.newInstance(WorkflowBundle.class );
-		Marshaller marshaller = jc.createMarshaller();
-		marshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT,
-				Boolean.TRUE );
-		marshaller.marshal( ro, new FileOutputStream("target/foo.xml") );
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAbstractRevisioned.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAbstractRevisioned.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAbstractRevisioned.java
deleted file mode 100644
index 2dd8adf..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestAbstractRevisioned.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import java.util.UUID;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.junit.Test;
-
-
-public class TestAbstractRevisioned {
-    @Test
-    public void profileName() throws Exception {
-        Profile p = new Profile();
-        UUID uuid = UUID.fromString(p.getName());
-        assertEquals(4, uuid.version());
-        
-    }
-    
-    @Test
-    public void workflow() throws Exception {
-        Workflow wf = new Workflow();
-        UUID uuid = UUID.fromString(wf.getName());
-        assertEquals(4, uuid.version());
-    }
-    
-    @Test
-    public void workflowBundle() throws Exception {
-        WorkflowBundle wfBundle = new WorkflowBundle();
-        UUID uuid = UUID.fromString(wfBundle.getName());
-        assertEquals(4, uuid.version());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestExampleWorkflow.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestExampleWorkflow.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestExampleWorkflow.java
deleted file mode 100644
index 9744a32..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/TestExampleWorkflow.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.junit.Test;
-
-public class TestExampleWorkflow extends ExampleWorkflow {
-
-	@Test
-	public void makeflowBundle() throws Exception {
-		makeWorkflowBundle();
-		// TODO: Check fields
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/VisitorTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/VisitorTest.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/VisitorTest.java
deleted file mode 100644
index c6b877b..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/VisitorTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Stack;
-
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.junit.Test;
-
-
-public class VisitorTest {
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	@Test
-	public void visitAll() throws Exception {
-
-		final List<WorkflowBean> enters = new ArrayList<WorkflowBean>();
-		final List<WorkflowBean> leaves = new ArrayList<WorkflowBean>();
-		final List<WorkflowBean> visits = new ArrayList<WorkflowBean>();
-		final Stack<WorkflowBean> stack = new Stack<WorkflowBean>();
-
-		WorkflowBundle example = new ExampleWorkflow().makeWorkflowBundle();
-
-		example.accept(new Visitor() {
-
-			@Override
-			public boolean visit(WorkflowBean node) {
-				visits.add(node);
-				return true;
-			}
-
-			@Override
-			public boolean visitEnter(WorkflowBean node) {
-				if (enters.contains(node)) {
-					fail("Duplicate enter on " + node);
-				}
-				if (leaves.contains(node)) {
-					fail("Leave before enter on " + node);
-				}
-				stack.add(node);
-
-				enters.add(node);
-				return true;
-			}
-
-			@Override
-			public boolean visitLeave(WorkflowBean node) {
-				leaves.add(node);
-				assertEquals(stack.pop(), node);
-				assertTrue(enters.contains(node));
-				return true;
-			}
-		});
-		assertTrue(stack.isEmpty());
-		assertEquals(enters.size(), leaves.size());
-
-		HashSet entersSet = new HashSet(enters);
-		HashSet leavesSet = new HashSet(leaves);
-		assertEquals(entersSet, leavesSet);
-		assertEquals(enters.size(), entersSet.size());
-
-		for (WorkflowBean b : visits) {
-			if (b instanceof Child) {
-				Child child = (Child) b;
-				WorkflowBean parent = child.getParent();
-				assertTrue(enters.contains(parent));
-			} else {
-				fail("Bean is not a Child");
-			}
-		}
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/annotation/TestAnnotations.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/annotation/TestAnnotations.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/annotation/TestAnnotations.java
deleted file mode 100644
index 1f8468b..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/annotation/TestAnnotations.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.taverna.scufl2.api.annotation;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-public class TestAnnotations {
-	
-	
-	public void addAnnotation() {
-		WorkflowBundle wfBundle = new WorkflowBundle();
-		Annotation ann = new Annotation();
-		wfBundle.getAnnotations().add(ann);
-		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/AllBeansVisitor.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/AllBeansVisitor.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/AllBeansVisitor.java
deleted file mode 100644
index f148f83..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/AllBeansVisitor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
-
-
-public class AllBeansVisitor extends VisitorWithPath implements Visitor {
-
-	private final List<WorkflowBean> allBeans = new ArrayList<WorkflowBean>();
-	
-	@Override
-	public boolean visit() {
-		getAllBeans().add(getCurrentNode());
-		return true;
-	}
-
-	public List<WorkflowBean> getAllBeans() {
-		return allBeans;
-	}
-	
-	public static List<WorkflowBean> allBeansFrom(WorkflowBean bean) {
-		AllBeansVisitor visitor = new AllBeansVisitor();
-		bean.accept(visitor);
-		return visitor.getAllBeans();
-	}
-
-	
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractCloneable.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractCloneable.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractCloneable.java
deleted file mode 100644
index 7acea9d..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractCloneable.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestAbstractCloneable {
-	private WorkflowBundle originalWfBundle;
-	private List<WorkflowBean> originalBeans;
-
-	@Before
-	public void makeExampleWorkflow() {
-		originalWfBundle = new TestWorkflowBundleIO().makeWorkflowBundle();
-		originalBeans = AllBeansVisitor.allBeansFrom(originalWfBundle);
-	}
-
-	@Test
-	public void cloneBundle() throws Exception {
-		AbstractCloneable clone = originalWfBundle.clone();
-		// AbstractCloneable clone = originalWfBundle;
-
-		List<WorkflowBean> stillOriginalBeans = AllBeansVisitor
-				.allBeansFrom(originalWfBundle);
-		System.out.println(stillOriginalBeans);
-		assertEquals(originalBeans.size(), stillOriginalBeans.size());
-		// All original beans should be identical
-		assertEquals(originalBeans.size(),
-				findCommonById(originalBeans, stillOriginalBeans).size());
-
-		List<WorkflowBean> clonedBeans = AllBeansVisitor.allBeansFrom(clone);
-		List<WorkflowBean> common = findCommonById(originalBeans, clonedBeans);
-		assertTrue("Found some common beans: " + common, common.isEmpty());
-		//
-		// Check parents are present
-		checkParents(originalBeans);
-		checkParents(stillOriginalBeans);
-		checkParents(clonedBeans);
-	}
-
-	@Test
-	public void cloneWorkflow() throws Exception {
-		Workflow original = originalWfBundle.getMainWorkflow();
-		assertEquals(originalWfBundle, original.getParent());
-		Workflow clone = (Workflow) original.clone();
-		assertNull(clone.getParent());
-		assertEquals(original.getName(), clone.getName());
-		assertNotSame(original.getProcessors().getByName("Hello"), clone
-				.getProcessors().getByName("Hello"));
-		assertNotSame(original.getCurrentRevision(), clone.getCurrentRevision());
-		assertEquals(original.getCurrentRevision(), clone.getCurrentRevision());
-
-	}
-
-	@Test
-	public void cloneProfile() throws Exception {
-		Profile original = originalWfBundle.getMainProfile();
-		assertEquals(originalWfBundle, original.getParent());
-		Profile clone = (Profile) original.clone();
-		assertNull(clone.getParent());
-		assertEquals(original.getName(), clone.getName());
-
-		ProcessorBinding originalBinding = original.getProcessorBindings()
-				.getByName("Hello");
-		ProcessorBinding cloneBinding = clone.getProcessorBindings().getByName(
-				"Hello");
-		assertNotSame(originalBinding, cloneBinding);
-		assertNotSame(originalBinding.getBoundActivity(),
-				cloneBinding.getBoundActivity());
-		// but processor is the same, as we did not clone the workflow
-		assertSame(originalBinding.getBoundProcessor(),
-				cloneBinding.getBoundProcessor());
-	}
-
-	@Test
-	public void cloneProcessor() throws Exception {
-		Workflow wf = originalWfBundle.getMainWorkflow();
-		Processor original = wf.getProcessors().getByName("Hello");
-		Processor clone = (Processor) original.clone();
-		assertEquals(clone.getName(), original.getName());
-		assertNotNull(original.getParent());
-		assertNull(clone.getParent());
-		
-		wf.getProcessors().addWithUniqueName(clone);
-		assertTrue(!clone.getName().equals(original.getName()));
-		// Now it is safe to set the parent without loosing original
-		clone.setParent(wf);
-		
-		assertSame(original, wf.getProcessors().getByName("Hello"));
-		assertSame(clone, wf.getProcessors().getByName(clone.getName()));
-	}
-
-	@Test
-	public void nullParentNotCopied() throws Exception {
-		Workflow wf = new Workflow();
-		Processor orphan = new Processor();
-		orphan.setName("orphan");
-		// NOTE: NOT calling
-		// orphan.setParent(wf)
-		wf.getProcessors().add(orphan);
-
-		assertNull(orphan.getParent());
-
-		Workflow clone = (Workflow) wf.clone();
-		assertTrue(clone.getProcessors().isEmpty());
-
-		orphan.setParent(wf);
-
-		Workflow clone2 = (Workflow) wf.clone();
-		assertEquals(Collections.singleton("orphan"), clone2.getProcessors()
-				.getNames());
-
-	}
-
-	public static void checkParents(List<WorkflowBean> beans) {
-		for (WorkflowBean b : beans) {
-			if (b instanceof Child) {
-				@SuppressWarnings("rawtypes")
-				Child child = (Child) b;
-				if (child.getParent() == null) {
-					System.err.println("No parent? " + child);
-					continue;
-				}
-				if (!beans.contains(child.getParent())) {
-					fail("Unknown parent for " + child + " "
-							+ child.getParent());
-				}
-			}
-		}
-	}
-
-	public static <T> List<T> findCommonById(List<T> listA, List<T> listB) {
-		List<T> common = new ArrayList<T>();
-		for (T a : listA) {
-			int bIndex = listB.indexOf(a);
-			if (bIndex < 0) {
-				// System.err.println("Missing " + a);
-				continue;
-			}
-			T b = listB.get(bIndex);
-			if (a == b) {
-				common.add(a);
-			} else {
-				// System.err.println("Non-identical equals " + a + " " + b);
-			}
-		}
-		return common;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractNamed.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractNamed.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractNamed.java
deleted file mode 100644
index 58b338e..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestAbstractNamed.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.HashSet;
-
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.junit.Test;
-
-
-@SuppressWarnings({ "rawtypes", "unchecked" })
-public class TestAbstractNamed {
-
-	@Test
-	public void replaceOnRename() throws Exception {
-		Workflow wf = new Workflow();
-		Processor fish = new Processor(wf, "fish");
-		@SuppressWarnings("unused")
-		Processor soup = new Processor(wf, "soup");
-		assertEquals(2, wf.getProcessors().size());
-
-		assertEquals(new HashSet(Arrays.asList("fish", "soup")), wf
-				.getProcessors().getNames());
-		fish.setName("soup");
-		assertEquals(new HashSet(Arrays.asList("soup")), wf
-				.getProcessors().getNames());
-		assertEquals(1, wf.getProcessors().size());
-
-		assertEquals(fish, wf.getProcessors().iterator().next());
-		assertEquals(fish, wf.getProcessors().getByName("soup"));
-		assertNull(wf.getProcessors().getByName("fish"));
-	}
-	
-	
-	@Test(expected=NullPointerException.class)
-    public void nameNull() throws Exception {
-        Processor p = new Processor();
-        p.setName(null);
-    }
-	
-    @Test(expected=IllegalArgumentException.class)
-    public void nameEmpty() throws Exception {
-        Processor p = new Processor();
-        p.setName("");
-    }
-	
-    @Test(expected=IllegalArgumentException.class)
-    public void nameWithNewline() throws Exception {
-        Processor p = new Processor();
-        p.setName("new\nline");
-    }
-    
-
-    @Test(expected=IllegalArgumentException.class)
-    public void nameWithControlChar() throws Exception {
-        Processor p = new Processor();
-        p.setName("no\bell");
-    }
-
-    @Test(expected=IllegalArgumentException.class)
-    public void nameWithColon() throws Exception {
-        Processor p = new Processor();
-        p.setName("not:url");
-    }
-    
-    @Test(expected=IllegalArgumentException.class)
-    public void nameWithSlash() throws Exception {
-        Processor p = new Processor();
-        p.setName("no/slash");
-    }
-    
-    @Test
-    public void nameWithSpace() throws Exception {
-        Processor p = new Processor();
-        p.setName("space allowed");
-    }
-
-    
-	@Test
-	public void setName() throws Exception {
-		Workflow wf = new Workflow();
-		Processor p = new Processor();
-		p.setName("fish");
-		p.setName("soup");
-		p.setParent(wf);
-	}
-
-	@Test
-	public void setNameWithParent() throws Exception {
-		Workflow wf = new Workflow();
-		Processor p = new Processor();
-		p.setName("fish");
-		p.setParent(wf);
-		assertTrue(wf.getProcessors().contains(p));
-		assertTrue(wf.getProcessors().containsName("fish"));
-		assertFalse(wf.getProcessors().containsName("soup"));
-		p.setName("soup");
-		assertFalse(wf.getProcessors().containsName("fish"));
-		assertTrue(wf.getProcessors().containsName("soup"));
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
deleted file mode 100644
index 5880253..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
+++ /dev/null
@@ -1,481 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestScufl2Tools extends ExampleWorkflow {
-
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	@Before
-	public void makeBundle() {
-		makeWorkflowBundle();
-		assertNotNull(workflowBundle);
-	}
-	
-	@Test
-	public void controlLinksBlocking() {
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		Processor wait4me = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("wait4me");
-		ControlLink controlLink = workflowBundle.getMainWorkflow().getControlLinks()
-				.iterator().next();
-
-		assertEquals(Collections.singletonList(controlLink),
-				scufl2Tools.controlLinksBlocking(hello));
-		assertTrue(scufl2Tools.controlLinksBlocking(wait4me).isEmpty());
-	}
-
-	@Test
-	public void controlLinksWaitingFor() {
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		Processor wait4me = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("wait4me");
-		ControlLink controlLink = workflowBundle.getMainWorkflow().getControlLinks()
-				.iterator().next();
-
-		assertEquals(Collections.singletonList(controlLink),
-				scufl2Tools.controlLinksWaitingFor(wait4me));
-		assertTrue(scufl2Tools.controlLinksWaitingFor(hello).isEmpty());
-	}
-
-	@Test
-	public void processorPortBindingForInputActivityPort() throws Exception {
-		Profile profile = workflowBundle.getMainProfile();
-		Activity helloScript = profile.getActivities().getByName("HelloScript");
-		InputActivityPort port = helloScript.getInputPorts().getByName(
-				"personName");
-		ProcessorBinding processorBinding = profile.getProcessorBindings()
-				.getByName("Hello");
-		ProcessorInputPortBinding inputPortBinding = processorBinding
-				.getInputPortBindings().iterator().next();
-		assertSame(inputPortBinding,
-				scufl2Tools.processorPortBindingForPort(port, profile));
-	}
-
-	@Test
-	public void processorPortBindingForInputProcessorPort() throws Exception {
-		Profile profile = workflowBundle.getMainProfile();
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		InputProcessorPort port = hello.getInputPorts().getByName("name");
-		ProcessorBinding processorBinding = profile.getProcessorBindings()
-				.getByName("Hello");
-		ProcessorInputPortBinding inputPortBinding = processorBinding
-				.getInputPortBindings().iterator().next();
-		assertSame(inputPortBinding,
-				scufl2Tools.processorPortBindingForPort(port, profile));
-	}
-
-	@Test
-	public void processorPortBindingForOutputActivityPort() throws Exception {
-		Profile profile = workflowBundle.getMainProfile();
-		Activity helloScript = profile.getActivities().getByName("HelloScript");
-		OutputActivityPort port = helloScript.getOutputPorts().getByName(
-				"hello");
-		ProcessorBinding processorBinding = profile.getProcessorBindings()
-				.getByName("Hello");
-		ProcessorOutputPortBinding outputPortBinding = processorBinding
-				.getOutputPortBindings().iterator().next();
-		assertSame(outputPortBinding,
-				scufl2Tools.processorPortBindingForPort(port, profile));
-	}
-
-	@Test
-	public void processorPortBindingForOutputProcessorPort() throws Exception {
-		Profile profile = workflowBundle.getMainProfile();
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		OutputProcessorPort port = hello.getOutputPorts().getByName("greeting");
-		ProcessorBinding processorBinding = profile.getProcessorBindings()
-				.getByName("Hello");
-		ProcessorOutputPortBinding outputPortBinding = processorBinding
-				.getOutputPortBindings().iterator().next();
-		assertSame(outputPortBinding,
-				scufl2Tools.processorPortBindingForPort(port, profile));
-	}
-
-	@Test
-	public void createProcessorFromActivity() throws Exception {
-		Profile profile = new Profile();
-		Activity a = new Activity();
-		a.setParent(profile);
-		new InputActivityPort(a, "in1");
-		new InputActivityPort(a, "in2").setDepth(1);		
-		new OutputActivityPort(a, "out1");
-		new OutputActivityPort(a, "out2").setDepth(0);		
-		OutputActivityPort aOut3 = new OutputActivityPort(a, "out3");
-		aOut3.setDepth(2);
-		aOut3.setGranularDepth(1);
-		
-		ProcessorBinding binding = scufl2Tools.createProcessorAndBindingFromActivity(a);
-		Processor p = binding.getBoundProcessor();
-		assertEquals(profile, binding.getParent());
-		
-		assertEquals(2, p.getInputPorts().size());
-		assertEquals(3, p.getOutputPorts().size());
-		assertEquals(2, binding.getInputPortBindings().size());
-		assertEquals(3, binding.getOutputPortBindings().size());
-		assertEquals(a, binding.getBoundActivity());
-		assertEquals(p, binding.getBoundProcessor());
-
-	}
-	
-
-	@Test
-	public void createActivityFromProcessor() throws Exception {
-		Processor p = new Processor();
-		new InputProcessorPort(p, "in1");
-		new InputProcessorPort(p, "in2").setDepth(1);
-		
-		new OutputProcessorPort(p, "out1");
-		new OutputProcessorPort(p, "out2").setDepth(0);
-		
-		OutputProcessorPort pOut3 = new OutputProcessorPort(p, "out3");
-		pOut3.setDepth(2);
-		pOut3.setGranularDepth(1);	
-
-		Profile profile = new Profile();
-		Activity a = scufl2Tools.createActivityFromProcessor(p, profile);
-		
-		assertEquals(profile, a.getParent());
-		ProcessorBinding binding = scufl2Tools.processorBindingForProcessor(p, profile);
-		
-		assertEquals(2, a.getInputPorts().size());
-		assertEquals(3, a.getOutputPorts().size());
-		assertEquals(2, binding.getInputPortBindings().size());
-		assertEquals(3, binding.getOutputPortBindings().size());
-		assertEquals(a, binding.getBoundActivity());
-		assertEquals(p, binding.getBoundProcessor());	
-	}
-	
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	@Test
-	public void updatePortBindingByMatchingPorts() throws Exception {
-		Processor p = new Processor();
-		new InputProcessorPort(p, "in1");
-		new InputProcessorPort(p, "in2");
-		new OutputProcessorPort(p, "out1");		
-		new OutputProcessorPort(p, "out2");
-		Profile profile = new Profile();
-		Activity a = scufl2Tools.createActivityFromProcessor(p, profile);
-		ProcessorBinding binding = scufl2Tools.processorBindingsToActivity(a).get(0);
-		
-		// Add some
-		new InputProcessorPort(p, "new1");
-		new InputProcessorPort(p, "new2");
-		new InputActivityPort(a, "new1");
-		new InputActivityPort(a, "new2");
-		new OutputProcessorPort(p, "new3");
-		new OutputProcessorPort(p, "new4");
-		new OutputActivityPort(a, "new4");
-		new OutputActivityPort(a, "new5");
-		// And remove some
-		p.getInputPorts().removeByName("in2");
-		a.getOutputPorts().removeByName("out1");
-		
-		scufl2Tools.updateBindingByMatchingPorts(binding);
-		
-//		assertEquals(3, binding.getInputPortBindings().size());
-//		assertEquals(2, binding.getOutputPortBindings().size());
-
-		Set<String> namesIn = procPortNames(binding.getInputPortBindings());
-		Set<String> namesOut = procPortNames(binding.getOutputPortBindings());
-		assertEquals(new HashSet(Arrays.asList("in1", "new1", "new2")), namesIn);
-		assertEquals(new HashSet(Arrays.asList("out2", "new4")), namesOut);		
-	}
-	
-	
-	@SuppressWarnings("rawtypes")
-	private Set<String> procPortNames(
-			Set<? extends ProcessorPortBinding> portBindings) {
-		Set<String> names = new HashSet<String>();
-		for (ProcessorPortBinding portBinding : portBindings) {
-			names.add(portBinding.getBoundProcessorPort().getName());
-		}
-		return names;
-	}
-
-	@Test
-	public void setParents() throws Exception {
-		// Deliberately orphan a profile and a processor
-		Profile profile = workflowBundle.getProfiles().getByName("tavernaWorkbench");
-		profile.setParent(null);		
-		workflowBundle.getProfiles().add(profile);		
-		processor.setParent(null);
-		workflow.getProcessors().add(processor);
-		
-		assertNull(processor.getParent());
-		assertNull(profile.getParent());		
-		scufl2Tools.setParents(workflowBundle);
-		assertNotNull(processor.getParent());
-		assertNotNull(profile.getParent());				
-
-	}
-
-	@Test
-	public void setParentsAllBeans() throws Exception {
-		AllBeansVisitor visitBefore = new AllBeansVisitor();
-		workflowBundle.accept(visitBefore);
-		scufl2Tools.setParents(workflowBundle);		
-		AllBeansVisitor visitAfter = new AllBeansVisitor();
-		workflowBundle.accept(visitAfter);
-		// Ensure we did not loose or double-add anyone
-		assertEquals(visitBefore.getAllBeans(), visitAfter.getAllBeans());		
-	}
-		
-
-	@Test
-	public void setParentsAllBeansAgain() throws Exception {
-		AllBeansVisitor visitBefore = new AllBeansVisitor();
-		workflowBundle.accept(visitBefore);
-		setParentsAgain(workflowBundle);		
-		AllBeansVisitor visitAfter = new AllBeansVisitor();
-		workflowBundle.accept(visitAfter);
-		// Ensure we did not loose or double-add anyone
-		assertEquals(visitBefore.getAllBeans().toString(), visitAfter.getAllBeans().toString());	
-	}
-
-	/**
-	 * A slight variation of {@link Scufl2Tools#setParents(org.apache.taverna.scufl2.api.container.WorkflowBundle)}
-	 * that always set a new parent
-	 * @param wfBundle 
-	 * @throws Exception
-	 */
-	public void setParentsAgain(WorkflowBundle wfBundle) throws Exception {
-		wfBundle.accept(new VisitorWithPath() {			
-			@SuppressWarnings({ "unchecked", "rawtypes" })
-			@Override
-			public boolean visit() {
-				WorkflowBean node = getCurrentNode();
-				if (node instanceof Child) {
-					Child child = (Child) node;
-					WorkflowBean parent = getCurrentPath().peek();
-					child.setParent(parent);
-				}
-				return true;
-			}
-		});
-	}
-
-	@Test
-	public void createActivityPortsFromProcessor() throws Exception {
-		Processor p = new Processor();
-		new InputProcessorPort(p, "in1");
-		new InputProcessorPort(p, "in2").setDepth(1);
-		
-		new OutputProcessorPort(p, "out1");
-		new OutputProcessorPort(p, "out2").setDepth(0);
-		
-		OutputProcessorPort pOut3 = new OutputProcessorPort(p, "out3");
-		pOut3.setDepth(2);
-		pOut3.setGranularDepth(1);
-		
-		
-		Activity a = new Activity();
-		scufl2Tools.createActivityPortsFromProcessor(a, p);
-		
-		
-		assertEquals(2, a.getInputPorts().size());
-		InputActivityPort aIn1 = a.getInputPorts().getByName("in1");
-		assertNull(aIn1.getDepth());
-		InputActivityPort aIn2 = a.getInputPorts().getByName("in2");
-		assertEquals(1, aIn2.getDepth().intValue());
-		
-		assertEquals(3, a.getOutputPorts().size());
-		OutputActivityPort aOut1 = a.getOutputPorts().getByName("out1");
-		assertEquals(null, aOut1.getDepth());
-		assertEquals(null, aOut1.getGranularDepth());
-		
-		OutputActivityPort aOut2 = a.getOutputPorts().getByName("out2");
-		assertEquals(0, aOut2.getDepth().intValue());
-		assertEquals(null, aOut2.getGranularDepth());
-		
-		OutputActivityPort aOut3 = a.getOutputPorts().getByName("out3");
-		assertEquals(2, aOut3.getDepth().intValue());
-		assertEquals(1, aOut3.getGranularDepth().intValue());		
-	}
-
-	@Test
-	public void createActivityPortsFromProcessorWithOverwrite() throws Exception {
-		Processor p = new Processor();
-		new InputProcessorPort(p, "in1");
-		new OutputProcessorPort(p, "out1");
-		new OutputProcessorPort(p, "out2").setDepth(1);
-
-		
-		Activity a = new Activity();
-		new InputActivityPort(a, "other");
-		OutputActivityPort toBeOverWritten = new OutputActivityPort(a, "out1");
-		toBeOverWritten.setDepth(1);
-		assertEquals(a, toBeOverWritten.getParent());
-		
-		
-		scufl2Tools.createActivityPortsFromProcessor(a, p);
-		// Still there
-		assertNotNull(a.getInputPorts().getByName("other"));
-		
-		// but out1 has been overwritten
- 		OutputActivityPort aOut1 = a.getOutputPorts().getByName("out1");
-		assertNull(aOut1.getDepth());
-		assertNotSame(toBeOverWritten, aOut1);		
-	}
-
-	
-	
-	@Test
-	public void createProcessorPortsFromActivity() throws Exception {
-		Activity a = new Activity();
-		new InputActivityPort(a, "in1");
-		new InputActivityPort(a, "in2").setDepth(1);
-		
-		new OutputActivityPort(a, "out1");
-		new OutputActivityPort(a, "out2").setDepth(0);
-		
-		OutputActivityPort aOut3 = new OutputActivityPort(a, "out3");
-		aOut3.setDepth(2);
-		aOut3.setGranularDepth(1);
-		
-		
-		Processor p = new Processor();
-		scufl2Tools.createProcessorPortsFromActivity(p, a);
-		
-		
-		assertEquals(2, p.getInputPorts().size());
-		InputProcessorPort pIn1 = p.getInputPorts().getByName("in1");
-		assertNull(pIn1.getDepth());
-		InputProcessorPort pIn2 = p.getInputPorts().getByName("in2");
-		assertEquals(1, pIn2.getDepth().intValue());
-		
-		assertEquals(3, p.getOutputPorts().size());
-		OutputProcessorPort pOut1 = p.getOutputPorts().getByName("out1");
-		assertEquals(null, pOut1.getDepth());
-		assertEquals(null, pOut1.getGranularDepth());
-		
-		OutputProcessorPort pOut2 = p.getOutputPorts().getByName("out2");
-		assertEquals(0, pOut2.getDepth().intValue());
-		assertEquals(null, pOut2.getGranularDepth());
-		
-		OutputProcessorPort pOut3 = p.getOutputPorts().getByName("out3");
-		assertEquals(2, pOut3.getDepth().intValue());
-		assertEquals(1, pOut3.getGranularDepth().intValue());		
-	}
-
-	@Test
-	public void createProcessorPortsFromActivityWithOverwrite() throws Exception {
-		Activity a = new Activity();
-
-		new InputActivityPort(a, "in1");
-		
-		new OutputActivityPort(a, "out1");
-		new OutputActivityPort(a, "out2").setDepth(1);
-
-		Processor p = new Processor();
-		new InputProcessorPort(p, "other");
-		OutputProcessorPort toBeOverWritten = new OutputProcessorPort(p, "out1");
-		toBeOverWritten.setDepth(1);
-		assertEquals(p, toBeOverWritten.getParent());
-		
-		
-		scufl2Tools.createProcessorPortsFromActivity(p, a);
-		// Still there
-		assertNotNull(p.getInputPorts().getByName("other"));
-		
-		// but out1 has been overwritten
- 		OutputProcessorPort pOut1 = p.getOutputPorts().getByName("out1");
-		assertNull(pOut1.getDepth());
-		assertNotSame(toBeOverWritten, pOut1);
-	}
-	
-	
-	@Test
-	public void bindActivityToProcessorByMatchingPorts() throws Exception {
-		Processor p = new Processor();
-		new InputProcessorPort(p, "in1");
-		new InputProcessorPort(p, "in2");
-		new OutputProcessorPort(p, "out1");
-		new OutputProcessorPort(p, "out2");
-		new OutputProcessorPort(p, "out3");
-		
-		Activity a = new Activity();
-		new InputActivityPort(a, "in1");
-		// in2 missing
-		new InputActivityPort(a, "in3"); // additional in3
-		new OutputActivityPort(a, "out1");
-		// out2 missing
-		new OutputActivityPort(a, "out3");
-		new OutputActivityPort(a, "out4"); // additional out4
-
-		ProcessorBinding binding = scufl2Tools.bindActivityToProcessorByMatchingPorts(a, p);
-		assertEquals(a, binding.getBoundActivity());
-		assertEquals(p, binding.getBoundProcessor());
-		assertEquals(1, binding.getInputPortBindings().size());
-		ProcessorInputPortBinding inBinding = binding.getInputPortBindings().iterator().next();
-		assertEquals(p.getInputPorts().getByName("in1"), inBinding.getBoundProcessorPort());
-		assertEquals(a.getInputPorts().getByName("in1"), inBinding.getBoundActivityPort());
-		
-		assertEquals(2, binding.getOutputPortBindings().size());
-		// should be out1 and out3
-		for (ProcessorOutputPortBinding outBinding : binding.getOutputPortBindings()) {
-			assertEquals(outBinding.getBoundActivityPort().getName(),
-						outBinding.getBoundProcessorPort().getName());
-			assertEquals(a, outBinding.getBoundActivityPort().getParent());
-			assertEquals(p, outBinding.getBoundProcessorPort().getParent());
-		}
-		
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestSetParent.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestSetParent.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestSetParent.java
deleted file mode 100644
index e026614..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestSetParent.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.junit.Test;
-
-
-public class TestSetParent {
-	WorkflowBundle example = new ExampleWorkflow().makeWorkflowBundle();
-
-	Scufl2Tools tools = new Scufl2Tools();
-
-	@Test
-	public void checkParents() throws Exception {
-		example.accept(new VisitorWithPath() {
-			@SuppressWarnings("rawtypes")
-			@Override
-			public boolean visit() {
-				WorkflowBean node = getCurrentNode();
-				if (node instanceof Child) {
-					Child child = (Child) node;
-					WorkflowBean parent = child.getParent();
-					WorkflowBean expectedParent = getCurrentPath().peek();
-					if (!(parent == expectedParent)) {
-						throw new IllegalStateException("Wrong parent for "
-								+ node + ": " + parent + ", expected: "
-								+ expectedParent);
-					}
-				}
-				return true;
-			}
-
-		});
-	}
-
-}


[37/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/ro.owl
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/ro.owl b/taverna-robundle/src/main/resources/ontologies/ro.owl
deleted file mode 100644
index c64f5ae..0000000
--- a/taverna-robundle/src/main/resources/ontologies/ro.owl
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<!-- Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp -->
-<!--     using base file:///home/stain/stuff/src/wf4ever/ro/ro.owl-->
-
-
-<rdf:RDF xmlns="http://www.w3.org/2002/07/owl#"
-    xmlns:owl="http://www.w3.org/2002/07/owl#"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-
-    <Ontology rdf:about="http://purl.org/wf4ever/ro">
-        <rdfs:comment xml:lang="en">This ontology shows how AO and ORE ontologies can be used together to define a ResearchObject. This ontology is further customized by the wf4ever ontology.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.wf4ever-project.org/wiki/display/docs/Research+Object+Vocabulary+Specification"/>
-        <imports rdf:resource="http://purl.org/NET/dc_owl2dl/terms_od"/>
-        <imports rdf:resource="http://purl.org/ao/core/"/>
-        <imports rdf:resource="http://purl.org/wf4ever/ore-owl"/>
-        <imports rdf:resource="http://xmlns.com/foaf/0.1/"/>
-        <versionIRI rdf:resource="https://raw.github.com/wf4ever/ro/0.1/ro.owl"/>
-    </Ontology>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#AggregatedAnnotation">
-        <rdfs:comment xml:lang="en">An annotation aggregated within an ro:ResearchObject.  
-
-Instances of this class are used to annotated resources aggregated within the aggregating research object, proxies of these resources, or the research object itself. In other words, if :ro is the ro:ResearchObject this annotation has been ore:isAggregatedBy, then the annotation should have at least one ao:annotatesResource which is an ore:AggregatedResource which is ore:isAggregatedBy :ro, or the annotated resource is an ore:Proxy which ore:proxyIn :ro, or the annotated resource is :ro.
-
-It is possible for the annotation to also annotate non-aggregated resources, but as above, at least one of them needs to be part of the RO or the RO itself.
-
-As a subclass of ro:SemanticAnnotation the ao:body must point to an rdfg:Graph which contains the actual annotation. </rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://purl.org/wf4ever/ro#SemanticAnnotation"/>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/AggregatedResource"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/isAggregatedBy"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/ao/annotatesResource"/>
-            <someValuesFrom rdf:parseType="Resource">
-                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-                <unionOf rdf:parseType="Resource">
-                    <rdf:first rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-                    <rdf:rest rdf:parseType="Resource">
-                        <rdf:first rdf:resource="http://www.openarchives.org/ore/terms/AggregatedResource"/>
-                        <rdf:rest rdf:parseType="Resource">
-                            <rdf:first rdf:resource="http://www.openarchives.org/ore/terms/Proxy"/>
-                            <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
-                        </rdf:rest>
-                    </rdf:rest>
-                </unionOf>
-            </someValuesFrom>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/created"/>
-            <someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/creator"/>
-            <someValuesFrom rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-        </rdfs:subClassOf>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#Folder">
-        <rdfs:comment xml:lang="en">An ro:Folder is a special kind of ore:Aggregation where every ro:AggregatedResource must have a ro:FolderEntry proxy with a unique ro:entryName within that folder.
-
-Note that all resources which are aggregated within an (potentially nested) ro:Folder SHOULD also be aggregated by the same ro:ResearchObject this ro:Folder is aggregated within.
-
-Such folders can be nested and (optionally) used to organize the resources of the research object into a file-like structure. All such resources should also be aggregated by the ro:ResearchObject
-          </rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://purl.org/wf4ever/ro#Resource"/>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#FolderEntry">
-        <rdfs:comment xml:lang="en">An ro:FolderEntry is any ore:Proxy instance that associates a resources aggregated within an ro:Folder with a ro:entryName. This name is (case-sensitive) unique within a given folder.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/Proxy"/>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/wf4ever/ro#entryName"/>
-            <someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-        </equivalentClass>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/proxyIn"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#Folder"/>
-        </equivalentClass>
-        <hasKey rdf:parseType="Resource">
-            <rdf:first rdf:resource="http://www.openarchives.org/ore/terms/proxyIn"/>
-            <rdf:rest rdf:parseType="Resource">
-                <rdf:first rdf:resource="http://purl.org/wf4ever/ro#entryName"/>
-                <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
-            </rdf:rest>
-        </hasKey>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#Manifest">
-        <rdfs:comment xml:lang="en">The ro:Manifest is used to describe an ro:ResearchObject. This identifies the resource for the manifest which lists all the aggregations of the research object, typically called ".ro/manifest.rdf" relative to the research object this manifest ore:describes.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/ResourceMap"/>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/describes"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-        </equivalentClass>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#ResearchObject">
-        <rdfs:comment xml:lang="en">A research object aggregates a number of resources. A resource can be a workflow, web service, document, data item, data set, workflow run, software or a research object.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/created"/>
-            <someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://purl.org/dc/terms/creator"/>
-            <someValuesFrom rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-        </rdfs:subClassOf>
-        <equivalentClass rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/isDescribedBy"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#Manifest"/>
-        </equivalentClass>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#Resource">
-        <rdfs:comment xml:lang="en">An ro:Resource is an ore:AggregatedResource which ore:isAggregatedBy an ro:ResearchObject. 
-
-This specialisation requires that there exists an ore:Proxy which is ore:proxyFor this resource, and which is ore:proxyIn the same ro:ResearchObject the resource ore:isAggregatedBy. Any annotations on such a proxy will descrive the ro:Resource within that particular ro:ResearchObject, in particular dct:creator and dct:created on the proxy will specify who added the resource to the aggregation at what time.
-
-Note that annotations (ro:AggregatedAnnotation) can be added to both the ro:Resource and the ore:Proxy - depending on if the annotation is seen to be globally true (such as the provenance of how the resource was created) or locally true within the Research Object (such as the the resource playing the role of a wf4ever:Dataset).
-
-Not all resources aggregated by an ro:ResearchObject are ro:Resource instances, in particular ro:AggregatedAnnotations will also be aggregated, but will not be "true" RO resources (and thus don't need their own ore:Proxy).  
-
-Aggregated resources MAY also be organised in (potentially nested) ro:Folders to reflect a file-system like structure. Note that any such resources SHOULD also be aggregated in the "mother" ro:ResearchObject.
-</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://www.openarchives.org/ore/terms/AggregatedResource"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.openarchives.org/ore/terms/isAggregatedBy"/>
-            <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:parseType="Resource">
-                <inverseOf rdf:resource="http://www.openarchives.org/ore/terms/proxyFor"/>
-            </onProperty>
-            <someValuesFrom rdf:parseType="Resource">
-                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                <onProperty rdf:resource="http://www.openarchives.org/ore/terms/proxyIn"/>
-                <someValuesFrom rdf:resource="http://purl.org/wf4ever/ro#ResearchObject"/>
-            </someValuesFrom>
-        </rdfs:subClassOf>
-    </Class>
-
-    <Class rdf:about="http://purl.org/wf4ever/ro#SemanticAnnotation">
-        <rdfs:comment xml:lang="en">An ro:SemanticAnnotation is a specialisation of ao:Annotation which requires that ao:body points to an RDF Graph.
-
-This might be a Named Graph or a resource which can be resolved separately from the URI given by ao:body.
-
-This graph SHOULD mention the resources identified by ao:annotatesResource from this annotation, preferably by using their URIs as subject or object of statements.
-
-Note that this use of ao:body is distinct from ao:hasTopic, which also allows the association of a an RDF Graph with an ao:Annotation, but which also implies that this graph is the "topic" (subproperty of bookmark:hasTopic) of the annotated resource. This class does not require this interpretation, it is merely enough that the annotation body mentions the annotated resource, for instance to give it a dc:title or to relate two annotated resources.  Also note that the next version of the AO ontology (v2) might change this definition of ao:hasTopic, removing the need for this class.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://code.google.com/p/annotation-ontology/wiki/GraphsAnnotations"/>
-        <rdfs:seeAlso rdf:resource="http://purl.org/ao/body"/>
-        <rdfs:seeAlso rdf:resource="http://purl.org/ao/hasTopic"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/2001/Annotea/User/BookmarkSchema"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/2002/01/bookmark#hasTopic"/>
-        <rdfs:subClassOf rdf:resource="http://purl.org/ao/Annotation"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <allValuesFrom rdf:resource="http://www.w3.org/2004/03/trix/rdfg-1/Graph"/>
-            <onProperty rdf:resource="http://purl.org/ao/body"/>
-        </rdfs:subClassOf>
-    </Class>
-
-    <ObjectProperty rdf:about="http://purl.org/wf4ever/ro#annotatesAggregatedResource">
-        <rdfs:comment xml:lang="en">ro:annotatesAggregatedResource specifies that an ao:Annotation annotates an aggregated ro:Resource. 
-                               
-When used on an ro:AggregatedAnnotation, both the domain and range of this property must ore:isAggregatedBy the same ro:ResearchObject.  
-
-TODO: Should also ro:ResearchObject and ore:Proxy be in the range of this property, or is this subproperty even needed?
-</rdfs:comment>
-        <rdfs:domain rdf:resource="http://purl.org/ao/Annotation"/>
-        <rdfs:range rdf:resource="http://purl.org/wf4ever/ro#Resource"/>
-        <rdfs:subPropertyOf rdf:resource="http://purl.org/ao/annotatesResource"/>
-    </ObjectProperty>
-
-    <DatatypeProperty rdf:about="http://purl.org/wf4ever/ro#entryName">
-        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-        <rdfs:comment xml:lang="en">This functional property specifies the name of a ro:FolderEntry within an ro:Folder. 
-
-This name must be case-sensitively unique within the ro:Folder, similar to a filename in a directory.
-
-TODO: Need a functional property to specify the top level folder structure of an {{ro:ResearchObject}}?
-</rdfs:comment>
-        <rdfs:domain rdf:resource="http://purl.org/wf4ever/ro#FolderEntry"/>
-        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    </DatatypeProperty>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.rng
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.rng b/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.rng
deleted file mode 100644
index af13a26..0000000
--- a/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.rng
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-        Open Document Format for Office Applications (OpenDocument) Version 1.2
-        OASIS Standard, 29 September 2011
-	Manifest Relax-NG Schema
-        Source: http://docs.oasis-open.org/office/v1.2/os/
-        Copyright (c) OASIS Open 2002-2011. All Rights Reserved.
-
-	All capitalized terms in the following text have the meanings assigned to them
-   	in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
-	full Policy may be found at the OASIS website.
-
-	This document and translations of it may be copied and furnished to others, and
-	derivative works that comment on or otherwise explain it or assist in its
-	implementation may be prepared, copied, published, and distributed, in whole or
-	in part, without restriction of any kind, provided that the above copyright
-	notice and this section are included on all such copies and derivative works.
-	However, this document itself may not be modified in any way, including by
-	removing the copyright notice or references to OASIS, except as needed for the
-	purpose of developing any document or deliverable produced by an OASIS
-	Technical Committee (in which case the rules applicable to copyrights, as set
-	forth in the OASIS IPR Policy, must be followed) or as required to translate it
-	into languages other than English.
-
-	The limited permissions granted above are perpetual and will not be revoked by
-	OASIS or its successors or assigns.
-
-	This document and the information contained herein is provided on an "AS IS"
-	basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-	LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
-	INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
-	FITNESS FOR A PARTICULAR PURPOSE. 
--->
-<grammar 
-	xmlns="http://relaxng.org/ns/structure/1.0"
-
-	datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
-
-	xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
->
-<start>
-	<choice>
-		<ref name="manifest"/>
-	</choice>
-</start>
-<define name="manifest">
-	<element name="manifest:manifest">
-		<ref name="manifest-attlist"/>
-		<oneOrMore>
-			<ref name="file-entry"/>
-		</oneOrMore>
-	</element>
-</define>
-<define name="manifest-attlist">
-	<attribute name="manifest:version">
-		<value>1.2</value>
-	</attribute>
-</define>
-<define name="file-entry">
-	<element name="manifest:file-entry">
-		<ref name="file-entry-attlist"/>
-		<optional>
-			<ref name="encryption-data"/>
-		</optional>
-	</element>
-</define>
-<define name="file-entry-attlist">
-  <interleave>
-	<attribute name="manifest:full-path">
-		<ref name="string"/>
-	</attribute>
-	<optional>
-		<attribute name="manifest:size">
-			<ref name="nonNegativeInteger"/>
-		</attribute>
-	</optional>
-	<attribute name="manifest:media-type">
-		<ref name="string"/>
-	</attribute>
-	<optional>
-		<attribute name="manifest:preferred-view-mode">
-			<choice>
-				<value>edit</value>
-				<value>presentation-slide-show</value>
-				<value>read-only</value>
-				<ref name="namespacedToken"/> 
-			</choice> 
-		</attribute> 
-	</optional> 
-	<optional>
-		<attribute name="manifest:version">
-			<ref name="string"/>
-		</attribute>
-	</optional>
-  </interleave>
-</define>
-
-<define name="encryption-data">
-	<element name="manifest:encryption-data">
-		<ref name="encryption-data-attlist"/>
-		<ref name="algorithm"/>
-		<optional>
-			<ref name="start-key-generation"/>
-		</optional>
-		<ref name="key-derivation"/>
-	</element>
-</define>
-<define name="encryption-data-attlist">
-  <interleave>
-	<attribute name="manifest:checksum-type">
-		<choice>
-			<value>SHA1/1K</value>
-			<ref name="anyURI"/>
-		</choice>
-	</attribute>
-	<attribute name="manifest:checksum">
-		<ref name="base64Binary"/>
-	</attribute>
-  </interleave>
-</define>
-<define name="algorithm">
-	<element name="manifest:algorithm">
-		<ref name="algorithm-attlist"/>
-		<ref name="anyElements"/>
-	</element>
-</define>
-<define name="algorithm-attlist">
-  <interleave>
-	<attribute name="manifest:algorithm-name">
-		<choice>
-			<value>Blowfish CFB</value>
-			<ref name="anyURI"/>
-		</choice>
-	</attribute>
-	<attribute name="manifest:initialisation-vector">
-		<ref name="base64Binary"/>
-	</attribute>
-  </interleave>
-</define>
-<define name="anyAttListOrElements">
-	<zeroOrMore>
-		<attribute>
-			<anyName/>
-			<text/>
-		</attribute>
-	</zeroOrMore>
-	<ref name="anyElements"/>
-</define>
-<define name="anyElements">
-	<zeroOrMore>
-		<element>
-			<anyName/>
-			<mixed>
-				<ref name="anyAttListOrElements"/>
-			</mixed>
-		</element>
-	</zeroOrMore>
-</define>
-<define name="key-derivation">
-	<element name="manifest:key-derivation">
-		<ref name="key-derivation-attlist"/>
-		<empty/>
-	</element>
-</define>
-<define name="key-derivation-attlist">
-  <interleave>
-	<attribute name="manifest:key-derivation-name">
-		<choice>
-			<value>PBKDF2</value>
-			<ref name="anyURI"/>
-		</choice>
-	</attribute>
-	<attribute name="manifest:salt">
-		<ref name="base64Binary"/>
-	</attribute>
-	<attribute name="manifest:iteration-count">
-			<ref name="nonNegativeInteger"/>
-		</attribute>
-	<optional>
-		<attribute name="manifest:key-size">
-			<ref name="nonNegativeInteger"/>
-		</attribute>
-	</optional>
-  </interleave>
-</define>
-<define name="start-key-generation">
-	<element name="manifest:start-key-generation">
-		<ref name="start-key-generation-attlist"/>
-		<empty/>
-	</element>
-</define>
-<define name="start-key-generation-attlist">
-  <interleave>
-	<attribute name="manifest:start-key-generation-name">
-		<choice>
-			<value>SHA1</value>
-			<ref name="anyURI"/>
-		</choice>
-	</attribute>
-	<optional>
-		<attribute name="manifest:key-size">
-			<ref name="nonNegativeInteger"/>
-		</attribute>
-	</optional>
-  </interleave>
-</define>
-<define name="base64Binary">
-	<data type="base64Binary"/>
-</define>
-<define name="namespacedToken">
-	<data type="QName">
-		<param name="pattern">[^:]+:[^:]+</param>
-	</data>
-</define>
-<define name="nonNegativeInteger">
-	<data type="nonNegativeInteger"/>
-</define>
-<define name="string">
-	<data type="string"/>
-</define>
-<define name="anyURI">
-	<data type="anyURI"/>
-</define>
-</grammar>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.xsd
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.xsd b/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.xsd
deleted file mode 100644
index 9e5e863..0000000
--- a/taverna-robundle/src/main/xsd/OpenDocument-v1.2-os-manifest-schema.xsd
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Open Document Format for Office Applications (OpenDocument) Version 1.2
-  OASIS Standard, 29 September 2011
-  Manifest Relax-NG Schema
-  Source: http://docs.oasis-open.org/office/v1.2/os/
-  Copyright (c) OASIS Open 2002-2011. All Rights Reserved.
-  
-  All capitalized terms in the following text have the meanings assigned to them
-  in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
-  full Policy may be found at the OASIS website.
-  
-  This document and translations of it may be copied and furnished to others, and
-  derivative works that comment on or otherwise explain it or assist in its
-  implementation may be prepared, copied, published, and distributed, in whole or
-  in part, without restriction of any kind, provided that the above copyright
-  notice and this section are included on all such copies and derivative works.
-  However, this document itself may not be modified in any way, including by
-  removing the copyright notice or references to OASIS, except as needed for the
-  purpose of developing any document or deliverable produced by an OASIS
-  Technical Committee (in which case the rules applicable to copyrights, as set
-  forth in the OASIS IPR Policy, must be followed) or as required to translate it
-  into languages other than English.
-  
-  The limited permissions granted above are perpetual and will not be revoked by
-  OASIS or its successors or assigns.
-  
-  This document and the information contained herein is provided on an "AS IS"
-  basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
-  LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
-  INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
-  FITNESS FOR A PARTICULAR PURPOSE. 
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
-  <xs:element name="manifest">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="manifest:file-entry"/>
-      </xs:sequence>
-      <xs:attributeGroup ref="manifest:manifest-attlist"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="manifest-attlist">
-    <xs:attribute name="version" use="required" form="qualified">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="1.2"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:attributeGroup>
-  <xs:element name="file-entry">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="manifest:encryption-data"/>
-      </xs:sequence>
-      <xs:attributeGroup ref="manifest:file-entry-attlist"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="file-entry-attlist">
-    <xs:attribute name="full-path" use="required" form="qualified" type="manifest:string"/>
-    <xs:attribute name="size" form="qualified" type="manifest:nonNegativeInteger"/>
-    <xs:attribute name="media-type" use="required" form="qualified" type="manifest:string"/>
-    <xs:attribute name="preferred-view-mode" form="qualified">
-      <xs:simpleType>
-        <xs:union memberTypes="manifest:namespacedToken">
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="edit"/>
-            </xs:restriction>
-          </xs:simpleType>
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="presentation-slide-show"/>
-            </xs:restriction>
-          </xs:simpleType>
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="read-only"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:union>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="version" form="qualified" type="manifest:string"/>
-  </xs:attributeGroup>
-  <xs:element name="encryption-data">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="manifest:algorithm"/>
-        <xs:element minOccurs="0" ref="manifest:start-key-generation"/>
-        <xs:element ref="manifest:key-derivation"/>
-      </xs:sequence>
-      <xs:attributeGroup ref="manifest:encryption-data-attlist"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="encryption-data-attlist">
-    <xs:attribute name="checksum-type" use="required" form="qualified">
-      <xs:simpleType>
-        <xs:union memberTypes="manifest:anyURI">
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="SHA1/1K"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:union>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="checksum" use="required" form="qualified" type="manifest:base64Binary"/>
-  </xs:attributeGroup>
-  <xs:element name="algorithm">
-    <xs:complexType>
-      <xs:group ref="manifest:anyElements"/>
-      <xs:attributeGroup ref="manifest:algorithm-attlist"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="algorithm-attlist">
-    <xs:attribute name="algorithm-name" use="required" form="qualified">
-      <xs:simpleType>
-        <xs:union memberTypes="manifest:anyURI">
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="Blowfish CFB"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:union>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="initialisation-vector" use="required" form="qualified" type="manifest:base64Binary"/>
-  </xs:attributeGroup>
-  <xs:group name="anyAttListOrElements">
-    <xs:sequence>
-      <xs:group ref="manifest:anyElements"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:attributeGroup name="anyAttListOrElements">
-    <xs:anyAttribute processContents="skip"/>
-  </xs:attributeGroup>
-  <xs:group name="anyElements">
-    <xs:sequence>
-      <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="key-derivation">
-    <xs:complexType>
-      <xs:attributeGroup ref="manifest:key-derivation-attlist"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="key-derivation-attlist">
-    <xs:attribute name="key-derivation-name" use="required" form="qualified">
-      <xs:simpleType>
-        <xs:union memberTypes="manifest:anyURI">
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="PBKDF2"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:union>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="salt" use="required" form="qualified" type="manifest:base64Binary"/>
-    <xs:attribute name="iteration-count" use="required" form="qualified" type="manifest:nonNegativeInteger"/>
-    <xs:attribute name="key-size" form="qualified" type="manifest:nonNegativeInteger"/>
-  </xs:attributeGroup>
-  <xs:element name="start-key-generation">
-    <xs:complexType>
-      <xs:attributeGroup ref="manifest:start-key-generation-attlist"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="start-key-generation-attlist">
-    <xs:attribute name="start-key-generation-name" use="required" form="qualified">
-      <xs:simpleType>
-        <xs:union memberTypes="manifest:anyURI">
-          <xs:simpleType>
-            <xs:restriction base="xs:token">
-              <xs:enumeration value="SHA1"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:union>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="key-size" form="qualified" type="manifest:nonNegativeInteger"/>
-  </xs:attributeGroup>
-  <xs:simpleType name="base64Binary">
-    <xs:restriction base="xs:base64Binary"/>
-  </xs:simpleType>
-  <xs:simpleType name="namespacedToken">
-    <xs:restriction base="xs:QName">
-      <xs:pattern value="[^:]+:[^:]+"/>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="nonNegativeInteger">
-    <xs:restriction base="xs:nonNegativeInteger"/>
-  </xs:simpleType>
-  <xs:simpleType name="string">
-    <xs:restriction base="xs:string"/>
-  </xs:simpleType>
-  <xs:simpleType name="anyURI">
-    <xs:restriction base="xs:anyURI"/>
-  </xs:simpleType>
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/xsd/combine.xsd
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/xsd/combine.xsd b/taverna-robundle/src/main/xsd/combine.xsd
deleted file mode 100644
index a8d356b..0000000
--- a/taverna-robundle/src/main/xsd/combine.xsd
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xsd:schema
-	targetNamespace="http://identifiers.org/combine.specifications/omex-manifest"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://identifiers.org/combine.specifications/omex-manifest"
-	elementFormDefault="qualified" attributeFormDefault="unqualified">
-    <xsd:annotation>
-    	<xsd:documentation># COMBINE Archive specification
-
-Based on Version 1, Draft, 2014-04-02
-http://co.mbine.org/specifications/combine_archive-Draft1.pdf
-
-Authors: 
-  * [Stian Soiland-Reyes](http://orcid.org/0000-0001-9842-9718)
-
-Copyright 2014, University of Manchester
-
-MIT license (See LICENSE.md or http://opensource.org/licenses/MIT)
-</xsd:documentation></xsd:annotation>
-    <xsd:element name="omexManifest">
-    	<xsd:annotation>
-    		<xsd:documentation>At the root of the COMBINE archive stands one file, with the prescribed name `manifest.xml`. 
-This file contains an instantiation of the *OmexManifest* class.</xsd:documentation>
-    	</xsd:annotation>
-    
-	    <xsd:complexType>
-	        <xsd:annotation>
-	        	<xsd:documentation>The root of the COMBINE archive.
-	
-	It contains a number of `content` entries, one of which represents the manifest itself.</xsd:documentation>
-	        </xsd:annotation>
-	        <xsd:sequence>
-	    		<xsd:element name="content" type="Content" minOccurs="1" maxOccurs="unbounded">
-	    			<xsd:annotation>
-	    				<xsd:documentation>An entry in the *OmexManifest*.
-	
-	Note that a valid manifest needs to have at least one entry, that of the manifest itself, but may contain as many
-	entries as needed.</xsd:documentation>
-	    			</xsd:annotation></xsd:element>
-	    	</xsd:sequence>
-	    </xsd:complexType>
-   	</xsd:element>
-
-            
-    <xsd:complexType name="Content">
-        <xsd:annotation>
-        	<xsd:documentation>The *Content* class represents an entry in the *OmexManifest* and by extension a file in the _COMBINE archive_.</xsd:documentation>
-        </xsd:annotation>
-        <xsd:attribute name="location" type="xsd:string">
-    		<xsd:annotation>
-    			<xsd:documentation>The `location` attribute is a required attribute of type `string`. It represents a 
-relative location to an entry within the archive. The root of the archive 
-is represented by a dot `.`.</xsd:documentation>
-    		</xsd:annotation></xsd:attribute>
-    	<xsd:attribute name="format" type="xsd:string">
-    		<xsd:annotation>
-    			<xsd:documentation>The format is a required attribute of type `string`. It indicates the file type of the 
-*Content* element. The values of the `format` attribute fall in two categories. Either the
-`format` denotes one of the COMBINE standards, in which case the format will 
-begin with its `identifiers.org` url. Otherwise the format will represent a MIME type.
-Using identifiers.org allows to unambiguously define the COMBINE standard, and even its level and version.
-For example, the identifier:
-
-    http://identifiers.org/combine.specifications/sbml 
-
-would denote the *Content* element as being encoded in the SBML format. That is 
-usually sufficient, as tools supporting one level of SBML usually support others as
-well. However, if the software exporting the COMBINE archive wanted to be more
 precise, it could specify that it is an SBML Level 2 document with
-
-    http://identifiers.org/combine.specifications/sbml.level-2
-
-or even declare its Version with
-
     http://identifiers.org/combine.specifications/sbml.level-2.version-3
-</xsd:documentation>
-    		</xsd:annotation></xsd:attribute>
-    	<xsd:attribute name="master" type="xsd:boolean" use="optional" default="false">
-    		<xsd:annotation>
-    			<xsd:documentation>The `master` is an optional attribute of type `boolean`. It represents a hint, 
-that a certain file is to be used first when processing the content of an archive. 
-Are top model description in a composed model, calling the various submodels; 
-simulation description, calling the different model descriptions and 
-data sources used in the experiment.
-
-At most one content element per archive may have its master attribute set to `true`.</xsd:documentation>
-    		</xsd:annotation></xsd:attribute>
-    </xsd:complexType>
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/xsd/container.xsd
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/xsd/container.xsd b/taverna-robundle/src/main/xsd/container.xsd
deleted file mode 100644
index c34a24d..0000000
--- a/taverna-robundle/src/main/xsd/container.xsd
+++ /dev/null
@@ -1,192 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xsd:schema targetNamespace="urn:oasis:names:tc:opendocument:xmlns:container"
-	elementFormDefault="qualified" attributeFormDefault="unqualified"
-	version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	xmlns:container="urn:oasis:names:tc:opendocument:xmlns:container"
-	xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-	jaxb:version="2.0"
-	xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd">
-	<xsd:annotation>
-		<xsd:documentation>
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-			NOTE: urn:oasis:names:tc:opendocument:xmlns:container is *not* an
-			official namespace by OASIS, but the Adobe UCF specification defines
-			that a conforming META-INF/container.xml *must* use the *default*
-			namespace, eg:
-
-			&lt;container
-			xmlns="urn:oasis:names:tc:opendocument:xmlns:container"&gt;
-			...
-			&lt;/container&gt; </xsd:documentation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-			<jaxb:globalBindings />
-			<jaxb:schemaBindings>
-				<jaxb:package name="org.oasis_open.names.tc.opendocument.xmlns.container" />
-			</jaxb:schemaBindings>
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<!-- xmldsig-core-schema.xsd is also included by xenc-schema.xsd -->
-	<xsd:import namespace='http://www.w3.org/2000/09/xmldsig#'
-		schemaLocation='./xmldsig-core-schema.xsd' />
-		<!--schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd" -->
-	<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#"
-		schemaLocation="xenc-schema.xsd" />
-		<!--schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd' -->
-
-	<xsd:element name="container" type="container:Container"></xsd:element>
-
-	<xsd:complexType name="Container">
-
-		<xsd:sequence>
-			<xsd:choice minOccurs="0" maxOccurs="2">
-				<xsd:element name="rootFiles">
-					<xsd:complexType>
-						<xsd:choice maxOccurs="unbounded">
-							<xsd:any namespace="##other" processContents="lax" />
-							<xsd:element name="rootFile" type="container:RootFile" />
-						</xsd:choice>
-						<xsd:anyAttribute namespace="##other"
-							processContents="lax" />
-					</xsd:complexType>
-				</xsd:element>
-				<xsd:any namespace="##other" 
-					processContents="lax" maxOccurs="unbounded" />
-			</xsd:choice>
-
-			<xsd:sequence minOccurs="0">
-				<xsd:element name="relationships">
-					<xsd:complexType>
-						<xsd:choice maxOccurs="unbounded">
-							<xsd:any namespace="##other" processContents="lax" />
-							<xsd:element name="relationship" type="container:Relationship" />
-						</xsd:choice>
-						<xsd:anyAttribute namespace="##other"
-							processContents="lax" />
-					</xsd:complexType>
-				</xsd:element>
-				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-					processContents="lax">
-					<xsd:annotation>
-						<xsd:appinfo>
-							<jaxb:property name="any5" />
-						</xsd:appinfo>
-					</xsd:annotation>
-
-				</xsd:any>
-			</xsd:sequence>
-
-
-			<xsd:sequence minOccurs="0">
-				<xsd:element name="signatures">
-					<xsd:complexType>
-						<xsd:choice maxOccurs="unbounded">
-							<!-- Can't use ##other as dsig: is in other <xsd:any namespace="##other" 
-								processContents="lax"> <xsd:annotation> <xsd:appinfo> <jaxb:property name="any6" 
-								/> </xsd:appinfo> </xsd:annotation> </xsd:any> -->
-							<xsd:element ref="dsig:Signature" />
-						</xsd:choice>
-						<xsd:anyAttribute namespace="##other"
-							processContents="lax" />
-					</xsd:complexType>
-				</xsd:element>
-				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-					processContents="lax">
-					<xsd:annotation>
-						<xsd:appinfo>
-							<jaxb:property name="any7" />
-						</xsd:appinfo>
-					</xsd:annotation>
-				</xsd:any>
-			</xsd:sequence>
-
-			<xsd:sequence minOccurs="0">
-				<xsd:element name="encryption">
-					<xsd:complexType>
-						<xsd:choice maxOccurs="unbounded">
-							<xsd:element ref="enc:EncryptedData" />
-							<xsd:element ref="enc:EncryptedKey" />
-							<!-- Can't use ##other as enc: is in other <xsd:any namespace="##other" 
-								processContents="lax"> <xsd:annotation> <xsd:appinfo> <jaxb:property name="any8" 
-								/> </xsd:appinfo> </xsd:annotation> </xsd:any> -->
-						</xsd:choice>
-						<xsd:anyAttribute namespace="##other"
-							processContents="lax" />
-					</xsd:complexType>
-				</xsd:element>
-
-				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-					processContents="lax">
-					<xsd:annotation>
-						<xsd:appinfo>
-							<jaxb:property name="any9" />
-						</xsd:appinfo>
-					</xsd:annotation>
-				</xsd:any>
-			</xsd:sequence>
-
-		</xsd:sequence>
-
-		<xsd:attribute name="version" type="xsd:string" fixed="1.0"></xsd:attribute>
-		<xsd:anyAttribute namespace="##other"
-			processContents="lax" />
-
-	</xsd:complexType>
-
-	<xsd:complexType name="RootFile">
-		<xsd:sequence>
-			<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-				processContents="lax" />
-		</xsd:sequence>
-		<xsd:attribute name="full-path" type="xsd:string" use="required">
-		</xsd:attribute>
-		<xsd:attribute name="media-type" type="xsd:string" use="required">
-		</xsd:attribute>
-		<xsd:anyAttribute namespace="##other"
-			processContents="lax" />
-
-	</xsd:complexType>
-
-	<xsd:complexType name="Relationship">
-		<xsd:sequence>
-			<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-				processContents="lax" />
-		</xsd:sequence>
-		<xsd:attribute name="type" type="xsd:string"></xsd:attribute>
-		<xsd:attribute name="target" type="xsd:string"></xsd:attribute>
-		<xsd:anyAttribute namespace="##other"
-			processContents="lax" />
-	</xsd:complexType>
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/xsd/xenc-schema.xsd
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/xsd/xenc-schema.xsd b/taverna-robundle/src/main/xsd/xenc-schema.xsd
deleted file mode 100644
index 01a5c71..0000000
--- a/taverna-robundle/src/main/xsd/xenc-schema.xsd
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright © 2002 World Wide Web Consortium, (Massachusetts
-Institute of Technology, Institut National de Recherche en Informatique et en
-Automatique, Keio University). All Rights Reserved.
-http://www.w3.org/Consortium/Legal/
-
-XML Encryption Syntax and Processing
-W3C Recommendation 10 December 2002
-http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd
-http://www.w3.org/TR/xmlenc-core/
-     -->
-<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
-        xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
-        xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
-        targetNamespace='http://www.w3.org/2001/04/xmlenc#'
-        elementFormDefault='qualified'>
-
-  <import namespace="http://www.w3.org/2000/09/xmldsig#"
-          schemaLocation="xmldsig-core-schema.xsd"/>
-
-  <complexType name='EncryptedType' abstract='true'>
-    <sequence>
-      <element name='EncryptionMethod' type='xenc:EncryptionMethodType'
-       minOccurs='0'/>
-      <element ref='ds:KeyInfo' minOccurs='0'/>
-      <element ref='xenc:CipherData'/>
-      <element ref='xenc:EncryptionProperties' minOccurs='0'/>
-    </sequence>
-    <attribute name='Id' type='ID' use='optional'/>
-    <attribute name='Type' type='anyURI' use='optional'/>
-    <attribute name='MimeType' type='string' use='optional'/>
-    <attribute name='Encoding' type='anyURI' use='optional'/>
-  </complexType>
-  
-  <complexType name='EncryptionMethodType' mixed='true'>
-    <sequence>
-      <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
-      <element name='OAEPparams' minOccurs='0' type='base64Binary'/>
-      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
-    </sequence>
-    <attribute name='Algorithm' type='anyURI' use='required'/>
-  </complexType>
-
-    <simpleType name='KeySizeType'>
-      <restriction base="integer"/>
-    </simpleType>
-
-  <element name='CipherData' type='xenc:CipherDataType'/>
-  <complexType name='CipherDataType'>
-     <choice>
-       <element name='CipherValue' type='base64Binary'/>
-       <element ref='xenc:CipherReference'/>
-     </choice>
-    </complexType>
-
-   <element name='CipherReference' type='xenc:CipherReferenceType'/>
-   <complexType name='CipherReferenceType'>
-       <choice>
-         <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
-       </choice>
-       <attribute name='URI' type='anyURI' use='required'/>
-   </complexType>
-
-     <complexType name='TransformsType'>
-       <sequence>
-         <element ref='ds:Transform' maxOccurs='unbounded'/>
-       </sequence>
-     </complexType>
-
-
-  <element name='EncryptedData' type='xenc:EncryptedDataType'/>
-  <complexType name='EncryptedDataType'>
-    <complexContent>
-      <extension base='xenc:EncryptedType'>
-       </extension>
-    </complexContent>
-  </complexType>
-
-  <!-- Children of ds:KeyInfo -->
-
-  <element name='EncryptedKey' type='xenc:EncryptedKeyType'/>
-  <complexType name='EncryptedKeyType'>
-    <complexContent>
-      <extension base='xenc:EncryptedType'>
-        <sequence>
-          <element ref='xenc:ReferenceList' minOccurs='0'/>
-          <element name='CarriedKeyName' type='string' minOccurs='0'/>
-        </sequence>
-        <attribute name='Recipient' type='string'
-         use='optional'/>
-      </extension>
-    </complexContent>
-  </complexType>
-
-    <element name="AgreementMethod" type="xenc:AgreementMethodType"/>
-    <complexType name="AgreementMethodType" mixed="true">
-      <sequence>
-        <element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
-        <!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
-        <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-        <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
-        <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
-      </sequence>
-      <attribute name="Algorithm" type="anyURI" use="required"/>
-    </complexType>
-
-  <!-- End Children of ds:KeyInfo -->
-
-  <element name='ReferenceList'>
-    <complexType>
-      <choice minOccurs='1' maxOccurs='unbounded'>
-        <element name='DataReference' type='xenc:ReferenceType'/>
-        <element name='KeyReference' type='xenc:ReferenceType'/>
-      </choice>
-    </complexType>
-  </element>
-
-  <complexType name='ReferenceType'>
-    <sequence>
-      <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
-    </sequence>
-    <attribute name='URI' type='anyURI' use='required'/>
-  </complexType>
-
-
-  <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>
-  <complexType name='EncryptionPropertiesType'>
-    <sequence>
-      <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>
-    </sequence>
-    <attribute name='Id' type='ID' use='optional'/>
-  </complexType>
-
-    <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
-    <complexType name='EncryptionPropertyType' mixed='true'>
-      <choice maxOccurs='unbounded'>
-        <any namespace='##other' processContents='lax'/>
-      </choice>
-      <attribute name='Target' type='anyURI' use='optional'/>
-      <attribute name='Id' type='ID' use='optional'/>
-      <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
-    </complexType>
-
-</schema>
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/xsd/xmldsig-core-schema.xsd
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/xsd/xmldsig-core-schema.xsd b/taverna-robundle/src/main/xsd/xmldsig-core-schema.xsd
deleted file mode 100644
index 8422fdf..0000000
--- a/taverna-robundle/src/main/xsd/xmldsig-core-schema.xsd
+++ /dev/null
@@ -1,308 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Schema for XML Signatures
-    http://www.w3.org/2000/09/xmldsig#
-    $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
-
-    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
-    of Technology, Institut National de Recherche en Informatique et en
-    Automatique, Keio University). All Rights Reserved.
-    http://www.w3.org/Consortium/Legal/
-
-    This document is governed by the W3C Software License [1] as described
-    in the FAQ [2].
-
-    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
-    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
--->
-
-
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
-        targetNamespace="http://www.w3.org/2000/09/xmldsig#"
-        version="0.1" elementFormDefault="qualified"> 
-
-<!-- Basic Types Defined for Signatures -->
-
-<simpleType name="CryptoBinary">
-  <restriction base="base64Binary">
-  </restriction>
-</simpleType>
-
-<!-- Start Signature -->
-
-<element name="Signature" type="ds:SignatureType"/>
-<complexType name="SignatureType">
-  <sequence> 
-    <element ref="ds:SignedInfo"/> 
-    <element ref="ds:SignatureValue"/> 
-    <element ref="ds:KeyInfo" minOccurs="0"/> 
-    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> 
-  </sequence>  
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-  <element name="SignatureValue" type="ds:SignatureValueType"/> 
-  <complexType name="SignatureValueType">
-    <simpleContent>
-      <extension base="base64Binary">
-        <attribute name="Id" type="ID" use="optional"/>
-      </extension>
-    </simpleContent>
-  </complexType>
-
-<!-- Start SignedInfo -->
-
-<element name="SignedInfo" type="ds:SignedInfoType"/>
-<complexType name="SignedInfoType">
-  <sequence> 
-    <element ref="ds:CanonicalizationMethod"/> 
-    <element ref="ds:SignatureMethod"/> 
-    <element ref="ds:Reference" maxOccurs="unbounded"/> 
-  </sequence>  
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> 
-  <complexType name="CanonicalizationMethodType" mixed="true">
-    <sequence>
-      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
-      <!-- (0,unbounded) elements from (1,1) namespace -->
-    </sequence>
-    <attribute name="Algorithm" type="anyURI" use="required"/> 
-  </complexType>
-
-  <element name="SignatureMethod" type="ds:SignatureMethodType"/>
-  <complexType name="SignatureMethodType" mixed="true">
-    <sequence>
-      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
-      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-      <!-- (0,unbounded) elements from (1,1) external namespace -->
-    </sequence>
-    <attribute name="Algorithm" type="anyURI" use="required"/> 
-  </complexType>
-
-<!-- Start Reference -->
-
-<element name="Reference" type="ds:ReferenceType"/>
-<complexType name="ReferenceType">
-  <sequence> 
-    <element ref="ds:Transforms" minOccurs="0"/> 
-    <element ref="ds:DigestMethod"/> 
-    <element ref="ds:DigestValue"/> 
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-  <attribute name="URI" type="anyURI" use="optional"/> 
-  <attribute name="Type" type="anyURI" use="optional"/> 
-</complexType>
-
-  <element name="Transforms" type="ds:TransformsType"/>
-  <complexType name="TransformsType">
-    <sequence>
-      <element ref="ds:Transform" maxOccurs="unbounded"/>  
-    </sequence>
-  </complexType>
-
-  <element name="Transform" type="ds:TransformType"/>
-  <complexType name="TransformType" mixed="true">
-    <choice minOccurs="0" maxOccurs="unbounded"> 
-      <any namespace="##other" processContents="lax"/>
-      <!-- (1,1) elements from (0,unbounded) namespaces -->
-      <element name="XPath" type="string"/> 
-    </choice>
-    <attribute name="Algorithm" type="anyURI" use="required"/> 
-  </complexType>
-
-<!-- End Reference -->
-
-<element name="DigestMethod" type="ds:DigestMethodType"/>
-<complexType name="DigestMethodType" mixed="true"> 
-  <sequence>
-    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-  </sequence>    
-  <attribute name="Algorithm" type="anyURI" use="required"/> 
-</complexType>
-
-<element name="DigestValue" type="ds:DigestValueType"/>
-<simpleType name="DigestValueType">
-  <restriction base="base64Binary"/>
-</simpleType>
-
-<!-- End SignedInfo -->
-
-<!-- Start KeyInfo -->
-
-<element name="KeyInfo" type="ds:KeyInfoType"/> 
-<complexType name="KeyInfoType" mixed="true">
-  <choice maxOccurs="unbounded">     
-    <element ref="ds:KeyName"/> 
-    <element ref="ds:KeyValue"/> 
-    <element ref="ds:RetrievalMethod"/> 
-    <element ref="ds:X509Data"/> 
-    <element ref="ds:PGPData"/> 
-    <element ref="ds:SPKIData"/>
-    <element ref="ds:MgmtData"/>
-    <any processContents="lax" namespace="##other"/>
-    <!-- (1,1) elements from (0,unbounded) namespaces -->
-  </choice>
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-  <element name="KeyName" type="string"/>
-  <element name="MgmtData" type="string"/>
-
-  <element name="KeyValue" type="ds:KeyValueType"/> 
-  <complexType name="KeyValueType" mixed="true">
-   <choice>
-     <element ref="ds:DSAKeyValue"/>
-     <element ref="ds:RSAKeyValue"/>
-     <any namespace="##other" processContents="lax"/>
-   </choice>
-  </complexType>
-
-  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> 
-  <complexType name="RetrievalMethodType">
-    <sequence>
-      <element ref="ds:Transforms" minOccurs="0"/> 
-    </sequence>  
-    <attribute name="URI" type="anyURI"/>
-    <attribute name="Type" type="anyURI" use="optional"/>
-  </complexType>
-
-<!-- Start X509Data -->
-
-<element name="X509Data" type="ds:X509DataType"/> 
-<complexType name="X509DataType">
-  <sequence maxOccurs="unbounded">
-    <choice>
-      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
-      <element name="X509SKI" type="base64Binary"/>
-      <element name="X509SubjectName" type="string"/>
-      <element name="X509Certificate" type="base64Binary"/>
-      <element name="X509CRL" type="base64Binary"/>
-      <any namespace="##other" processContents="lax"/>
-    </choice>
-  </sequence>
-</complexType>
-
-<complexType name="X509IssuerSerialType"> 
-  <sequence> 
-    <element name="X509IssuerName" type="string"/> 
-    <element name="X509SerialNumber" type="integer"/> 
-  </sequence>
-</complexType>
-
-<!-- End X509Data -->
-
-<!-- Begin PGPData -->
-
-<element name="PGPData" type="ds:PGPDataType"/> 
-<complexType name="PGPDataType"> 
-  <choice>
-    <sequence>
-      <element name="PGPKeyID" type="base64Binary"/> 
-      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> 
-      <any namespace="##other" processContents="lax" minOccurs="0"
-       maxOccurs="unbounded"/>
-    </sequence>
-    <sequence>
-      <element name="PGPKeyPacket" type="base64Binary"/> 
-      <any namespace="##other" processContents="lax" minOccurs="0"
-       maxOccurs="unbounded"/>
-    </sequence>
-  </choice>
-</complexType>
-
-<!-- End PGPData -->
-
-<!-- Begin SPKIData -->
-
-<element name="SPKIData" type="ds:SPKIDataType"/> 
-<complexType name="SPKIDataType">
-  <sequence maxOccurs="unbounded">
-    <element name="SPKISexp" type="base64Binary"/>
-    <any namespace="##other" processContents="lax" minOccurs="0"/>
-  </sequence>
-</complexType> 
-
-<!-- End SPKIData -->
-
-<!-- End KeyInfo -->
-
-<!-- Start Object (Manifest, SignatureProperty) -->
-
-<element name="Object" type="ds:ObjectType"/> 
-<complexType name="ObjectType" mixed="true">
-  <sequence minOccurs="0" maxOccurs="unbounded">
-    <any namespace="##any" processContents="lax"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
-  <attribute name="Encoding" type="anyURI" use="optional"/> 
-</complexType>
-
-<element name="Manifest" type="ds:ManifestType"/> 
-<complexType name="ManifestType">
-  <sequence>
-    <element ref="ds:Reference" maxOccurs="unbounded"/> 
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 
-<complexType name="SignaturePropertiesType">
-  <sequence>
-    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/> 
-</complexType>
-
-   <element name="SignatureProperty" type="ds:SignaturePropertyType"/> 
-   <complexType name="SignaturePropertyType" mixed="true">
-     <choice maxOccurs="unbounded">
-       <any namespace="##other" processContents="lax"/>
-       <!-- (1,1) elements from (1,unbounded) namespaces -->
-     </choice>
-     <attribute name="Target" type="anyURI" use="required"/> 
-     <attribute name="Id" type="ID" use="optional"/> 
-   </complexType>
-
-<!-- End Object (Manifest, SignatureProperty) -->
-
-<!-- Start Algorithm Parameters -->
-
-<simpleType name="HMACOutputLengthType">
-  <restriction base="integer"/>
-</simpleType>
-
-<!-- Start KeyValue Element-types -->
-
-<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
-<complexType name="DSAKeyValueType">
-  <sequence>
-    <sequence minOccurs="0">
-      <element name="P" type="ds:CryptoBinary"/>
-      <element name="Q" type="ds:CryptoBinary"/>
-    </sequence>
-    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
-    <element name="Y" type="ds:CryptoBinary"/>
-    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
-    <sequence minOccurs="0">
-      <element name="Seed" type="ds:CryptoBinary"/>
-      <element name="PgenCounter" type="ds:CryptoBinary"/>
-    </sequence>
-  </sequence>
-</complexType>
-
-<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
-<complexType name="RSAKeyValueType">
-  <sequence>
-    <element name="Modulus" type="ds:CryptoBinary"/> 
-    <element name="Exponent" type="ds:CryptoBinary"/> 
-  </sequence>
-</complexType> 
-
-<!-- End KeyValue Element-types -->
-
-<!-- End Signature -->
-
-</schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/MotifAnalysisIT.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/MotifAnalysisIT.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/MotifAnalysisIT.java
deleted file mode 100644
index 54958b8..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/MotifAnalysisIT.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package org.apache.taverna.robundle;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Agent;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathAnnotation;
-import org.junit.Test;
-
-public class MotifAnalysisIT {
-	@Test
-	public void motifAnalysis() throws Exception {
-
-		// The new RO bundle
-		Path ro = Files.createTempFile("motifAnalysis", ".robundle.zip");
-		try (Bundle bundle = Bundles.createBundle(ro)) {
-
-			Path orig = Paths.get(getClass().getResource("/motifAnalysis.zip")
-					.toURI());
-
-			// Copy the motifAnalysis/ folder
-			try (FileSystem origfs = FileSystems.newFileSystem(orig, null)) {
-				Path origFolder = origfs.getPath("motifAnalysis/");
-				Bundles.copyRecursively(origFolder, bundle.getRoot(),
-						StandardCopyOption.REPLACE_EXISTING,
-						StandardCopyOption.COPY_ATTRIBUTES);
-			}
-
-			// TODO: Generating manifest should be automatic!
-
-			// Generate manifest
-			Manifest manifest = bundle.getManifest();
-
-			// attributions
-
-			// Stian made the RO bundle
-			Agent stian = new Agent();
-			stian.setUri(URI.create("http://soiland-reyes.com/stian/#me"));
-			stian.setOrcid(URI.create("http://orcid.org/0000-0001-9842-9718"));
-			stian.setName("Stian Soiland-Reyes");
-			manifest.setCreatedBy(stian);
-			// RO bundle was created "now"
-			manifest.setCreatedOn(Files.getLastModifiedTime(ro));
-
-			// but it was *authored* by Daniel et al
-
-			Agent daniel = new Agent();
-			daniel.setUri(URI
-					.create("http://delicias.dia.fi.upm.es/members/DGarijo/#me"));
-			daniel.setOrcid(URI.create("http://orcid.org/0000-0003-0454-7145"));
-			daniel.setName("Daniel Garijo");
-
-			List<Agent> authors = new ArrayList<>();
-			authors.add(daniel);
-			authors.add(new Agent("Pinar Alper"));
-			authors.add(new Agent("Khalid Belhajjame"));
-			authors.add(new Agent("Oscar Corcho"));
-			authors.add(new Agent("Yolanda Gil"));
-			authors.add(new Agent("Carole Goble"));
-			manifest.setAuthoredBy(authors);
-
-			// when was the RO authored? We'll say when the README was made..
-			Path readme = bundle.getRoot().resolve("README.txt");
-			manifest.setAuthoredOn(Files.getLastModifiedTime(readme));
-
-			// And who made the README file?
-			manifest.getAggregation(readme).setCreatedBy(daniel);
-			manifest.getAggregation(readme).setMediatype("text/plain");
-
-			// Annotations
-
-			PathAnnotation readmeAnnotation = new PathAnnotation();
-			readmeAnnotation.setAbout(URI.create("/"));
-			readmeAnnotation.setContent(URI.create("/README.txt"));
-			readmeAnnotation.generateAnnotationId();
-			manifest.getAnnotations().add(readmeAnnotation);
-
-			PathAnnotation website = new PathAnnotation();
-			website.setAbout(URI.create("/"));
-			website.setContent(URI
-					.create("http://www.oeg-upm.net/files/dgarijo/motifAnalysisSite/"));
-			website.generateAnnotationId();
-			manifest.getAnnotations().add(website);
-
-			// Write out manifest
-			// This is now done automatically on close()
-			// manifest.writeAsJsonLD();
-		}
-
-		System.out.println("Generated " + ro);
-		// if (Desktop.isDesktopSupported()) {
-		// Desktop.getDesktop().open(ro.toFile());
-		// }
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestBundles.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestBundles.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestBundles.java
deleted file mode 100644
index 05ab53e..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestBundles.java
+++ /dev/null
@@ -1,643 +0,0 @@
-package org.apache.taverna.robundle;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.nio.charset.Charset;
-import java.nio.file.DirectoryNotEmptyException;
-import java.nio.file.DirectoryStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.fs.BundleFileSystemProvider;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.apache.taverna.robundle.utils.TemporaryFiles;
-import org.junit.Test;
-import org.junit.Ignore;
-
-public class TestBundles {
-
-	private static final int MIME_OFFSET = 30;
-
-	protected void checkSignature(Path zip) throws IOException {
-		String MEDIATYPE = "application/vnd.wf4ever.robundle+zip";
-		// Check position 30++ according to RO Bundle specification
-		// http://purl.org/wf4ever/ro-bundle#ucf
-		byte[] expected = ("mimetype" + MEDIATYPE + "PK").getBytes("ASCII");
-
-		try (InputStream in = Files.newInputStream(zip)) {
-			byte[] signature = new byte[expected.length];
-			int MIME_OFFSET = 30;
-			assertEquals(MIME_OFFSET, in.skip(MIME_OFFSET));
-			assertEquals(expected.length, in.read(signature));
-			assertArrayEquals(expected, signature);
-		}
-	}
-
-	@Test
-	public void closeDeleteTemp() throws Exception {
-		Bundle bundle = Bundles.createBundle();
-		assertTrue(Files.exists(bundle.getSource()));
-		assertTrue(bundle.getFileSystem().isOpen());
-		assertTrue(bundle.isDeleteOnClose());
-		bundle.close();
-		assertFalse(Files.exists(bundle.getSource()));
-		assertFalse(bundle.getFileSystem().isOpen());
-	}
-
-	@Test
-	public void closeNotDelete() throws Exception {
-		Path path = Files.createTempFile("bundle", ".zip");
-		Bundle bundle = Bundles.createBundle(path);
-		assertFalse(bundle.isDeleteOnClose());
-		assertTrue(Files.exists(bundle.getSource()));
-		assertTrue(bundle.getFileSystem().isOpen());
-
-		bundle.close();
-		assertTrue(Files.exists(bundle.getSource()));
-		assertFalse(bundle.getFileSystem().isOpen());
-	}
-
-	@Test
-	public void closeAndOpenBundle() throws Exception {
-		Bundle bundle = Bundles.createBundle();
-		Path zip = Bundles.closeBundle(bundle);
-		Bundles.openBundle(zip).close();
-	}
-
-	@Test
-	public void closeAndOpenBundleWithStringValue() throws Exception {
-		Bundle bundle = Bundles.createBundle();
-		Path hello = bundle.getRoot().resolve("hello.txt");
-		Bundles.setStringValue(hello, "Hello");
-		Path zip = Bundles.closeBundle(bundle);
-
-		try (Bundle newBundle = Bundles.openBundle(zip)) {
-			Path newHello = newBundle.getRoot().resolve("hello.txt");
-			assertEquals("Hello", Bundles.getStringValue(newHello));
-		}
-	}
-
-	@Test
-	public void closeAndSaveBundleDelete() throws Exception {
-		Bundle bundle = Bundles.createBundle();
-		Path destination = Files.createTempFile("test", ".zip");
-		destination.toFile().deleteOnExit();
-		Files.delete(destination);
-		assertFalse(Files.exists(destination));
-		Bundles.closeAndSaveBundle(bundle, destination);
-		assertTrue(Files.exists(destination));
-		assertFalse(Files.exists(bundle.getSource()));
-	}
-
-	@Test
-	public void closeAndSaveBundleNotDelete() throws Exception {
-		Path path = Files.createTempFile("bundle", ".zip");
-		Bundle bundle = Bundles.createBundle(path);
-		Path destination = Files.createTempFile("test", ".zip");
-		destination.toFile().deleteOnExit();
-		Files.delete(destination);
-		assertFalse(Files.exists(destination));
-		Bundles.closeAndSaveBundle(bundle, destination);
-		assertTrue(Files.exists(destination));
-		assertTrue(Files.exists(bundle.getSource()));
-	}
-
-	@Test
-	public void closeBundle() throws Exception {
-		Bundle bundle = Bundles.createBundle();
-		Path zip = Bundles.closeBundle(bundle);
-		assertTrue(Files.isReadable(zip));
-		assertEquals(zip, bundle.getSource());
-		checkSignature(zip);
-	}
-
-  @Ignore("Broken in OpenJDK8 zipfs")
-	@Test
-	public void mimeTypePosition() throws Exception {
-		Bundle bundle = Bundles.createBundle();
-		String mimetype = "application/x-test";
-		Bundles.setMimeType(bundle, mimetype);
-		assertEquals(mimetype, Bundles.getMimeType(bundle));
-		Path zip = Bundles.closeBundle(bundle);
-
-		assertTrue(Files.exists(zip));
-		try (ZipFile zipFile = new ZipFile(zip.toFile())) {
-			// Must be first entry
-			ZipEntry mimeEntry = zipFile.entries().nextElement();
-			assertEquals("First zip entry is not 'mimetype'", "mimetype",
-					mimeEntry.getName());
-			assertEquals(
-					"mimetype should be uncompressed, but compressed size mismatch",
-					mimeEntry.getCompressedSize(), mimeEntry.getSize());
-			assertEquals("mimetype should have STORED method", ZipEntry.STORED,
-					mimeEntry.getMethod());
-			assertEquals("Wrong mimetype", mimetype, IOUtils.toString(
-					zipFile.getInputStream(mimeEntry), "ASCII"));
-		}
-
-		// Check position 30++ according to
-		// http://livedocs.adobe.com/navigator/9/Navigator_SDK9_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Navigator_SDK9_HTMLHelp&file=Appx_Packaging.6.1.html#1522568
-		byte[] expected = ("mimetype" + mimetype + "PK").getBytes("ASCII");
-		FileInputStream in = new FileInputStream(zip.toFile());
-		byte[] actual = new byte[expected.length];
-
-		try {
-      
-			assertEquals(MIME_OFFSET, in.skip(MIME_OFFSET));
-			assertEquals(expected.length, in.read(actual));
-		} finally {
-			in.close();
-		}
-		assertArrayEquals(expected, actual);
-	}
-
-	@Test
-	public void createBundle() throws Exception {
-		Path source = null;
-		try (Bundle bundle = Bundles.createBundle()) {
-			assertTrue(Files.isDirectory(bundle.getRoot()));
-			source = bundle.getSource();
-			assertTrue(Files.exists(source));
-		}
-		// As it was temporary file it should be deleted on close
-		assertFalse(Files.exists(source));
-	}
-
-	@Test
-	public void createBundlePath() throws Exception {
-		Path source = Files.createTempFile("test", ".zip");
-		source.toFile().deleteOnExit();
-		Files.delete(source);
-		try (Bundle bundle = Bundles.createBundle(source)) {
-			assertTrue(Files.isDirectory(bundle.getRoot()));
-			assertEquals(source, bundle.getSource());
-			assertTrue(Files.exists(source));
-		}
-		// As it was a specific path, it should NOT be deleted on close
-		assertTrue(Files.exists(source));
-	}
-
-	@Test
-	public void createBundlePathExists() throws Exception {
-		Path source = Files.createTempFile("test", ".zip");
-		source.toFile().deleteOnExit();
-
-		assertTrue(Files.exists(source)); // will be overwritten
-		try (Bundle bundle = Bundles.createBundle(source)) {
-		}
-		// As it was a specific path, it should NOT be deleted on close
-		assertTrue(Files.exists(source));
-	}
-
-	@Test(expected = IOException.class)
-	public void createBundleExistsAsDirFails() throws Exception {
-		Path source = Files.createTempDirectory("test");
-		source.toFile().deleteOnExit();
-		try (Bundle bundle = Bundles.createBundle(source)) {
-		}
-	}
-
-	@Test
-	public void getMimeType() throws Exception {
-		Path bundlePath = TemporaryFiles.temporaryBundle();
-		try (BundleFileSystem bundleFs = BundleFileSystemProvider
-				.newFileSystemFromNew(bundlePath, "application/x-test")) {
-			Bundle bundle = new Bundle(bundleFs.getPath("/"), false);
-			assertEquals("application/x-test", Bundles.getMimeType(bundle));
-		}
-	}
-
-	@Test
-	public void setMimeType() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path mimetypePath = bundle.getRoot().resolve("mimetype");
-			assertEquals("application/vnd.wf4ever.robundle+zip",
-					Bundles.getStringValue(mimetypePath));
-
-			Bundles.setMimeType(bundle, "application/x-test");
-			assertEquals("application/x-test",
-					Bundles.getStringValue(mimetypePath));
-		}
-	}
-
-	@Test(expected = IllegalArgumentException.class)
-	public void setMimeTypeNoNewlines() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Bundles.setMimeType(bundle,
-					"application/x-test\nNo newlines allowed");
-		}
-	}
-
-	@Test(expected = IllegalArgumentException.class)
-	public void setMimeTypeNoSlash() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Bundles.setMimeType(bundle, "test");
-		}
-	}
-
-	@Test(expected = IllegalArgumentException.class)
-	public void setMimeTypeEmpty() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Bundles.setMimeType(bundle, "");
-		}
-	}
-
-	@Test(expected = IllegalArgumentException.class)
-	public void setMimeTypeNonAscii() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Bundles.setMimeType(bundle, "application/x-test-\u00E9");
-			// Include the e-acute-accent from latin1
-		}
-	}
-
-	@Test
-	public void getMimeTypeMissing() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path mimetypePath = bundle.getRoot().resolve("mimetype");
-			Files.delete(mimetypePath);
-			// Fall back according to our spec
-			assertEquals("application/vnd.wf4ever.robundle+zip",
-					Bundles.getMimeType(bundle));
-		}
-	}
-
-	@Test(expected = IOException.class)
-	public void setMimeTypeMissing() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path mimetypePath = bundle.getRoot().resolve("mimetype");
-			Files.delete(mimetypePath);
-			// sadly now we can't set it (the mimetype file must be uncompressed
-			// and at beginning of file,
-			// which we don't have the possibility to do now that file system is
-			// open)
-			Bundles.setMimeType(bundle, "application/x-test");
-		}
-	}
-
-	@Test
-	public void getReference() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path hello = bundle.getRoot().resolve("hello");
-			Bundles.setReference(hello, URI.create("http://example.org/test"));
-			URI uri = Bundles.getReference(hello);
-			assertEquals("http://example.org/test", uri.toASCIIString());
-		}
-	}
-
-	@Test
-	public void getReferenceFromWin8() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path win8 = bundle.getRoot().resolve("win8");
-			Path win8Url = bundle.getRoot().resolve("win8.url");
-			Files.copy(getClass().getResourceAsStream("/win8.url"), win8Url);
-
-			URI uri = Bundles.getReference(win8);
-			assertEquals("http://example.com/made-in-windows-8",
-					uri.toASCIIString());
-		}
-	}
-
-	@Test
-	public void getStringValue() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path hello = bundle.getRoot().resolve("hello");
-			String string = "A string";
-			Bundles.setStringValue(hello, string);
-			assertEquals(string, Bundles.getStringValue(hello));
-			assertEquals(null, Bundles.getStringValue(null));
-		}
-	}
-
-	protected boolean isEmpty(Path path) throws IOException {
-		try (DirectoryStream<Path> ds = Files.newDirectoryStream(path)) {
-			return !ds.iterator().hasNext();
-		}
-	}
-
-	@Test
-	public void isMissing() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path missing = bundle.getRoot().resolve("missing");
-			assertFalse(Bundles.isValue(missing));
-			assertTrue(Bundles.isMissing(missing));
-			assertFalse(Bundles.isReference(missing));
-		}
-	}
-
-	@Test
-	public void isReference() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path ref = bundle.getRoot().resolve("ref");
-			Bundles.setReference(ref, URI.create("http://example.org/test"));
-			assertTrue(Bundles.isReference(ref));
-			assertFalse(Bundles.isMissing(ref));
-			assertFalse(Bundles.isValue(ref));
-		}
-	}
-
-	@Test
-	public void isValue() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-
-			Path hello = bundle.getRoot().resolve("hello");
-			Bundles.setStringValue(hello, "Hello");
-			assertTrue(Bundles.isValue(hello));
-			assertFalse(Bundles.isReference(hello));
-		}
-	}
-
-	protected List<String> ls(Path path) throws IOException {
-		List<String> paths = new ArrayList<>();
-		try (DirectoryStream<Path> ds = Files.newDirectoryStream(path)) {
-			for (Path p : ds) {
-				paths.add(p.getFileName() + "");
-			}
-		}
-		Collections.sort(paths);
-		return paths;
-	}
-
-	@Test
-	public void safeMove() throws Exception {
-		Path tmp = Files.createTempDirectory("test");
-		tmp.toFile().deleteOnExit();
-		Path f1 = tmp.resolve("f1");
-		f1.toFile().deleteOnExit();
-		Files.createFile(f1);
-		assertFalse(isEmpty(tmp));
-
-		try (Bundle db = Bundles.createBundle()) {
-			Path f2 = db.getRoot().resolve("f2");
-			Bundles.safeMove(f1, f2);
-			assertFalse(Files.exists(f1));
-			assertTrue(isEmpty(tmp));
-			assertEquals(Arrays.asList("f2", "mimetype"), ls(db.getRoot()));
-		}
-
-	}
-
-	private void checkWorkflowrunBundle(Bundle b) throws IOException {
-		Path path = b.getRoot().resolve("/workflowrun.prov.ttl");
-		assertTrue(Files.exists(path));
-		// Ensure manifest was read
-		Manifest manifest = b.getManifest();
-		PathMetadata aggregation = manifest.getAggregation(path);
-		assertNotNull(aggregation);
-		@SuppressWarnings("deprecation")
-		URI proxy = aggregation.getProxy();
-		if (proxy != null)// FIXME proxy is normally null here? WHY?
-			assertEquals(
-					URI.create("urn:uuid:ac1c89cc-3ba2-462d-bd82-ab5b8297f98e"),
-					proxy);
-	}
-
-	@Test
-	public void openBundleInputStream() throws Exception {
-		try (InputStream stream = getClass().getResourceAsStream(
-				"/workflowrun.bundle.zip")) {
-			assertNotNull(stream);
-			try (Bundle b = Bundles.openBundle(stream)) {
-				checkWorkflowrunBundle(b);
-			}
-		}
-	}
-
-	@Test
-	public void openBundleURL() throws Exception {
-		URL url = getClass().getResource("/workflowrun.bundle.zip");
-		assertNotNull(url);
-		try (Bundle b = Bundles.openBundle(url)) {
-			checkWorkflowrunBundle(b);
-		}
-	}
-
-	@Test
-	public void openBundleURLNonFile() throws Exception {
-		final URL url = getClass().getResource("/workflowrun.bundle.zip");
-		assertNotNull(url);
-		URLStreamHandler handler = new URLStreamHandler() {
-			@Override
-			protected URLConnection openConnection(URL u) throws IOException {
-				return url.openConnection();
-			}
-		};
-		URL testUrl = new URL("test", "test", 0, "test", handler);
-		try (Bundle b = Bundles.openBundle(testUrl)) {
-			checkWorkflowrunBundle(b);
-		}
-	}
-
-	@Test
-	public void openBundleReadOnly() throws Exception {
-		Path untouched = Files
-				.createTempFile("test-openBundleReadOnly", ".zip");
-		try (Bundle bundle = Bundles.createBundle(untouched)) {
-			Bundles.setStringValue(bundle.getRoot().resolve("file.txt"),
-					"Untouched");
-		}
-		try (Bundle readOnly = Bundles.openBundleReadOnly(untouched)) {
-			Path file = readOnly.getRoot().resolve("file.txt");
-			// You can change the open file system
-			Bundles.setStringValue(file, "Modified");
-			assertEquals("Modified", Bundles.getStringValue(file));
-			// and even make new resources
-			Path newFile = readOnly.getRoot().resolve("newfile.txt");
-			Files.createFile(newFile);
-			assertTrue(Files.exists(newFile));
-
-		}
-		try (Bundle readOnly = Bundles.openBundleReadOnly(untouched)) {
-			// But that is not persisted in the zip
-			Path file = readOnly.getRoot().resolve("file.txt");
-			assertEquals("Untouched", Bundles.getStringValue(file));
-			Path newfile = readOnly.getRoot().resolve("newfile.txt");
-			assertFalse(Files.exists(newfile));
-		}
-	}
-
-	@Test
-	public void safeCopy() throws Exception {
-		Path tmp = Files.createTempDirectory("test");
-		tmp.toFile().deleteOnExit();
-		Path f1 = tmp.resolve("f1");
-		f1.toFile().deleteOnExit();
-		Files.createFile(f1);
-		assertFalse(isEmpty(tmp));
-
-		try (Bundle db = Bundles.createBundle()) {
-			Path f2 = db.getRoot().resolve("f2");
-			Bundles.safeCopy(f1, f2);
-			assertTrue(Files.exists(f1));
-			assertTrue(Files.exists(f2));
-			assertEquals(Arrays.asList("f2", "mimetype"), ls(db.getRoot()));
-		}
-
-	}
-
-	@Test(expected = DirectoryNotEmptyException.class)
-	public void safeCopyFails() throws Exception {
-		Path tmp = Files.createTempDirectory("test");
-		tmp.toFile().deleteOnExit();
-		Path f1 = tmp.resolve("f1");
-		f1.toFile().deleteOnExit();
-		Path d1 = tmp.resolve("d1");
-		d1.toFile().deleteOnExit();
-		Files.createFile(f1);
-
-		// Make d1 difficult to overwrite
-		Files.createDirectory(d1);
-		Files.createFile(d1.resolve("child"));
-
-		try {
-			// Files.copy(f1, d1, StandardCopyOption.REPLACE_EXISTING);
-			Bundles.safeCopy(f1, d1);
-		} finally {
-			assertEquals(Arrays.asList("d1", "f1"), ls(tmp));
-			assertTrue(Files.exists(f1));
-			assertTrue(Files.isDirectory(d1));
-		}
-	}
-
-	@Test(expected = IOException.class)
-	public void safeMoveFails() throws Exception {
-		Path tmp = Files.createTempDirectory("test");
-		tmp.toFile().deleteOnExit();
-		Path f1 = tmp.resolve("f1");
-		f1.toFile().deleteOnExit();
-		Path d1 = tmp.resolve("d1");
-		d1.toFile().deleteOnExit();
-		Files.createFile(f1);
-
-		// Make d1 difficult to overwrite
-		Files.createDirectory(d1);
-		Files.createFile(d1.resolve("child"));
-
-		try {
-			Bundles.safeMove(f1, d1);
-		} finally {
-			assertTrue(Files.exists(f1));
-			assertEquals(Arrays.asList("d1", "f1"), ls(tmp));
-		}
-	}
-
-	@Test
-	public void setReference() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-
-			Path ref = bundle.getRoot().resolve("ref");
-			Bundles.setReference(ref, URI.create("http://example.org/test"));
-
-			URI uri = URI.create("http://example.org/test");
-			Path f = Bundles.setReference(ref, uri);
-			assertEquals("ref.url", f.getFileName().toString());
-			assertEquals(bundle.getRoot(), f.getParent());
-			assertFalse(Files.exists(ref));
-
-			List<String> uriLines = Files.readAllLines(f,
-					Charset.forName("ASCII"));
-			assertEquals(3, uriLines.size());
-			assertEquals("[InternetShortcut]", uriLines.get(0));
-			assertEquals("URL=http://example.org/test", uriLines.get(1));
-			assertEquals("", uriLines.get(2));
-		}
-	}
-
-	@Test
-	public void setReferenceIri() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path ref = bundle.getRoot().resolve("ref");
-			URI uri = new URI("http", "xn--bcher-kva.example.com",
-					"/s\u00F8iland/\u2603snowman", "\u2605star");
-			Path f = Bundles.setReference(ref, uri);
-			List<String> uriLines = Files.readAllLines(f,
-					Charset.forName("ASCII"));
-			// TODO: Double-check that this is actually correct escaping :)
-			assertEquals(
-					"URL=http://xn--bcher-kva.example.com/s%C3%B8iland/%E2%98%83snowman#%E2%98%85star",
-					uriLines.get(1));
-		}
-	}
-
-	@Test
-	public void setStringValue() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			Path file = bundle.getRoot().resolve("file");
-			String string = "A string";
-			Bundles.setStringValue(file, string);
-			assertEquals(string,
-					Files.readAllLines(file, Charset.forName("UTF-8")).get(0));
-		}
-	}
-
-	@Test
-	public void withExtension() throws Exception {
-		Path testDir = Files.createTempDirectory("test");
-		testDir.toFile().deleteOnExit();
-		Path fileTxt = testDir.resolve("file.txt");
-		fileTxt.toFile().deleteOnExit();
-		assertEquals("file.txt", fileTxt.getFileName().toString()); // better
-																	// be!
-
-		Path fileHtml = Bundles.withExtension(fileTxt, ".html");
-		assertEquals(fileTxt.getParent(), fileHtml.getParent());
-		assertEquals("file.html", fileHtml.getFileName().toString());
-
-		Path fileDot = Bundles.withExtension(fileTxt, ".");
-		assertEquals("file.", fileDot.getFileName().toString());
-
-		Path fileEmpty = Bundles.withExtension(fileTxt, "");
-		assertEquals("file", fileEmpty.getFileName().toString());
-
-		Path fileDoc = Bundles.withExtension(fileEmpty, ".doc");
-		assertEquals("file.doc", fileDoc.getFileName().toString());
-
-		Path fileManyPdf = Bundles.withExtension(fileTxt, ".test.many.pdf");
-		assertEquals("file.test.many.pdf", fileManyPdf.getFileName().toString());
-
-		Path fileManyTxt = Bundles.withExtension(fileManyPdf, ".txt");
-		assertEquals("file.test.many.txt", fileManyTxt.getFileName().toString());
-	}
-
-}


[49/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java b/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
deleted file mode 100644
index c5d692d..0000000
--- a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
+++ /dev/null
@@ -1,815 +0,0 @@
-package org.apache.taverna.databundle;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.DirectoryStream;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.taverna.databundle.DataBundles;
-import org.apache.taverna.databundle.ErrorDocument;
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-//import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.databind.JsonNode;
-//import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-
-public class TestDataBundles {
-	private Bundle dataBundle;
-
-    protected void checkSignature(Path zip) throws IOException {
-		String MEDIATYPE = "application/vnd.wf4ever.robundle+zip";
-		/*
-		 * Check position 30++ according to RO Bundle specification
-		 * http://purl.org/wf4ever/ro-bundle#ucf
-		 */
-		byte[] expected = ("mimetype" + MEDIATYPE + "PK").getBytes("ASCII");
-
-		try (InputStream in = Files.newInputStream(zip)) {
-			byte[] signature = new byte[expected.length];
-			int MIME_OFFSET = 30;
-			assertEquals(MIME_OFFSET, in.skip(MIME_OFFSET));
-			assertEquals(expected.length, in.read(signature));
-			assertArrayEquals(expected, signature);
-		}
-	}
-	
-	@Before
-	public void createDataBundle() throws IOException {
-	    dataBundle = DataBundles.createBundle();
-	}
-	
-	@After
-	public void closeDataBundle() throws IOException {
-	    dataBundle.close();
-	}
-	
-	@Test
-    public void clear() throws Exception {        
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path file1 = inputs.resolve("file1");
-        Path file1Txt = inputs.resolve("file1.txt");
-        Path file1Png = inputs.resolve("file1.png");
-        Path file1Else = inputs.resolve("file1somethingelse.txt");
-        
-        Files.createFile(file1);
-        Files.createFile(file1Txt);
-        Files.createFile(file1Png);
-        Files.createFile(file1Else); 
-        
-        DataBundles.deleteAllExtensions(file1);
-        
-        assertFalse(Files.exists(file1));
-        assertFalse(Files.exists(file1Txt));
-        assertFalse(Files.exists(file1Png));
-        assertTrue(Files.exists(file1Else));
-	}
-
-	   
-    @Test
-    public void clearRecursive() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path file1 = inputs.resolve("file1");
-        Path file1Dir = inputs.resolve("file1.dir");
-        
-        Files.createDirectory(file1);
-        Files.createDirectory(file1Dir);
-        Path nested = file1Dir.resolve("nested");
-        Files.createDirectory(nested);
-        
-        
-        Path filePng = file1Dir.resolve("file.png");
-        Path fileTxt = nested.resolve("file1somethingelse.txt");
-        
-        Files.createFile(filePng);
-        Files.createFile(fileTxt); 
-        
-        DataBundles.deleteAllExtensions(file1);
-        
-        assertFalse(Files.exists(file1));
-        assertFalse(Files.exists(nested));
-        assertFalse(Files.exists(file1Dir));
-        assertFalse(Files.exists(filePng));
-        assertFalse(Files.exists(fileTxt));
-    }
-
-	
-	@Test
-	public void createList() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path list = DataBundles.getPort(inputs, "in1");
-		DataBundles.createList(list);
-		assertTrue(Files.isDirectory(list));
-	}
-	
-	@Test
-	public void getError() throws Exception {	
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		DataBundles.setError(portIn1, "Something did not work", "A very\n long\n error\n trace");		
-		
-		ErrorDocument error = DataBundles.getError(portIn1);
-		assertTrue(error.getCausedBy().isEmpty());
-		
-		assertEquals("Something did not work", error.getMessage());
-		// Notice that the lack of trailing \n is preserved 
-		assertEquals("A very\n long\n error\n trace", error.getTrace());	
-		
-		assertEquals(null, DataBundles.getError(null));
-	}
-
-	@Test
-	public void getErrorCause() throws Exception {		
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		Path cause1 = DataBundles.setError(portIn1, "Something did not work", "A very\n long\n error\n trace");
-		Path portIn2 = DataBundles.getPort(inputs, "in2");
-		Path cause2 = DataBundles.setError(portIn2, "Something else did not work", "Shorter trace");
-		
-		
-		Path outputs = DataBundles.getOutputs(dataBundle);
-		Path portOut1 = DataBundles.getPort(outputs, "out1");
-		DataBundles.setError(portOut1, "Errors in input", "", cause1, cause2);
-
-		ErrorDocument error = DataBundles.getError(portOut1);
-		assertEquals("Errors in input", error.getMessage());
-		assertEquals("", error.getTrace());
-		assertEquals(2, error.getCausedBy().size());
-		
-		assertTrue(Files.isSameFile(cause1, error.getCausedBy().get(0)));
-		assertTrue(Files.isSameFile(cause2, error.getCausedBy().get(1)));
-	}
-
-	@Test
-	public void getInputs() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		assertTrue(Files.isDirectory(inputs));
-		// Second time should not fail because it already exists
-		inputs = DataBundles.getInputs(dataBundle);
-		assertTrue(Files.isDirectory(inputs));
-		assertEquals(dataBundle.getRoot(), inputs.getParent());
-	}
-
-	@Test
-	public void getList() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path list = DataBundles.getPort(inputs, "in1");
-		DataBundles.createList(list);
-		for (int i = 0; i < 5; i++) {
-			Path item = DataBundles.newListItem(list);
-			DataBundles.setStringValue(item, "test" + i);
-		}
-		List<Path> paths = DataBundles.getList(list);
-		assertEquals(5, paths.size());
-		assertEquals("test0", DataBundles.getStringValue(paths.get(0)));
-		assertEquals("test4", DataBundles.getStringValue(paths.get(4)));
-		
-		assertEquals(null, DataBundles.getList(null));
-	}
-
-	@Test
-	public void getListItem() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path list = DataBundles.getPort(inputs, "in1");
-		DataBundles.createList(list);
-		for (int i = 0; i < 5; i++) {
-			Path item = DataBundles.newListItem(list);
-			DataBundles.setStringValue(item, "item " + i);
-		}
-		// set at next available position
-		Path item5 = DataBundles.getListItem(list, 5);
-		assertTrue(item5.getFileName().toString().contains("5"));
-		DataBundles.setStringValue(item5, "item 5");
-	
-		
-		// set somewhere later
-		Path item8 = DataBundles.getListItem(list, 8);
-		assertTrue(item8.getFileName().toString().contains("8"));
-		DataBundles.setStringValue(item8, "item 8");
-		
-		Path item7 = DataBundles.getListItem(list, 7);
-		assertFalse(Files.exists(item7));
-		assertFalse(DataBundles.isList(item7));
-		assertFalse(DataBundles.isError(item7));
-		assertFalse(DataBundles.isValue(item7));
-		// TODO: Is it really missing? item1337 is also missing..
-		assertTrue(DataBundles.isMissing(item7));
-		
-		
-		// overwrite #2
-		Path item2 = DataBundles.getListItem(list, 2);		
-		DataBundles.setStringValue(item2, "replaced");
-		
-		
-		List<Path> listItems = DataBundles.getList(list);
-		assertEquals(9, listItems.size());
-		assertEquals("item 0", DataBundles.getStringValue(listItems.get(0)));
-		assertEquals("item 1", DataBundles.getStringValue(listItems.get(1)));
-		assertEquals("replaced", DataBundles.getStringValue(listItems.get(2)));
-		assertEquals("item 3", DataBundles.getStringValue(listItems.get(3)));
-		assertEquals("item 4", DataBundles.getStringValue(listItems.get(4)));
-		assertEquals("item 5", DataBundles.getStringValue(listItems.get(5)));
-		assertNull(listItems.get(6));
-		assertNull(listItems.get(7));
-		assertEquals("item 8", DataBundles.getStringValue(listItems.get(8)));
-		
-	}
-
-    @Test
-    public void getListSize() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path list = DataBundles.getPort(inputs, "in1");
-        DataBundles.createList(list);
-        for (int i = 0; i < 5; i++) {
-            Path item = DataBundles.newListItem(list);
-            DataBundles.setStringValue(item, "item " + i);
-        }
-        assertEquals(5, DataBundles.getListSize(list));
-
-        // set at next available position
-        Path item5 = DataBundles.getListItem(list, 5);
-        assertTrue(item5.getFileName().toString().contains("5"));
-        DataBundles.setStringValue(item5, "item 5");
-        assertEquals(6, DataBundles.getListSize(list));
-
-        // set somewhere beyond the end
-        Path item8 = DataBundles.getListItem(list, 8);
-        assertTrue(item8.getFileName().toString().contains("8"));
-        DataBundles.setStringValue(item8, "item 8");
-        assertEquals(9, DataBundles.getListSize(list));
-        
-        // Evil test - very high number
-        long highNumber = 3l * Integer.MAX_VALUE;
-        Path itemHigh = DataBundles.getListItem(list, highNumber);
-        assertTrue(itemHigh.getFileName().toString().contains(Long.toString(highNumber)));
-        DataBundles.setStringValue(itemHigh, "item 6442450941");
-        assertEquals(highNumber+1l, DataBundles.getListSize(list));
-    }
-	
-	@Test
-    public void getListItemChecksExtension() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path portIn1 = DataBundles.getPort(inputs, "in1");
-        Path list = DataBundles.newListItem(portIn1);
-        
-        Path item = DataBundles.newListItem(list);
-        
-        Path ref = DataBundles.setReference(item, URI.create("http://example.com/"));
-        Path itemAgain = DataBundles.getListItem(list, 0);
-        assertEquals(ref, itemAgain);
-        assertFalse(itemAgain.equals(portIn1));
-        assertTrue(Files.exists(itemAgain));
-    }
-
-	@Test
-	public void getOutputs() throws Exception {
-		Path outputs = DataBundles.getOutputs(dataBundle);
-		assertTrue(Files.isDirectory(outputs));
-		// Second time should not fail because it already exists
-		outputs = DataBundles.getOutputs(dataBundle);
-		assertTrue(Files.isDirectory(outputs));
-		assertEquals(dataBundle.getRoot(), outputs.getParent());
-	}
-	
-	@Test
-	public void getPort() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		assertFalse(Files.exists(portIn1));
-		assertEquals(inputs, portIn1.getParent());
-	}
-
-	@Test
-    public void getPortChecksExtension() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path portIn1 = DataBundles.getPort(inputs, "in1");
-        assertFalse(Files.exists(portIn1));
-        Path ref = DataBundles.setReference(portIn1, URI.create("http://example.com/"));
-        Path portIn1Again = DataBundles.getPort(inputs, "in1");
-        assertEquals(ref, portIn1Again);
-        assertFalse(portIn1Again.equals(portIn1));
-        assertTrue(Files.exists(portIn1Again));
-    }
-
-	@Test
-	public void getPorts() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		DataBundles.createList(DataBundles.getPort(inputs, "in1"));
-		DataBundles.createList(DataBundles.getPort(inputs, "in2"));
-		DataBundles.setStringValue(DataBundles.getPort(inputs, "value"),
-				"A value");
-		Map<String, Path> ports = DataBundles.getPorts(DataBundles
-				.getInputs(dataBundle));
-		assertEquals(3, ports.size());
-//		System.out.println(ports);
-		assertTrue(ports.containsKey("in1"));
-		assertTrue(ports.containsKey("in2"));
-		assertTrue(ports.containsKey("value"));
-
-		assertEquals("A value", DataBundles.getStringValue(ports.get("value")));
-
-	}
-
-	@Test
-	public void hasInputs() throws Exception {
-		assertFalse(DataBundles.hasInputs(dataBundle));
-		DataBundles.getInputs(dataBundle); // create on demand
-		assertTrue(DataBundles.hasInputs(dataBundle));
-	}
-
-	@Test
-	public void hasOutputs() throws Exception {
-		assertFalse(DataBundles.hasOutputs(dataBundle));
-		DataBundles.getInputs(dataBundle); // independent
-		assertFalse(DataBundles.hasOutputs(dataBundle));
-		DataBundles.getOutputs(dataBundle); // create on demand
-		assertTrue(DataBundles.hasOutputs(dataBundle));
-	}
-
-	@Test
-	public void isError() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		DataBundles.setError(portIn1, "Something did not work", "A very\n long\n error\n trace");		
-		
-		assertFalse(DataBundles.isList(portIn1));		
-		assertFalse(DataBundles.isValue(portIn1));
-		assertFalse(DataBundles.isMissing(portIn1));
-		assertFalse(DataBundles.isReference(portIn1));
-		assertTrue(DataBundles.isError(portIn1));		
-	}
-
-	@Test
-	public void isList() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path list = DataBundles.getPort(inputs, "in1");
-		DataBundles.createList(list);
-		assertTrue(DataBundles.isList(list));
-		assertFalse(DataBundles.isValue(list));
-		assertFalse(DataBundles.isError(list));
-		assertFalse(DataBundles.isReference(list));
-		assertFalse(DataBundles.isMissing(list));
-	}
-	
-	@Test
-	public void isMissing() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		
-		assertFalse(DataBundles.isList(portIn1));		
-		assertFalse(DataBundles.isValue(portIn1));
-		assertFalse(DataBundles.isError(portIn1));
-		assertTrue(DataBundles.isMissing(portIn1));
-		assertFalse(DataBundles.isReference(portIn1));
-	}
-
-	@Test
-    public void isValueOnError() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        DataBundles.setError(DataBundles.getPort(inputs, "test"),
-                "error", "");
-        assertFalse(DataBundles.isValue(DataBundles.getPorts(inputs).get("test")));
-    }
-	
-	@Test
-    public void isValueOnReference() throws Exception {
-	    Path inputs = DataBundles.getInputs(dataBundle);
-	    DataBundles.setReference(DataBundles.getPort(inputs, "test"), URI.create("http://www.example.com/"));
-	    assertFalse(DataBundles.isValue(DataBundles.getPorts(inputs).get("test")));
-    }
-	
-	@Test
-	public void listOfLists() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path list = DataBundles.getPort(inputs, "in1");
-		DataBundles.createList(list);
-		Path sublist0 = DataBundles.newListItem(list);
-		DataBundles.createList(sublist0);
-		
-		Path sublist1 = DataBundles.newListItem(list);
-		DataBundles.createList(sublist1);
-		
-		assertEquals(Arrays.asList("0/", "1/"), ls(list));
-		
-		DataBundles.setStringValue(DataBundles.newListItem(sublist1), 
-				"Hello");
-		
-		assertEquals(Arrays.asList("0"), ls(sublist1));
-		
-		assertEquals("Hello",DataBundles.getStringValue( 
-				DataBundles.getListItem(DataBundles.getListItem(list, 1), 0)));
-	}
-
-	
-	
-	protected List<String> ls(Path path) throws IOException {
-		List<String> paths = new ArrayList<>();
-		try (DirectoryStream<Path> ds = Files.newDirectoryStream(path)) {
-			for (Path p : ds) {
-				paths.add(p.getFileName() + "");
-			}
-		}
-		Collections.sort(paths);
-		return paths;
-	}
-	
-	@Test(expected=FileAlreadyExistsException.class)
-    public void newListAlreadyExistsAsError() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path list = DataBundles.getPort(inputs, "in1");
-        Path err = DataBundles.setError(list, "a", "b");
-        assertFalse(Files.isRegularFile(list));
-        assertFalse(Files.isDirectory(list));
-        assertTrue(Files.isRegularFile(err));                
-        DataBundles.createList(list);
-    }
-	
-	@Test(expected=FileAlreadyExistsException.class)
-    public void newListAlreadyExistsAsFile() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path list = DataBundles.getPort(inputs, "in1");
-        DataBundles.setStringValue(list, "A string");
-        assertTrue(Files.isRegularFile(list));
-        assertFalse(Files.isDirectory(list));
-        DataBundles.createList(list);
-    }
-	
-
-    @Test(expected=FileAlreadyExistsException.class)
-    public void newListAlreadyExistsAsReference() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path list = DataBundles.getPort(inputs, "in1");
-        Path ref = DataBundles.setReference(list, URI.create("http://example.com/"));
-        assertFalse(Files.isRegularFile(list));
-        assertFalse(Files.isDirectory(list));
-        assertTrue(Files.isRegularFile(ref));                
-        DataBundles.createList(list);
-    }
-    
-    @Test
-	public void newListItem() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path list = DataBundles.getPort(inputs, "in1");
-		DataBundles.createList(list);
-		Path item0 = DataBundles.newListItem(list);
-		assertEquals(list, item0.getParent());
-		assertTrue(item0.getFileName().toString().contains("0"));
-		assertFalse(Files.exists(item0));
-		DataBundles.setStringValue(item0, "test");
-
-		Path item1 = DataBundles.newListItem(list);
-		assertTrue(item1.getFileName().toString().contains("1"));
-		// Because we've not actually created item1 yet
-		assertEquals(item1, DataBundles.newListItem(list));
-		DataBundles.setStringValue(item1, "test");
-
-		// Check that DataBundles.newListItem can deal with gaps
-		Files.delete(item0);
-		Path item2 = DataBundles.newListItem(list);
-		assertTrue(item2.getFileName().toString().contains("2"));
-
-		// Check that non-numbers don't interfere
-		Path nonumber = list.resolve("nonumber");
-		Files.createFile(nonumber);
-		item2 = DataBundles.newListItem(list);
-		assertTrue(item2.getFileName().toString().contains("2"));
-
-		// Check that extension is stripped
-		Path five = list.resolve("5.txt");
-		Files.createFile(five);
-		Path item6 = DataBundles.newListItem(list);
-		assertTrue(item6.getFileName().toString().contains("6"));
-	}
-    
-    @Test
-	public void setErrorArgs() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		Path errorPath = DataBundles.setError(portIn1, "Something did not work", "A very\n long\n error\n trace");		
-		assertEquals("in1.err", errorPath.getFileName().toString());
-
-		List<String> errLines = Files.readAllLines(errorPath, Charset.forName("UTF-8"));
-		assertEquals(6, errLines.size());
-		assertEquals("", errLines.get(0));
-		assertEquals("Something did not work", errLines.get(1));
-		assertEquals("A very", errLines.get(2));
-		assertEquals(" long", errLines.get(3));
-		assertEquals(" error", errLines.get(4));
-		assertEquals(" trace", errLines.get(5));
-	}
-
-    @Test
-	public void setErrorCause() throws Exception {		
-		Path inputs = DataBundles.getInputs(dataBundle);
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		Path cause1 = DataBundles.setError(portIn1, "Something did not work", "A very\n long\n error\n trace");
-		Path portIn2 = DataBundles.getPort(inputs, "in2");
-		Path cause2 = DataBundles.setError(portIn2, "Something else did not work", "Shorter trace");
-		
-		
-		Path outputs = DataBundles.getOutputs(dataBundle);
-		Path portOut1 = DataBundles.getPort(outputs, "out1");
-		Path errorPath = DataBundles.setError(portOut1, "Errors in input", "", cause1, cause2);
-		
-		List<String> errLines = Files.readAllLines(errorPath, Charset.forName("UTF-8"));
-		assertEquals("../inputs/in1.err", errLines.get(0));
-		assertEquals("../inputs/in2.err", errLines.get(1));
-		assertEquals("", errLines.get(2));
-	}
-
-    @Test
-    public void setErrorExistsAsError() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        Path err = DataBundles.setError(in1, "a", "b");
-        assertFalse(Files.exists(in1));
-        assertTrue(Files.isRegularFile(err));
-        DataBundles.setError(in1, "c", "d");
-        assertEquals("c", DataBundles.getError(in1).getMessage());
-    }
-
-    @Test(expected=FileAlreadyExistsException.class)
-    public void setErrorExistsAsList() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path list = DataBundles.getPort(inputs, "in1");
-        DataBundles.createList(list);
-        assertFalse(Files.isRegularFile(list));
-        assertTrue(Files.isDirectory(list));
-        DataBundles.setError(list, "a", "b");
-    }
-
-	@Test(expected=FileAlreadyExistsException.class)
-    public void setErrorExistsAsReference() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        Path ref = DataBundles.setReference(in1, URI.create("http://example.com/"));
-        assertFalse(Files.exists(in1));
-        assertTrue(Files.isRegularFile(ref));
-        DataBundles.setError(in1, "a", "b");
-    }
-	
-    @Test(expected=FileAlreadyExistsException.class)
-    public void setErrorExistsAsValue() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        DataBundles.setStringValue(in1, "test");
-        assertTrue(Files.isRegularFile(in1));
-        DataBundles.setError(in1, "a", "b");
-    }
-	
-	@Test
-	public void setErrorObj() throws Exception {
-		Path inputs = DataBundles.getInputs(dataBundle);
-
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-		Path cause1 = DataBundles.setError(portIn1, "a", "b");
-		Path portIn2 = DataBundles.getPort(inputs, "in2");
-		Path cause2 = DataBundles.setError(portIn2, "c", "d");
-		
-		
-		Path outputs = DataBundles.getOutputs(dataBundle);
-		Path portOut1 = DataBundles.getPort(outputs, "out1");
-
-		ErrorDocument error = new ErrorDocument();
-		error.getCausedBy().add(cause1);
-		error.getCausedBy().add(cause2);
-		
-		error.setMessage("Something did not work");
-		error.setTrace("Here\nis\nwhy\n");
-		
-		Path errorPath = DataBundles.setError(portOut1, error);		
-		assertEquals("out1.err", errorPath.getFileName().toString());
-
-		List<String> errLines = Files.readAllLines(errorPath, Charset.forName("UTF-8"));
-		assertEquals(8, errLines.size());
-		assertEquals("../inputs/in1.err", errLines.get(0));
-		assertEquals("../inputs/in2.err", errLines.get(1));
-		assertEquals("", errLines.get(2));
-		assertEquals("Something did not work", errLines.get(3));
-		assertEquals("Here", errLines.get(4));
-		assertEquals("is", errLines.get(5));
-		assertEquals("why", errLines.get(6));
-		assertEquals("", errLines.get(7));
-	}
-	
-    @Test(expected = FileAlreadyExistsException.class)
-    public void setReferenceExistsAsError() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        Path err = DataBundles.setError(in1, "a", "b");
-        assertFalse(Files.exists(in1));
-        assertTrue(Files.isRegularFile(err));
-        DataBundles.setReference(in1, URI.create("http://example.com/"));
-    }
-	
-    @Test(expected = FileAlreadyExistsException.class)
-    public void setReferenceExistsAsList() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        DataBundles.createList(in1);
-        assertTrue(Files.isDirectory(in1));
-        DataBundles.setReference(in1, URI.create("http://example.com/"));
-    }
-
-    @Test
-    public void setReferenceExistsAsReference() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        Path ref = DataBundles.setReference(in1, URI.create("http://example.com/"));
-        assertFalse(Files.exists(in1));
-        assertTrue(Files.isRegularFile(ref));
-        DataBundles.setReference(in1, URI.create("http://example.com/"));
-    }
-    
-
-    @Test(expected = FileAlreadyExistsException.class)
-    public void setReferenceExistsAsValue() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        DataBundles.setStringValue(in1, "Hello");
-        assertTrue(Files.isRegularFile(in1));
-        DataBundles.setReference(in1, URI.create("http://example.com/"));
-    }
-    
-    @Test(expected=FileAlreadyExistsException.class)
-    public void setStringExistsAsError() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        Path err = DataBundles.setError(in1, "x", "X");
-        assertFalse(Files.exists(in1));
-        assertTrue(Files.isRegularFile(err));
-        DataBundles.setStringValue(in1, "Hello");
-    }
-
-    
-    @Test(expected=FileAlreadyExistsException.class)
-    public void setStringExistsAsList() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        DataBundles.createList(in1);
-        assertTrue(Files.isDirectory(in1));
-        DataBundles.setStringValue(in1, "Hello");
-    }
-    
-    
-
-    @Test(expected=FileAlreadyExistsException.class)
-    public void setStringExistsAsReference() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        Path ref = DataBundles.setReference(in1, URI.create("http://example.com/"));
-        assertFalse(Files.exists(in1));
-        assertTrue(Files.isRegularFile(ref));
-        DataBundles.setStringValue(in1, "Hello");
-    }
-
-    @Test
-    public void setStringExistsAsString() throws Exception {
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path in1 = DataBundles.getPort(inputs, "in1");
-        DataBundles.setStringValue(in1, "A");
-        assertTrue(Files.isRegularFile(in1));
-        DataBundles.setStringValue(in1, "B");
-        assertEquals("B", DataBundles.getStringValue(in1));
-    }
-
-    @Test
-    public void getIntermediates() throws Exception {
-        Path intermediates = DataBundles.getIntermediates(dataBundle);
-        assertEquals("/intermediates", intermediates.toString());
-        assertTrue(Files.isDirectory(intermediates));
-    }
-
-    
-    @Test(expected=FileAlreadyExistsException.class)
-    public void getIntermediatesFails() throws Exception {
-        Path intermediates = DataBundles.getIntermediates(dataBundle);
-        Files.delete(intermediates);
-        Files.createFile(intermediates);
-        DataBundles.getIntermediates(dataBundle);
-    }
-    
-    @Test
-    public void getIntermediate() throws Exception {
-        UUID uuid = UUID.randomUUID();
-        Path inter = DataBundles.getIntermediate(dataBundle, uuid);
-        assertFalse(Files.exists(inter));
-        DataBundles.setStringValue(inter, "intermediate");
-        Path parent = inter.getParent();
-        assertEquals(dataBundle.getRoot().resolve("intermediates"), parent.getParent());
-        String parentName = parent.getFileName().toString();
-        assertEquals(2, parentName.length());
-        assertTrue(uuid.toString().startsWith(parentName));
-        // Filename is a valid string
-        String interFileName = inter.getFileName().toString();
-        assertTrue(interFileName.startsWith(parentName));
-        assertEquals(uuid, UUID.fromString(interFileName));
-    }
-    
-    @Test
-    public void getWorkflow() throws Exception {
-        Path wf = DataBundles.getWorkflow(dataBundle);
-        assertEquals("/workflow", wf.toString());
-    }
-
-    @Test
-    public void setWorkflowBundle() throws Exception {
-        WorkflowBundleIO wfBundleIO = new WorkflowBundleIO();
-        WorkflowBundle wfBundle = wfBundleIO.createBundle();
-        DataBundles.setWorkflowBundle(dataBundle, wfBundle);
-        
-        Path wf = DataBundles.getWorkflow(dataBundle);
-        assertEquals("/workflow.wfbundle", wf.toString());        
-        assertEquals("application/vnd.taverna.scufl2.workflow-bundle", 
-                Files.probeContentType(wf));
-    }
-
-    @Ignore
-    @Test
-    public void getWorkflowBundle() throws Exception {
-        WorkflowBundleIO wfBundleIO = new WorkflowBundleIO();
-        WorkflowBundle wfBundle = wfBundleIO.createBundle();
-        
-        String name = wfBundle.getName();
-        String wfName = wfBundle.getMainWorkflow().getName();
-        URI id = wfBundle.getIdentifier();
-        
-        DataBundles.setWorkflowBundle(dataBundle, wfBundle);
-
-        // Reload the bundle
-        wfBundle = DataBundles.getWorkflowBundle(dataBundle);        
-        assertEquals(name, wfBundle.getName());
-        assertEquals(wfName, wfBundle.getMainWorkflow().getName());        
-        assertEquals(id, wfBundle.getIdentifier());        
-    }
-
-    @Test
-    public void getWorkflowReport() throws Exception {
-        Path runReport = DataBundles.getWorkflowRunReport(dataBundle);
-        assertEquals("/workflowrun.json", runReport.toString());
-    }
-    
-    @Test
-    public void getWorkflowReportAsJson() throws Exception {        
-        Path runReport = DataBundles.getWorkflowRunReport(dataBundle);
-        DataBundles.setStringValue(runReport, "{ \"valid\": \"not really\", \"number\": 1337 }");
-        JsonNode json = DataBundles.getWorkflowRunReportAsJson(dataBundle);
-        assertEquals("not really", json.path("valid").asText());
-        assertEquals(1337, json.path("number").asInt());
-    }
-    
-    @Test
-    public void setWorkflowReport() throws Exception {
-        ObjectNode report = JsonNodeFactory.instance.objectNode();
-        report.put("number", 1337);
-        DataBundles.setWorkflowRunReport(dataBundle, report);
-        Path runReport = DataBundles.getWorkflowRunReport(dataBundle);
-        String json = DataBundles.getStringValue(runReport);
-        assertTrue(json.contains("number"));
-        assertTrue(json.contains("1337"));
-    }
-    
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestExample.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestExample.java b/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestExample.java
deleted file mode 100644
index f300b8b..0000000
--- a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestExample.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package org.apache.taverna.databundle;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.awt.Desktop;
-import java.io.OutputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.StandardOpenOption;
-import java.util.List;
-import java.util.NavigableMap;
-
-import org.apache.taverna.databundle.DataBundles;
-import org.apache.taverna.databundle.ErrorDocument;
-import org.apache.taverna.robundle.Bundle;
-import org.junit.Test;
-
-public class TestExample {
-	@Test
-	public void example() throws Exception {
-		// Create a new (temporary) data bundle
-		Bundle dataBundle = DataBundles.createBundle();
-
-		// Get the inputs
-		Path inputs = DataBundles.getInputs(dataBundle);
-
-		// Get an input port:
-		Path portIn1 = DataBundles.getPort(inputs, "in1");
-
-		// Setting a string value for the input port:
-		DataBundles.setStringValue(portIn1, "Hello");
-
-		// And retrieving it
-		if (DataBundles.isValue(portIn1)) {
-			System.out.println(DataBundles.getStringValue(portIn1));
-		}
-
-		// Or just use the regular Files methods:
-		for (String line : Files
-				.readAllLines(portIn1, Charset.forName("UTF-8"))) {
-			System.out.println(line);
-		}
-
-		// Binaries and large files are done through the Files API
-		try (OutputStream out = Files.newOutputStream(portIn1,
-				StandardOpenOption.APPEND)) {
-			out.write(32);
-		}
-		// Or Java 7 style
-		Path localFile = Files.createTempFile("", ".txt");
-		Files.copy(portIn1, localFile, StandardCopyOption.REPLACE_EXISTING);
-		System.out.println("Written to: " + localFile);
-
-		// Either way works, of course
-		Path outputs = DataBundles.getOutputs(dataBundle);
-		Files.copy(localFile,
-				DataBundles.getPort(outputs, "out1"));
-
-
-		// When you get a port, it can become either a value or a list
-		Path port2 = DataBundles.getPort(inputs, "port2");
-		DataBundles.createList(port2); // empty list		
-		if (DataBundles.isList(port2)) {
-			List<Path> list = DataBundles.getList(port2);
-			assertTrue(list.isEmpty());
-		}
-
-		// Adding items sequentially
-		Path item0 = DataBundles.newListItem(port2);
-		DataBundles.setStringValue(item0, "item 0");
-		DataBundles.setStringValue(DataBundles.newListItem(port2), "item 1");
-		DataBundles.setStringValue(DataBundles.newListItem(port2), "item 2");
-		
-		
-		// Set and get by explicit position:
-		DataBundles.setStringValue(DataBundles.getListItem(port2, 12), "item 12");
-		System.out.println(DataBundles.getStringValue(DataBundles.getListItem(port2, 2)));
-		
-		// The list is sorted numerically (e.g. 2, 5, 10) and
-		// will contain nulls for empty slots
-		System.out.println(DataBundles.getList(port2));
-
-		// Ports can be browsed as a map by port name
-		NavigableMap<String, Path> ports = DataBundles.getPorts(inputs);
-		System.out.println(ports.keySet());
-
-		// Is there anything known about a port?
-		if (! DataBundles.isMissing(DataBundles.getPort(outputs, "out3"))) {
-			// DataBundles.getPorts(outputs).containsKey("out3")
-			
-		}
-		
-		// Representing errors		
-		Path out2 = DataBundles.getPort(outputs, "out2");		
-		DataBundles.setError(out2, "Something did not work", "A very\n long\n error\n trace");		
-
-		// Retrieving errors
-		if (DataBundles.isError(out2)) {
-			ErrorDocument error = DataBundles.getError(out2);
-			System.out.println("Error: " + error.getMessage());
-		}
-		
-		// Representing references
-		URI ref = URI.create("http://example.com/external.txt");
-		Path out3 = DataBundles.getPort(outputs, "out3");
-		System.out.println(DataBundles.setReference(out3, ref));
-		if (DataBundles.isReference(out3)) {
-			URI resolved = DataBundles.getReference(out3);
-			System.out.println(resolved);
-		}
-
-		
-		
-		
-		// Saving a data bundle:
-		Path zip = Files.createTempFile("databundle", ".zip");
-		DataBundles.closeAndSaveBundle(dataBundle, zip);
-		// NOTE: From now dataBundle and its Path's are CLOSED 
-		// and can no longer be accessed
-		
-		
-		System.out.println("Saved to " + zip);
-		if (Desktop.isDesktopSupported()) {
-			// Open ZIP file for browsing
-			Desktop.getDesktop().open(zip.toFile());
-		}
-		
-		// Loading a data bundle back from disk
-		try (Bundle dataBundle2 = DataBundles.openBundle(zip)) {
-			assertEquals(zip, dataBundle2.getSource());
-			Path loadedInputs = DataBundles.getInputs(dataBundle2);
-			
-			for (Path port : DataBundles.getPorts(loadedInputs).values()) {
-				if (DataBundles.isValue(port)) {
-					System.out.print("Value " + port + ": ");
-					System.out.println(DataBundles.getStringValue(port));
-				} else if (DataBundles.isList(port)) {
-					System.out.print("List " + port + ": ");
-					for (Path item : DataBundles.getList(port)) {
-						// We'll assume depth 1 here
-						System.out.print(DataBundles.getStringValue(item));
-						System.out.print(", ");
-					}
-					System.out.println();
-				}				
-			}			
-		}				
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestFullExample.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestFullExample.java b/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestFullExample.java
deleted file mode 100644
index ca6e1e1..0000000
--- a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestFullExample.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package org.apache.taverna.databundle;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URL;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.taverna.databundle.DataBundles;
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.junit.Test;
-
-
-public class TestFullExample {
-
-    private static String RUN = "/full-example/ebi-wfrun-2013-05-31/";
-
-    private static WorkflowBundleIO wfBundleIO = new WorkflowBundleIO();
-
-    @Test
-    public void writeExample() throws Exception {
-        // Create a new (temporary) data bundle
-        Bundle dataBundle = DataBundles.createBundle();
-
-        // The run as currently saved to a folder by prov-taverna 1.10
-        URL runResource = getClass().getResource(RUN);
-        Path runPath = Paths.get(runResource.toURI());
-
-        assertTrue(Files.isDirectory(runPath));
-
-        // In order to preserve existing file extensions we copy as files
-        // rather than using the higher-level methods like
-        // DataBundles.setStringValue()
-
-        // Inputs
-        Path inputs = DataBundles.getInputs(dataBundle);
-        for (String filename : Arrays.asList("email.txt", "sequence.txt")) {
-            Files.copy(runPath.resolve(filename), inputs.resolve(filename));
-        }
-
-        // Outputs
-        Path outputs = DataBundles.getOutputs(dataBundle);
-        for (String filename : Arrays.asList("getResult_3_output_output.xml",
-                "getResult_output_output.octet-stream", "Graphical_output.png",
-                "Workflow16_getStatus_output_status.txt")) {
-            Files.copy(runPath.resolve(filename), outputs.resolve(filename));
-        }
-
-        // Provenance
-        Files.copy(runPath.resolve("workflowrun.prov.ttl"),
-                DataBundles.getWorkflowRunProvenance(dataBundle));
-
-        // Workflow
-        WorkflowBundle wfBundle = wfBundleIO.readBundle(
-                runPath.resolveSibling(
-                        "ebi_interproscan_newservices_900329.t2flow").toFile(),
-                null);
-        DataBundles.setWorkflowBundle(dataBundle, wfBundle);
-
-        // Intermediate values
-        DataBundles.copyRecursively(runPath.resolve("intermediates"),
-                DataBundles.getIntermediates(dataBundle),
-                StandardCopyOption.REPLACE_EXISTING);
-
-        // Generate Manifest
-        // TODO: This should be done automatically on close/save
-        Manifest manifest = new Manifest(dataBundle);
-        manifest.populateFromBundle();
-        manifest.writeAsJsonLD();
-
-        // Saving a data bundle:
-        Path zip = Files.createTempFile("databundle", ".zip");
-        DataBundles.closeAndSaveBundle(dataBundle, zip);
-        // NOTE: From now dataBundle and its Path's are CLOSED
-        // and can no longer be accessed
-
-        //System.out.println("Saved to " + zip);
-
-        // Loading a data bundle back from disk
-        try (Bundle dataBundle2 = DataBundles.openBundle(zip)) {
-            assertEquals(zip, dataBundle2.getSource());
-
-			List<String> s = new ArrayList<>(DataBundles.getPorts(
-					DataBundles.getInputs(dataBundle2)).keySet());
-			Collections.sort(s);
-			assertEquals("[email, sequence]", s.toString());
-			assertEquals(
-					"soiland-reyes@cs.manchester.ac.uk",
-					DataBundles.getStringValue(DataBundles.getPort(
-							DataBundles.getInputs(dataBundle2), "email")));
-			s = new ArrayList<>(DataBundles.getPorts(
-					DataBundles.getOutputs(dataBundle2)).keySet());
-			Collections.sort(s);
-			assertEquals(
-					"[Graphical_output, Workflow16_getStatus_output_status, "
-					+ "getResult_3_output_output, getResult_output_output]",
-					s.toString());
-			assertEquals("FINISHED", DataBundles.getStringValue(DataBundles
-					.getPort(DataBundles.getOutputs(dataBundle2),
-							"Workflow16_getStatus_output_status")));
-            
-            UUID uuid = UUID.fromString("1f536bcf-ba43-44ec-a983-b30a45f2b739");
-            Path intermediate = DataBundles.getIntermediate(dataBundle2, uuid); 
-            String intermediateStr = DataBundles.getStringValue(intermediate);
-            assertTrue(intermediateStr.contains("<status>RUNNING</status>"));
-            
-            Path prov = DataBundles.getWorkflowRunProvenance(dataBundle2);
-            List<String> provLines = Files.readAllLines(prov, Charset.forName("UTF8"));
-            assertEquals("	prov:startedAtTime \"2013-05-31T11:23:10.463+01:00\"^^xsd:dateTime ;",
-            		provLines.get(15));
-            
-            WorkflowBundle wfb = DataBundles.getWorkflowBundle(dataBundle2);
-            assertEquals("EBI_InterproScan_NewServices", wfb.getName());
-            s=new ArrayList<>();
-            for (Workflow w : wfb.getWorkflows()) {
-                for (Processor p : w.getProcessors()) {
-                	s.add(p.getName());
-                }
-            }
-            Collections.sort(s);
-            assertEquals("[Status, getResult, getResult_graphic, getResult_graphic_input, "
-            		+ "getResult_graphic_output, getResult_input, getResult_output, getResult_xml, "
-            		+ "getResult_xml_input, getResult_xml_output, getStatus, getStatus_input, "
-            		+ "getStatus_output, run, run_input, run_input_2, run_output, text, visual_png, "
-            		+ "xml]", s.toString());
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Graphical_output.png
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Graphical_output.png b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Graphical_output.png
deleted file mode 100644
index 39a1065..0000000
Binary files a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Graphical_output.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Workflow16_getStatus_output_status.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Workflow16_getStatus_output_status.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Workflow16_getStatus_output_status.txt
deleted file mode 100644
index 067b935..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/Workflow16_getStatus_output_status.txt
+++ /dev/null
@@ -1 +0,0 @@
-FINISHED
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/email.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/email.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/email.txt
deleted file mode 100644
index 9fa7ae4..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/email.txt
+++ /dev/null
@@ -1 +0,0 @@
-soiland-reyes@cs.manchester.ac.uk
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_3_output_output.xml
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_3_output_output.xml b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_3_output_output.xml
deleted file mode 100644
index 7c0d400..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_3_output_output.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<EBIInterProScanResults xmlns="http://www.ebi.ac.uk/Tools/common/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ebi.ac.uk/Tools/common/schema/InterProScanResult.xsd">
-	<Header>
-		<program name="InterProScan" version="4.8" citation="PMID:11590104"/>
-		<parameters>
-			<sequences total="1"/>
-			<databases total="16">
-				<database number="1" name="PRODOM" type="sequences"/>
-				<database number="2" name="COIL" type="matrix"/>
-				<database number="3" name="PRINTS" type="matrix"/>
-				<database number="4" name="GENE3D" type="model"/>
-				<database number="5" name="HAMAP" type="strings"/>
-				<database number="6" name="PANTHER" type="model"/>
-				<database number="7" name="PFAM" type="model"/>
-				<database number="8" name="PIR" type="model"/>
-				<database number="9" name="SMART" type="model"/>
-				<database number="10" name="TIGRFAMs" type="model"/>
-				<database number="11" name="PROSITE" type="strings"/>
-				<database number="12" name="PROFILE" type="strings"/>
-				<database number="13" name="SEG" type="NA"/>
-				<database number="14" name="SIGNALP" type="model"/>
-				<database number="15" name="SUPERFAMILY" type="model"/>
-				<database number="16" name="TMHMM" type="model"/>
-			</databases>
-		</parameters>
-	</Header>
-<interpro_matches>
-
-   <protein id="TMM43_HUMAN" length="400" crc64="70FDDD4ED1AA11DF">
-	<interpro id="IPR012430" name="Transmembrane protein 43 family" type="Family">
-	  <match id="PTHR13416" name="UNCHARACTERIZED" dbname="PANTHER">
-	    <location start="1" end="400" score="2.8e-209" status="T" evidence="HMMPanther"/>
-	  </match>
-	  <match id="PF07787" name="DUF1625" dbname="PFAM">
-	    <location start="121" end="373" score="5.2e-82" status="T" evidence="HMMPfam"/>
-	  </match>
-	</interpro>
-	<interpro id="noIPR" name="unintegrated" type="unintegrated">
-	  <match id="PTHR13416:SF0" name="SUBFAMILY NOT NAMED" dbname="PANTHER">
-	    <location start="1" end="400" score="2.8e-209" status="T" evidence="HMMPanther"/>
-	  </match>
-	  <match id="tmhmm" name="transmembrane_regions" dbname="TMHMM">
-	    <location start="33" end="51" score="NA" status="?" evidence="TMHMM"/>
-	    <location start="313" end="331" score="NA" status="?" evidence="TMHMM"/>
-	    <location start="350" end="370" score="NA" status="?" evidence="TMHMM"/>
-	    <location start="375" end="395" score="NA" status="?" evidence="TMHMM"/>
-	  </match>
-	</interpro>
-   </protein>
-
-</interpro_matches>
-</EBIInterProScanResults>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_output_output.octet-stream
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_output_output.octet-stream b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_output_output.octet-stream
deleted file mode 100644
index 778c00d..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/getResult_output_output.octet-stream
+++ /dev/null
@@ -1,12 +0,0 @@
-Sequence "TMM43_HUMAN" crc64 checksum: 70FDDD4ED1AA11DF length: 400 aa.
-
-InterPro       IPR012430      Transmembrane protein 43 family
-method         AccNumber      shortName                               location
-HMMPanther     PTHR13416      UNCHARACTERIZED                         T[1-400] 2.8e-209
-HMMPfam        PF07787        DUF1625                                 T[121-373] 5.2e-82
-
-InterPro       NULL           NULL
-method         AccNumber      shortName                               location
-HMMPanther     PTHR13416:SF0  SUBFAMILY NOT NAMED                     T[1-400] 2.8e-209
-TMHMM          tmhmm          transmembrane_regions                   ?[33-51] NA ?[313-331] NA ?[350-370] NA ?[375-395] NA
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/00/00548907-43e1-4484-9582-bfa8727d44ca.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/00/00548907-43e1-4484-9582-bfa8727d44ca.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/00/00548907-43e1-4484-9582-bfa8727d44ca.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/00/00548907-43e1-4484-9582-bfa8727d44ca.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/07/079d289b-796e-45cf-a759-82f91a0aa3d5.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/07/079d289b-796e-45cf-a759-82f91a0aa3d5.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/07/079d289b-796e-45cf-a759-82f91a0aa3d5.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/07/079d289b-796e-45cf-a759-82f91a0aa3d5.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0a/0a2b3aa2-5b11-433d-b48f-1009424bb486.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0a/0a2b3aa2-5b11-433d-b48f-1009424bb486.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0a/0a2b3aa2-5b11-433d-b48f-1009424bb486.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0a/0a2b3aa2-5b11-433d-b48f-1009424bb486.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0b/0bd05e27-46d6-4de5-b76b-0988638f9231.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0b/0bd05e27-46d6-4de5-b76b-0988638f9231.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0b/0bd05e27-46d6-4de5-b76b-0988638f9231.txt
deleted file mode 100644
index 6be3b40..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0b/0bd05e27-46d6-4de5-b76b-0988638f9231.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><email xmlns="">soiland-reyes@cs.manchester.ac.uk</email><parameters xmlns=""><sequence>&gt;sp|Q9BTV4|TMM43_HUMAN Transmembrane protein 43 OS=Homo sapiens GN=TMEM43 PE=1 SV=1
-MAANYSSTSTRREHVKVKTSSQPGFLERLSETSGGMFVGLMAFLLSFYLIFTNEGRALKT
-ATSLAEGLSLVVSPDSIHSVAPENEGRLVHIIGALRTSKLLSDPNYGVHLPAVKLRRHVE
-MYQWVETEESREYTEDGQVKKETRYSYNTEWRSEIINSKNFDREIGHKNPSAMAVESFMA
-TAPFVQIGRFFLSSGLIDKVDNFKSLSLSKLEDPHVDIIRRGDFFYHSENPKYPEVGDLR
-VSFSYAGLSGDDPDLGPAHVVTVIARQRGDQLVPFSTKSGDTLLLLHHGDFSAEEVFHRE
-LRSNSMKTWGLRAAGWMAMFMGLNLMTRILYTLVDWFPVFRDLVNIGLKAFAFCVATSLT
-LLTVAAGWLFYRPLWALLIAGLALVPILVARTRVPAKKLE</sequence></parameters></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0c/0c29c209-b442-49c5-bee2-5b5efdacad0e.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0c/0c29c209-b442-49c5-bee2-5b5efdacad0e.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0c/0c29c209-b442-49c5-bee2-5b5efdacad0e.txt
deleted file mode 100644
index 463be45..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0c/0c29c209-b442-49c5-bee2-5b5efdacad0e.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:runResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><jobId>iprscan-S20130531-112044-0159-59919420-oy</jobId></ns2:runResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0f/0f93d00f-131b-42ec-bbba-22b50582903e.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0f/0f93d00f-131b-42ec-bbba-22b50582903e.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0f/0f93d00f-131b-42ec-bbba-22b50582903e.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/0f/0f93d00f-131b-42ec-bbba-22b50582903e.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/11/111e5771-37b7-4ef8-9888-e50eadbc2a5c.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/11/111e5771-37b7-4ef8-9888-e50eadbc2a5c.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/11/111e5771-37b7-4ef8-9888-e50eadbc2a5c.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/11/111e5771-37b7-4ef8-9888-e50eadbc2a5c.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/13/132a7e6c-1857-4ad6-8252-5f747f6f0feb.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/13/132a7e6c-1857-4ad6-8252-5f747f6f0feb.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/13/132a7e6c-1857-4ad6-8252-5f747f6f0feb.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/13/132a7e6c-1857-4ad6-8252-5f747f6f0feb.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file


[34/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revision.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revision.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revision.java
deleted file mode 100644
index 126cd85..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revision.java
+++ /dev/null
@@ -1,259 +0,0 @@
-package org.apache.taverna.scufl2.api.annotation;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.Calendar;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import javax.annotation.processing.Processor;
-
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-
-/**
- * A record of a revision.
- * <p>
- * {@link Revisioned} workflow beans point to their latest Revision, which
- * {@link #getIdentifier()} identifiers this version of the revisioned bean.
- * <p>
- * It is important that the identifier is world-wide unique, but also that it
- * always identifies the same revision. It is not a requirement that the actual
- * revision of the bean can be retrieved from the URI. {@link Revisioned}
- * objects can mint UUID based URIs within namespaces of
- * <code>http://ns.taverna.org.uk/</code> when using
- * {@link Revisioned#newRevision()}.
- * <p>
- * The {@link #getPreviousRevision()} indicates the previous step in the chain
- * of revisions which led to the current version. The revision only provides
- * metadata about that older version, not the actual representation. (that is
- * out of scope for scufl2, and should be handled by regular version control
- * systems such as git).
- * <p>
- * A revision might note that compared to its previous revision, it has added (
- * {@link #getAdditionOf()}), removed ( {@link #getRemovalOf()}) and/or modified
- * ( {@link #getModificationsOf()}) resources. For instance, in a revision for a
- * {@link Workflow}, the Revision might record the addition of a
- * {@link Processor}; and in revision of a Profile, a modification of a
- * {@link Configuration}.
- * <p>
- * Higher level, the revisions of a {@link WorkflowBundle} would record addition
- * of a {@link Workflow} (which itself would have a separate Revision chain) -
- * in this case {@link #getHadOriginalSources()} can indicate the workflow
- * bundle that nested workflow and its configurations came from.
- * <p>
- * Revisions might be given a custom {@link #getChangeSpecificationType()} to
- * indicate a particular kind of edit, for instance insertion of a nested
- * workflow.
- * 
- * @author Stian Soiland-Reyes
- */
-public class Revision extends AbstractCloneable implements WorkflowBean {
-	private Set<URI> additionOf = new LinkedHashSet<>();
-	private URI changeSpecificationType;
-	private Calendar generatedAtTime;
-	private Set<Revision> hadOriginalSources = new LinkedHashSet<>();
-	private URI identifier;
-	private Set<URI> modificationsOf = new LinkedHashSet<>();
-	private Revision previousRevision;
-	private Set<URI> removalOf = new LinkedHashSet<>();
-	private Set<URI> wasAttributedTo = new LinkedHashSet<>();
-
-	public Revision() {
-	}
-
-	public Revision(URI identifier, Revision previousRevision) {
-		this.identifier = identifier;
-		this.previousRevision = previousRevision;
-	}
-
-	public Set<URI> getAdditionOf() {
-		return additionOf;
-	}
-
-	public URI getChangeSpecificationType() {
-		return changeSpecificationType;
-	}
-
-	public Calendar getGeneratedAtTime() {
-		return generatedAtTime;
-	}
-
-	public Set<Revision> getHadOriginalSources() {
-		return hadOriginalSources;
-	}
-
-	public URI getIdentifier() {
-		return identifier;
-	}
-
-	public Set<URI> getModificationsOf() {
-		return modificationsOf;
-	}
-
-	public Revision getPreviousRevision() {
-		return previousRevision;
-	}
-
-	public Set<URI> getRemovalOf() {
-		return removalOf;
-	}
-
-	public Set<URI> getWasAttributedTo() {
-		return wasAttributedTo;
-	}
-
-	public void setAdditionOf(Set<URI> additionOf) {
-		this.additionOf.clear();
-		this.additionOf.addAll(additionOf);
-	}
-
-	public void setChangeSpecificationType(URI changeSpecificationType) {
-		this.changeSpecificationType = changeSpecificationType;
-	}
-
-	public void setGeneratedAtTime(Calendar generatedAtTime) {
-		this.generatedAtTime = generatedAtTime;
-	}
-
-	public void setHadOriginalSources(Set<Revision> hadOriginalSources) {
-		this.hadOriginalSources.clear();
-		this.hadOriginalSources.addAll(hadOriginalSources);
-	}
-
-	public void setIdentifier(URI identifier) {
-		this.identifier = identifier;
-	}
-
-	public void setModificationsOf(Set<URI> modificationsOf) {
-		this.modificationsOf.clear();
-		this.modificationsOf.addAll(modificationsOf);
-	}
-
-	public void setPreviousRevision(Revision previousRevision) {
-		this.previousRevision = previousRevision;
-	}
-
-	public void setRemovalOf(Set<URI> removalOf) {
-		this.removalOf.clear();
-		this.removalOf.addAll(removalOf);
-	}
-
-	public void setWasAttributedTo(Set<URI> wasAttributedTo) {
-		this.wasAttributedTo.clear();
-		this.wasAttributedTo.addAll(wasAttributedTo);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return accept(visitor, new HashSet<Revision>());
-	}
-
-	protected boolean accept(Visitor visitor, HashSet<Revision> visited) {
-		if (!visited.add(this))
-			// Ignore this Revision, visitor has already seen it
-			return true;
-		boolean recurse = visitor.visitEnter(this);
-		if (recurse) {
-			if (getPreviousRevision() != null)
-				recurse = getPreviousRevision().accept(visitor, visited);
-			for (Revision rev : getHadOriginalSources()) {
-				if (!recurse)
-					break;
-				recurse = rev.accept(visitor, visited);
-			}
-		}
-		return visitor.visitLeave(this);
-	}
-
-	@Override
-	public String toString() {
-		return getClass().getSimpleName() + " " + getIdentifier();
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (!(obj instanceof Revision))
-			return false;
-		Revision other = (Revision) obj;
-		if (getIdentifier() == null)
-			return obj == this;
-		return getIdentifier().equals(other.getIdentifier());
-	}
-
-	@Override
-	public int hashCode() {
-		if (getIdentifier() == null)
-			return 0x01234567;
-		return 0x01234567 ^ getIdentifier().hashCode();
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		Revision cloneRevision = (Revision) clone;
-		cloneRevision.setAdditionOf(new LinkedHashSet<URI>(getAdditionOf()));
-		cloneRevision.setChangeSpecificationType(getChangeSpecificationType());
-		if (getGeneratedAtTime() != null)
-			cloneRevision.setGeneratedAtTime((Calendar) getGeneratedAtTime()
-					.clone());
-		for (Revision source : getHadOriginalSources())
-			cloneRevision.getHadOriginalSources().add(
-					cloning.cloneIfNotInCache(source));
-		cloneRevision.setIdentifier(getIdentifier());
-		cloneRevision.setModificationsOf(new LinkedHashSet<URI>(
-				getModificationsOf()));
-		cloneRevision.setPreviousRevision(cloning
-				.cloneIfNotInCache(getPreviousRevision()));
-		cloneRevision.setRemovalOf(new LinkedHashSet<URI>(getRemovalOf()));
-		cloneRevision.setWasAttributedTo(new LinkedHashSet<URI>(
-				getWasAttributedTo()));
-	}
-
-	// Derived operations
-
-	/**
-	 * Get the URI of this revision.
-	 * 
-	 * @return The absolute URI.
-	 * @see URITools#uriForBean(WorkflowBean)
-	 */
-	public URI getURI() {
-		return getUriTools().uriForBean(this);
-	}
-
-	/**
-	 * Get the URI of this revision relative to another workflow element.
-	 * 
-	 * @return The relative URI.
-	 * @see URITools#relativeUriForBean(WorkflowBean,WorflowBean)
-	 */
-	public URI getRelativeURI(WorkflowBean relativeTo) {
-		return getUriTools().relativeUriForBean(this, relativeTo);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revisioned.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revisioned.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revisioned.java
deleted file mode 100644
index 069379e..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Revisioned.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.apache.taverna.scufl2.api.annotation;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.GregorianCalendar;
-
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-
-
-/**
- * A WorkflowBean that is revisioned.
- * <p>
- * Revisions are expressed as a chain of {@link Revision}s linking to the
- * {@link Revision#getPreviousRevision()}s. The Revision metadata also may
- * include when and who did the revision.
- * 
- * @author Stian Soiland-Reyes
- */
-public interface Revisioned extends WorkflowBean {
-	/**
-	 * Get the current Revision metadata.
-	 * <p>
-	 * The {@link Revision} typically contains information about when it was
-	 * made, and links to the previous revision chain.
-	 * 
-	 * @return
-	 */
-	Revision getCurrentRevision();
-
-	/**
-	 * Set the current Revision.
-	 * <p>
-	 * To preserve the existing revision chain, the new revision should point to
-	 * the current revision using {@link Revision#setPreviousRevision(Revision)}
-	 * 
-	 * @param currentRevision
-	 *            The {@link Revision} to be set
-	 */
-	void setCurrentRevision(Revision currentRevision);
-
-	/**
-	 * Make a new Revision to mark structural changes to this workflow bean.
-	 * <p>
-	 * The identifier of the new {@link #getCurrentRevision()} will also be
-	 * identifying the Revisioned workflow bean and be returned from
-	 * {@link #getIdentifier()}.
-	 * <p>
-	 * The new revision will include the previous Revision as
-	 * {@link Revision#getPreviousRevision()} and
-	 * {@link Revision#getGeneratedAtTime()} on the new revision will match the
-	 * current {@link GregorianCalendar} by default.
-	 * 
-	 * @return The new {@link #getCurrentRevision()}, for setting any further
-	 *         details.
-	 */
-	Revision newRevision();
-
-	/**
-	 * Make a new Revision to mark structural changes to this workflow bean with
-	 * the given identifier.
-	 * <p>
-	 * {@link #getIdentifier()} will match the new identifier. The new
-	 * {@link #getCurrentRevision()} will include the previous revision as
-	 * {@link Revision#getPreviousRevision()}.
-	 * <p>
-	 * Note, unlike the convenience method {@link #newRevision()} this method
-	 * will not update {@link Revision#getGeneratedAtTime()}.
-	 * 
-	 * @param revisionIdentifier
-	 *            The new workflow identifier
-	 * @return The new {@link #getCurrentRevision()}, for setting any further
-	 *         details.
-	 */
-	Revision newRevision(URI revisionIdentifier);
-
-	/**
-	 * Set the identifier.
-	 * <p>
-	 * This will delete any previous revisions in {@link #getCurrentRevision()}.
-	 * To avoid loosing history, you might instead want to use
-	 * {@link #newRevision(URI)}.
-	 * 
-	 * @see #getIdentifier()
-	 * @see #getCurrentRevision()
-	 * 
-	 * @param workflowIdentifier
-	 *            the identifier
-	 */
-	void setIdentifier(URI workflowIdentifier);
-
-	/**
-	 * Returns the identifier of this bean.
-	 * <p>
-	 * This identifier matches the {@link Revision#getIdentifier()} of
-	 * {@link #getCurrentRevision()}.
-	 * 
-	 * @see {@link #setIdentifier(URI)}
-	 * @return the identifier
-	 */
-	URI getIdentifier();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/package-info.java
deleted file mode 100644
index bf568ec..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/package-info.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Common annotations
- * 
- */
-package org.apache.taverna.scufl2.api.annotation;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractCloneable.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractCloneable.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractCloneable.java
deleted file mode 100644
index c7f0326..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractCloneable.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.IdentityHashMap;
-import java.util.Map;
-
-public abstract class AbstractCloneable implements WorkflowBean {
-	protected static class CopyVisitor implements Visitor {
-		private Cloning cloning;
-
-		public CopyVisitor(Cloning cloning) {
-			this.cloning = cloning;
-		}
-
-		@Override
-		public boolean visit(WorkflowBean node) {
-			cloneNode(node);
-			return true;
-		}
-
-		@Override
-		public boolean visitEnter(WorkflowBean node) {
-			cloneNode(node);
-			return true;
-		}
-
-		@Override
-		public boolean visitLeave(WorkflowBean node) {
-			return true;
-		}
-
-		@SuppressWarnings({ "rawtypes", "unchecked" })
-		public void cloneNode(WorkflowBean node) {
-			WorkflowBean clone = cloning.cloneIfNotInCache((WorkflowBean) node);
-			if (node instanceof Child && clone instanceof Child) {
-				Child child = (Child) node;
-				Child childClone = (Child) clone;
-				WorkflowBean oldParent = child.getParent();
-				// NOTE: oldParent==null is OK, as cloned is HashMap
-
-				/*
-				 * NOTE: We don't clone the parent! If it's not already cloned,
-				 * then it might be above our current visit tree and should not
-				 * be cloned (this is the case for the top level node). The
-				 * clone will then have the parent as null.
-				 */
-				WorkflowBean newParent = cloning.getCloned(oldParent);
-				childClone.setParent(newParent);
-			}
-		}
-	}
-
-	@Override
-	public AbstractCloneable clone() {
-		return cloneWorkflowBean(this);
-	}
-
-	public static <T extends WorkflowBean> T cloneWorkflowBean(T obj) {
-		Cloning cloning = new Cloning(obj);
-		CopyVisitor copyVisitor = new CopyVisitor(cloning);
-		obj.accept(copyVisitor);
-		return cloning.getCloned(obj);
-	}
-
-	public static class Cloning {
-		/**
-		 * Use identify map so we always make new copies of objects that just
-		 * may look alike, but are different, like empty lists
-		 */
-		private final Map<WorkflowBean, WorkflowBean> cloned = new IdentityHashMap<>();
-
-		/**
-		 * Construct a Cloning helper.
-		 * 
-		 * @param ancestor
-		 *            The highest WorkflowBean in the hierarchy to clone. Any
-		 *            beans that are 'below' this ancestor will be cloned.
-		 */
-		public Cloning(WorkflowBean ancestor) {
-			this.ancestor = ancestor;
-		}
-
-		final WorkflowBean ancestor;
-
-		@SuppressWarnings("unchecked")
-		public <T extends WorkflowBean> T cloneOrOriginal(T original) {
-			if (cloned.containsKey(original))
-				return (T) cloned.get(original);
-			return original;
-		}
-
-		@SuppressWarnings("unchecked")
-		public <T extends WorkflowBean> T cloneIfNotInCache(T original) {
-			if (original == null)
-				return null;
-			if (cloned.containsKey(original))
-				return (T) cloned.get(original);
-			T clone;
-			try {
-				clone = (T) original.getClass().newInstance();
-			} catch (InstantiationException e) {
-				// System.err.println("Can't do this one.. " + original);
-				return null;
-			} catch (IllegalAccessException e) {
-				throw new RuntimeException(e);
-			}
-			cloned.put(original, clone);
-
-			if (original instanceof AbstractCloneable) {
-				AbstractCloneable cloneable = (AbstractCloneable) original;
-				cloneable.cloneInto(clone, this);
-			}
-
-			// System.out.println("Cloned " + clone);
-			return clone;
-		}
-
-		@SuppressWarnings("unchecked")
-		public <T extends WorkflowBean> T getCloned(T originalBean) {
-			return (T) cloned.get(originalBean);
-		}
-
-		public <T extends WorkflowBean> void knownClone(T original, T clone) {
-			cloned.put(original, clone);
-		}
-	}
-
-	protected abstract void cloneInto(WorkflowBean clone, Cloning cloning);
-
-	private transient Scufl2Tools tools;
-	private transient URITools uriTools;
-
-	public Scufl2Tools getTools() {
-		if (tools == null && this instanceof Child) {
-			WorkflowBean parent = ((Child<?>) this).getParent();
-			if (parent instanceof AbstractCloneable)
-				tools = ((AbstractCloneable) parent).getTools();
-		}
-		if (tools == null)
-			tools = new Scufl2Tools();
-		return tools;
-	}
-
-	public URITools getUriTools() {
-		if (uriTools == null && this instanceof Child) {
-			WorkflowBean parent = ((Child<?>) this).getParent();
-			if (parent instanceof AbstractCloneable)
-				uriTools = ((AbstractCloneable) parent).getUriTools();
-		}
-		if (uriTools == null)
-			uriTools = new URITools();
-		return uriTools;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractNamed.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractNamed.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractNamed.java
deleted file mode 100644
index 121dadb..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractNamed.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.UUID;
-import java.util.regex.Matcher;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-
-
-/**
- * Abstract implementation of a {@link Named} {@link WorkflowBean}.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public abstract class AbstractNamed extends AbstractCloneable implements Named  {
-	private String name;
-
-	/**
-	 * Constructs a {@link Named} {@link WorkflowBean} with a random UUID as the name.
-	 */
-	public AbstractNamed() {
-		setName(UUID.randomUUID().toString());
-	}
-
-	/**
-	 * Constructs a {@link Named} {@link WorkflowBean} with the specified name.
-	 * 
-	 * @param name
-	 *            the name of the <code>Named</code> <code>WorkflowBean</code>. <strong>Must not</strong> be <code>null</code>
-	 *            or an empty String.
-	 */
-	public AbstractNamed(String name) {
-		setName(name);
-	}
-
-	@Override
-	public int compareTo(Object o) {
-		if (!(o instanceof AbstractNamed))
-			// Other comparables go first
-			return 1;
-		AbstractNamed other = (AbstractNamed) o;
-		if (other == this)
-			return 0;
-		/**
-		 * Disabled as this means the order changes depending on setParents being called or not;
-		 * could cause a DataLink to appear twice in workflow.getDataLinks(). 
-		 * 
-		 * 
-		if (this instanceof Child) {
-			if (!(other instanceof Child)) {
-				// He's orphan, he's sorted first
-				return 1;
-			}
-			WorkflowBean parent = ((Child<?>) this).getParent();
-			WorkflowBean otherParent = ((Child<?>) other).getParent();
-			if (parent instanceof Comparable && otherParent instanceof Comparable) {
-				int comparedParents = ((Comparable) parent).compareTo(otherParent);
-				if (comparedParents != 0) {
-					return comparedParents;
-				}
-			}
-		} else {
-			if (other instanceof Child) {
-				// We're orphan, we're first
-				return -1;
-			}
-		}
-		*/
-		if (getClass() != other.getClass()) {
-			int classCompare = getClass().getCanonicalName().compareTo(
-					other.getClass().getCanonicalName());
-			if (classCompare != 0)
-				// Allow having say InputPorts and OutputPorts in the same sorted list
-				return classCompare;
-		}
-		// We're the same class, let's compare the names
-		return getName().compareTo(other.getName());
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		AbstractNamed other = (AbstractNamed) obj;
-		if (!getName().equals(other.getName()))
-			return false;
-		if (this instanceof Child) {
-			WorkflowBean parent = ((Child<?>) this).getParent();
-			WorkflowBean otherParent = ((Child<?>) other).getParent();
-			if (parent != null)
-				return parent.equals(otherParent);
-			if (parent == null && otherParent != null)
-				return false;
-		}
-		if (this instanceof Typed) {
-			URI myId = ((Typed) this).getType();
-			URI otherId = ((Typed) obj).getType();
-			if (myId != null)
-				return myId.equals(otherId);
-			if (myId == null && otherId != null)
-				return false;
-		}
-		return true;
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	@SuppressWarnings({ "rawtypes" })
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + (name == null ? 0 : name.hashCode());
-
-		if (this instanceof Child) {
-			WorkflowBean parent = ((Child) this).getParent();
-			if (parent != null)
-				result = prime * result + parent.hashCode();
-		}
-		return result;
-	}
-
-	@Override
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	public void setName(String name) {
-		if (name == null)
-			throw new NullPointerException("Name can't be null");
-		Matcher invalidMatcher = INVALID_NAME.matcher(name);
-		if (invalidMatcher.find())
-		    // http://dev.mygrid.org.uk/issues/browse/SCUFL2-87
-		    // TODO: Any other characters that must be disallowed?
-			throw new IllegalArgumentException("Name invalid in position "
-					+ invalidMatcher.start() + ": '" + name + "'");
-
-		if (this instanceof Child) {
-			Child child = (Child) this;
-			WorkflowBean parent = child.getParent();
-			if (parent != null) {
-				child.setParent(null);
-				this.name = name;
-				// Might overwrite other Named object with same name
-				child.setParent(parent);
-			}
-		}
-		this.name = name;
-	}
-
-	@Override
-	public String toString() {
-		return getClass().getSimpleName() + " \"" + getName() + '"';
-	}
-	
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		AbstractNamed namedClone = (AbstractNamed)clone;
-		namedClone.setName(getName());
-	}
-
-	// Derived operations
-
-	/**
-	 * Get all the annotations that pertain to this workflow element.
-	 * 
-	 * @return The collection of annotations.
-	 * @see Scufl2Tools#annotationsFor(Child)
-	 */
-	public Collection<Annotation> getAnnotations() {
-		if (this instanceof Child)
-			return getTools().annotationsFor((Child<?>) this);
-		throw new UnsupportedOperationException(
-				"operation needs to be overridden for root elements");
-	}
-
-	/**
-	 * Get the URI of this workflow element.
-	 * 
-	 * @return The absolute URI.
-	 * @see URITools#uriForBean(WorkflowBean)
-	 */
-	public URI getURI() {
-		return getUriTools().uriForBean(this);
-	}
-
-	/**
-	 * Get the URI of this workflow element relative to another workflow
-	 * element.
-	 * 
-	 * @return The relative URI.
-	 * @see URITools#relativeUriForBean(WorkflowBean,WorflowBean)
-	 */
-	public URI getRelativeURI(WorkflowBean relativeTo) {
-		return getUriTools().relativeUriForBean(this, relativeTo);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractRevisioned.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractRevisioned.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractRevisioned.java
deleted file mode 100644
index 42e094c..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/AbstractRevisioned.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.GregorianCalendar;
-import java.util.UUID;
-
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.annotation.Revisioned;
-
-
-public abstract class AbstractRevisioned extends AbstractNamed implements
-		Revisioned {
-	private Revision currentRevision;
-
-	protected URI generateNewIdentifier() {
-		return getIdentifierRoot().resolve(UUID.randomUUID().toString() + "/");
-	}
-
-	protected abstract URI getIdentifierRoot();
-
-	public AbstractRevisioned() {
-		newRevision();
-		String id = getIdentifierRoot().relativize(getIdentifier())
-				.toASCIIString().replace("/", "");
-		setName(id);
-	}
-
-	public AbstractRevisioned(String name) {
-		super(name);
-		newRevision();
-	}
-
-	@Override
-	public void setCurrentRevision(Revision currentRevision) {
-		this.currentRevision = currentRevision;
-		if (currentRevision == null)
-			newRevision();
-	}
-
-	@Override
-	public Revision newRevision() {
-		return newRevision(null);
-	}
-
-	@Override
-	public Revision newRevision(URI revisionIdentifier) {
-		GregorianCalendar created = null;
-		if (revisionIdentifier == null) {
-			revisionIdentifier = generateNewIdentifier();
-			created = new GregorianCalendar();
-		}
-		Revision newRevision = new Revision(revisionIdentifier,
-				getCurrentRevision());
-		newRevision.setGeneratedAtTime(created);
-		setCurrentRevision(newRevision);
-		return newRevision;
-	}
-
-	@Override
-	public Revision getCurrentRevision() {
-		return currentRevision;
-	}
-
-	/**
-	 * Returns the identifier.
-	 * <p>
-	 * The the default identifier is based on #getIdentifierRoot() plus a random
-	 * UUID.
-	 * 
-	 * @see {@link #setIdentifier(URI)}
-	 * @return the identifier
-	 */
-	@Override
-	public URI getIdentifier() {
-		if (getCurrentRevision() == null)
-			return null;
-		return getCurrentRevision().getIdentifier();
-	}
-
-	/**
-	 * Set the identifier.
-	 * <p>
-	 * This will delete any previous revisions in {@link #getCurrentRevision()}
-	 * 
-	 * @see #getIdentifier()
-	 * @see #getCurrentRevision()
-	 * @param identifier
-	 *            the identifier
-	 */
-	@Override
-	public void setIdentifier(URI identifier) {
-		setCurrentRevision(new Revision(identifier, null));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Child.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Child.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Child.java
deleted file mode 100644
index b5d9893..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Child.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-/**
- * A {@link WorkflowBean} that is the child of another <code>WorkflowBean</code>
- * .
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- * 
- * @param <T>
- *            the type of <code>WorkflowBean</code> that this is a child of
- */
-public interface Child<T extends WorkflowBean> extends WorkflowBean {
-	/**
-	 * @return the parent of this workflow bean, or <code>null</code> if it is
-	 *         orphan
-	 */
-	T getParent();
-
-	/**
-	 * Sets the parent of this workflow bean.
-	 * <p>
-	 * Setting the parent would normally also add the object to the relevant
-	 * collection in the parent if it does not already exist there.
-	 * <p>
-	 * If the child has an existing, object-identity different parent, the child
-	 * will first be removed from the parent collection if it exists there.
-	 * <p>
-	 * <strong>Note:</strong>If the child is {@link Named} the parent collection
-	 * will be a {@link NamedSet}. This implicit insertion would overwrite any
-	 * conflicting sibling with the same {@link Named#getName()} - to avoid
-	 * this, add the child to the parent collection by using
-	 * {@link NamedSet#addWithUniqueName(Named)} before setting the parent.
-	 * 
-	 * @param parent
-	 *            the parent of this workflow bean
-	 */
-	void setParent(T parent);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Configurable.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Configurable.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Configurable.java
deleted file mode 100644
index b90e502..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Configurable.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-
-/**
- * {@link WorkflowBean WorkflowBeans} that can have a
- * {@link org.apache.taverna.scufl2.api.configurations.Configuration Configuration}.
- * <p>
- * Configurables are {@link Typed}, but note that this type is different from
- * the type of the {@link Configuration}.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public interface Configurable extends Typed {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Named.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Named.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Named.java
deleted file mode 100644
index 0518282..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Named.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.regex.Pattern;
-
-/**
- * A named {@link WorkflowBean}.
- * 
- * @author Alan R Williams
- */
-@SuppressWarnings("rawtypes")
-public interface Named extends WorkflowBean, Comparable {
-	/**
-	 * Name must not match this regular expression, e.g. must not include: slash
-	 * (/), colon (:), ASCII control characters
-	 */
-	Pattern INVALID_NAME = Pattern.compile("^$|[/:\\x7f\\x00-\\x1f]");
-
-	/**
-	 * Returns the name of the {@link WorkflowBean}.
-	 * 
-	 * @return the name of the <code>WorkflowBean</code>
-	 */
-	String getName();
-
-	/**
-	 * Sets the name of the {@link WorkflowBean}.
-	 * 
-	 * The name <strong>must not</strong> be <code>null</code>, not be an empty
-	 * String, and must not match the {@link #INVALID_NAME} regular expression.
-	 * 
-	 * @param name
-	 *            the name of the <code>WorkflowBean</code>
-	 */
-	void setName(String name);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/NamedSet.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/NamedSet.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/NamedSet.java
deleted file mode 100644
index f449d24..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/NamedSet.java
+++ /dev/null
@@ -1,290 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.AbstractSet;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.SortedSet;
-import java.util.TreeMap;
-
-/**
- * A {@link java.util.Set} of {@link Named} {@link WorkflowBean}.
- * <p>
- * This set will guarantee to never contain more than one {@link Named} object per
- * {@link Named#getName()}.
- * <p>
- * It is also possible to retrieve values by name using {@link #getByName(String)}, or remove using
- * {@link #removeByName(String)}. The names can also be found in {@link #getNames()} and
- * {@link #nameIterator()}
- * <p>
- * Internally this set is backed by a {@link TreeMap}.
- * 
- * @author Stian Soiland-Reyes
- * 
- * @param <T>
- *            subclass of {@link Named} to keep in this set.
- */
-public class NamedSet<T extends Named> extends AbstractSet<T> implements SortedSet<T> {
-	protected transient SortedMap<String, T> namedMap;
-
-	/**
-	 * Constructs an empty <code>NamedSet</code>.
-	 */
-	public NamedSet() {
-		namedMap = new TreeMap<>();
-	}
-
-	/**
-	 * Constructs a <code>NamedSet</code> containing all the elements of the given collection.
-	 * <p>
-	 * If the collection contains several {@link Named} elements with the same name, only the last
-	 * of those elements will be in the new <code>NamedSet</code>.
-	 * 
-	 * @param collection
-	 *            the collection whose elements are to be added to the set
-	 */
-	public NamedSet(Collection<? extends T> collection) {
-		namedMap = new TreeMap<>();
-		addAll(collection);
-	}
-
-	/**
-	 * Adds the {@link Named} {@link WorkflowBean} and returns <code>true</code> iff the set did not
-	 * already contain an element with the same name.
-	 * 
-	 * The element <strong>must not</strong> be <code>null</code>
-	 * <p>
-	 * If a different (object identity) element with the same name already exists in the set, the
-	 * element will be replaced the new element and <code>false</code> will be returned.
-	 * <p>
-	 * Inserting the same object instance a second time will have no effect.
-	 * 
-	 * @return <code>true</code> iff the set did not already contain an element with the same name
-	 */
-	@Override
-	public boolean add(T named) {
-		return namedMap.put(named.getName(), named) == null;
-	}
-
-	/**
-	 * Adds the {@link Named} {@link WorkflowBean} with a unique name if the name already exist.
-	 * <p>
-	 * Similar to {@link #add(Named)}, but if a (object identity) different element with the same
-	 * name already exists in the set, the element to be inserted will be given a unique name before
-	 * inserting.
-	 * <p>
-	 * This means that inserting the same object instance a second time will have no effect, as with
-	 * {@link #add(Named)}.
-	 * <p>
-	 * The unique name is generated by appending <code>_x</code> to the existing name, where x is a
-	 * number from 2 or higher. An existing numeric prefix will first be removed.
-	 * <p>
-	 * For example, if the set already contains elements named "fish", "fish_2" and "fish_5", but
-	 * you try to insert a different element which is named "fish" or "fish_5", it will be renamed
-	 * to "fish_3" before inserting.
-	 * <p>
-	 * <strong>Note:</strong> If the element is a {@link Child} instance, and it's
-	 * {@link Child#getParent()} is not <code>null</code> (or this set) the renaming could
-	 * potentially cause a conflict in the old parent set. (In the example above, if the element's
-	 * old parent has a child "fish_3" it will be overwritten by this instance).
-	 * 
-	 * @param element
-	 *            the <code>Named WorkflowBean</code> to add
-	 * @return the final {@link T#getName()} after insertion
-	 */
-	public String addWithUniqueName(T element) {
-		String name = element.getName();
-		T existing = getByName(name);
-		if (element == existing)
-			return name;
-
-		// Remove any existing number suffix
-		String nameTemplate = name.replaceAll("_\\d+$", "_");
-
-		long i = 1;
-		while (getNames().contains(name))
-			name = nameTemplate + i++;
-
-		element.setName(name);
-		add(element);
-		return name;
-	}
-
-	@Override
-	public void clear() {
-		namedMap.clear();
-	}
-
-	@SuppressWarnings({ "unchecked", "rawtypes" })
-	@Override
-	public NamedSet<T> clone() {
-		NamedSet<T> copy;
-		try {
-			copy = (NamedSet<T>) super.clone();
-		} catch (CloneNotSupportedException e) {
-			throw new IllegalStateException(e);
-		}
-		if (!(this.namedMap instanceof TreeMap))
-			throw new IllegalStateException("Can't clone submap");
-		copy.namedMap = (SortedMap<String, T>) ((TreeMap) this.namedMap).clone();
-		return copy;
-	}
-
-	@Override
-	public Comparator<? super T> comparator() {
-		return null;
-	}
-
-	/**
-	 * Return <code>true</code> if the <code>NamedSet</code> contains the given object, as compared
-	 * using its {@link Object#equals(Object)} method.
-	 * <p>
-	 * Note that if a different object with the same name exists, this method will return
-	 * <code>false</code>. To check for existence of a name, use {@link #containsName(String)}.
-	 * 
-	 * @see Collection#contains(Object)
-	 * @param o
-	 * @return
-	 */
-	@Override
-	public boolean contains(Object o) {
-		if (!(o instanceof Named))
-			return false;
-		Named named = (Named) o;
-		return named.equals(namedMap.get(named.getName()));
-	}
-
-	/**
-	 * Return <code>true</code> if the <code>NamedSet</code> contains an element with the given
-	 * name.
-	 * 
-	 * @param name
-	 *            the name of object
-	 * @return <code>true</code> if an element with given name is in set
-	 */
-	public boolean containsName(String name) {
-		return namedMap.containsKey(name);
-	}
-
-	@Override
-	public T first() {
-		return namedMap.get(namedMap.firstKey());
-	}
-
-	/**
-	 * Return the element with the given name from the set.
-	 * 
-	 * Returns <code>null</code> if the set does not contain an element with the given name.
-	 * 
-	 * @param name
-	 *            the name of the element to return
-	 * @return the element with the given name from the set
-	 */
-	public T getByName(String name) {
-		return namedMap.get(name);
-	}
-
-	/**
-	 * Returns a set of the names of the elements in this set.
-	 * 
-	 * @return a set of the names of the elements in this set
-	 */
-	public Set<String> getNames() {
-		return namedMap.keySet();
-	}
-
-	@Override
-	public SortedSet<T> headSet(T toElement) {
-		// FIXME: Return a view instead of a copy
-		NamedSet<T> headSet = new NamedSet<>();
-		headSet.namedMap = namedMap.headMap(toElement.getName());
-		return headSet;
-	}
-
-	@Override
-	public boolean isEmpty() {
-		return namedMap.isEmpty();
-	}
-
-	@Override
-	public Iterator<T> iterator() {
-		return namedMap.values().iterator();
-	}
-
-	@Override
-	public T last() {
-		return namedMap.get(namedMap.lastKey());
-	}
-
-	public Iterator<String> nameIterator() {
-		return namedMap.keySet().iterator();
-	}
-
-	@Override
-	public boolean remove(Object o) {
-		if (!(o instanceof Named))
-			return false;
-		Named named = (Named) o;
-		String name = named.getName();
-		T exists = namedMap.get(name);
-		if (named.equals(exists))
-			return namedMap.remove(named.getName()) != null;
-		return false;
-	}
-
-	/**
-	 * Removes the element with the given name.
-	 * 
-	 * Returns the {@link Named} element that was removed or <code>null</code> if the set did not
-	 * contain an element with the given name.
-	 * 
-	 * @param name
-	 *            the name of the element to remove
-	 * @return the {@link Named} element that was removed or <code>null</code> if the set did not
-	 *         contain an element with the given name
-	 */
-	public T removeByName(String name) {
-		return namedMap.remove(name);
-	}
-
-	@Override
-	public int size() {
-		return namedMap.size();
-	}
-
-	@Override
-	public SortedSet<T> subSet(T fromElement, T toElement) {
-		NamedSet<T> headSet = new NamedSet<>();
-		headSet.namedMap = namedMap.subMap(fromElement.getName(), toElement.getName());
-		return headSet;
-	}
-
-	@Override
-	public SortedSet<T> tailSet(T fromElement) {
-		NamedSet<T> headSet = new NamedSet<>();
-		headSet.namedMap = namedMap.tailMap(fromElement.getName());
-		return headSet;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Ported.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Ported.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Ported.java
deleted file mode 100644
index 83c4168..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Ported.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.port.InputPort;
-import org.apache.taverna.scufl2.api.port.OutputPort;
-
-/**
- * A {@link WorkflowBean} that has
- * {@link org.apache.taverna.scufl2.api.portInputPort InputPorts} and
- * {@link org.apache.taverna.scufl2.api.portOutputPort OutputPorts}.
- */
-public interface Ported extends WorkflowBean {
-	/**
-	 * Returns the {@link org.apache.taverna.scufl2.api.port.InputPort InputPorts}.
-	 * 
-	 * @return the input ports
-	 */
-	NamedSet<? extends InputPort> getInputPorts();
-
-	/**
-	 * Returns the {@link org.apache.taverna.scufl2.api.port.OutputPort OutputPorts}
-	 * .
-	 * 
-	 * @return the output ports
-	 */
-	NamedSet<? extends OutputPort> getOutputPorts();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Root.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Root.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Root.java
deleted file mode 100644
index bc24fab..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Root.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-
-public interface Root extends WorkflowBean {
-	URI getGlobalBaseURI();
-
-	void setGlobalBaseURI(URI globalBaseURI);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
deleted file mode 100644
index 3782580..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
+++ /dev/null
@@ -1,866 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.xml.bind.PropertyException;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.port.ActivityPort;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.apache.taverna.scufl2.api.port.ProcessorPort;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * Utility methods for dealing with SCUFL2 models
- * 
- * @author Stian Soiland-Reyes
- */
-public class Scufl2Tools {
-	private static final String CONSTANT_STRING = "string";
-	private static final String CONSTANT_VALUE_PORT = "value";
-	public static URI PORT_DEFINITION = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2#portDefinition");
-	private static URITools uriTools = new URITools();
-	public static URI NESTED_WORKFLOW = URI
-			.create("http://ns.taverna.org.uk/2010/activity/nested-workflow");
-
-	/**
-	 * Compare {@link ProcessorBinding}s by their
-	 * {@link ProcessorBinding#getActivityPosition()}.
-	 * <p>
-	 * <b>Note:</b> this comparator imposes orderings that are inconsistent with
-	 * equals.
-	 * 
-	 * @author Stian Soiland-Reyes
-	 */
-	public static class BindingComparator implements
-			Comparator<ProcessorBinding> {
-		@Override
-		public int compare(ProcessorBinding o1, ProcessorBinding o2) {
-			return o1.getActivityPosition() - o2.getActivityPosition();
-		}
-	}
-
-	public List<Annotation> annotationsFor(Child<?> bean) {
-		WorkflowBundle bundle = findParent(WorkflowBundle.class, bean);
-		return annotationsFor(bean, bundle);
-	}
-
-	public List<Annotation> annotationsFor(WorkflowBean bean,
-			WorkflowBundle bundle) {
-		ArrayList<Annotation> annotations = new ArrayList<>();
-		if (bundle == null)
-			return annotations;
-		for (Annotation ann : bundle.getAnnotations())
-			if (ann.getTarget().equals(bean))
-				annotations.add(ann);
-		return annotations;
-	}
-
-	/**
-	 * Returns the {@link Configuration} for a {@link Configurable} in the given
-	 * {@link Profile}.
-	 * 
-	 * @param configurable
-	 *            the <code>Configurable</code> to find a
-	 *            <code>Configuration</code> for
-	 * @param profile
-	 *            the <code>Profile</code> to look for the
-	 *            <code>Configuration</code> in
-	 * @return the <code>Configuration</code> for a <code>Configurable</code> in
-	 *         the given <code>Profile</code>
-	 */
-	public Configuration configurationFor(Configurable configurable,
-			Profile profile) {
-		List<Configuration> configurations = configurationsFor(configurable,
-				profile);
-		if (configurations.isEmpty())
-			throw new IndexOutOfBoundsException(
-					"Could not find configuration for " + configurable);
-		if (configurations.size() > 1)
-			throw new IllegalStateException("More than one configuration for "
-					+ configurable);
-		return configurations.get(0);
-	}
-
-	public Configuration configurationForActivityBoundToProcessor(
-			Processor processor, Profile profile) {
-		ProcessorBinding binding = processorBindingForProcessor(processor,
-				profile);
-		return configurationFor(binding.getBoundActivity(), profile);
-	}
-
-	/**
-	 * Returns the list of {@link Configuration Configurations} for a
-	 * {@link Configurable} in the given {@link Profile}.
-	 * 
-	 * @param configurable
-	 *            the <code>Configurable</code> to find a
-	 *            <code>Configuration</code> for
-	 * @param profile
-	 *            the <code>Profile</code> to look for the
-	 *            <code>Configuration</code> in
-	 * @return the list of <code>Configurations</code> for a
-	 *         <code>Configurable</code> in the given <code>Profile</code>
-	 */
-	public List<Configuration> configurationsFor(Configurable configurable,
-			Profile profile) {
-		List<Configuration> configurations = new ArrayList<>();
-		for (Configuration config : profile.getConfigurations())
-			if (configurable.equals(config.getConfigures()))
-				configurations.add(config);
-		// Collections.sort(configurations);
-		return configurations;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<BlockingControlLink> controlLinksBlocking(Processor blocked) {
-		List<BlockingControlLink> controlLinks = new ArrayList<>();
-		for (ControlLink link : blocked.getParent().getControlLinks()) {
-			if (!(link instanceof BlockingControlLink))
-				continue;
-			BlockingControlLink blockingControlLink = (BlockingControlLink) link;
-			if (blockingControlLink.getBlock().equals(blocked))
-				controlLinks.add(blockingControlLink);
-		}
-		Collections.sort(controlLinks);
-		return controlLinks;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<BlockingControlLink> controlLinksWaitingFor(
-			Processor untilFinished) {
-		List<BlockingControlLink> controlLinks = new ArrayList<>();
-		for (ControlLink link : untilFinished.getParent().getControlLinks()) {
-			if (!(link instanceof BlockingControlLink))
-				continue;
-			BlockingControlLink blockingControlLink = (BlockingControlLink) link;
-			if (blockingControlLink.getUntilFinished().equals(untilFinished))
-				controlLinks.add(blockingControlLink);
-		}
-		Collections.sort(controlLinks);
-		return controlLinks;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<DataLink> datalinksFrom(SenderPort senderPort) {
-		Workflow wf = findParent(Workflow.class, (Child<Workflow>) senderPort);
-		List<DataLink> links = new ArrayList<>();
-		for (DataLink link : wf.getDataLinks())
-			if (link.getReceivesFrom().equals(senderPort))
-				links.add(link);
-		Collections.sort(links);
-		return links;
-	}
-
-	@SuppressWarnings("unchecked")
-	public List<DataLink> datalinksTo(ReceiverPort receiverPort) {
-		Workflow wf = findParent(Workflow.class, (Child<Workflow>) receiverPort);
-		List<DataLink> links = new ArrayList<>();
-		for (DataLink link : wf.getDataLinks())
-			if (link.getSendsTo().equals(receiverPort))
-				links.add(link);
-		Collections.sort(links);
-		return links;
-	}
-
-	public <T extends WorkflowBean> T findParent(Class<T> parentClass,
-			Child<?> child) {
-		WorkflowBean parent = child.getParent();
-		if (parent == null)
-			return null;
-		if (parentClass.isAssignableFrom(parent.getClass())) {
-			@SuppressWarnings("unchecked")
-			T foundParent = (T) parent;
-			return foundParent;
-		}
-		if (parent instanceof Child)
-			return findParent(parentClass, (Child<?>) parent);
-		return null;
-	}
-
-	public JsonNode portDefinitionFor(ActivityPort activityPort, Profile profile)
-			throws PropertyException {
-		Configuration actConfig = configurationFor(activityPort.getParent(),
-				profile);
-
-		JsonNode portDef = actConfig.getJson().get("portDefinition");
-		if (portDef == null)
-			return null;
-
-		URI portPath = uriTools.relativeUriForBean(activityPort,
-				activityPort.getParent());
-		// e.g. "in/input1" or "out/output2"
-		return portDef.get(portPath.toString());
-	}
-
-	public ProcessorBinding processorBindingForProcessor(Processor processor,
-			Profile profile) {
-		List<ProcessorBinding> bindings = processorBindingsForProcessor(
-				processor, profile);
-		if (bindings.isEmpty())
-			throw new IndexOutOfBoundsException("Could not find bindings for "
-					+ processor);
-		if (bindings.size() > 1)
-			throw new IllegalStateException("More than one proc binding for "
-					+ processor);
-		return bindings.get(0);
-	}
-
-	public List<ProcessorBinding> processorBindingsForProcessor(
-			Processor processor, Profile profile) {
-		List<ProcessorBinding> bindings = new ArrayList<>();
-		for (ProcessorBinding pb : profile.getProcessorBindings())
-			if (pb.getBoundProcessor().equals(processor))
-				bindings.add(pb);
-		Collections.sort(bindings, new BindingComparator());
-		return bindings;
-	}
-
-	public List<ProcessorBinding> processorBindingsToActivity(Activity activity) {
-		Profile profile = activity.getParent();
-		List<ProcessorBinding> bindings = new ArrayList<>();
-		for (ProcessorBinding pb : profile.getProcessorBindings())
-			if (pb.getBoundActivity().equals(activity))
-				bindings.add(pb);
-		Collections.sort(bindings, new BindingComparator());
-		return bindings;
-	}
-
-	public ProcessorInputPortBinding processorPortBindingForPort(
-			InputPort inputPort, Profile profile) {
-		return (ProcessorInputPortBinding) processorPortBindingForPortInternal(
-				inputPort, profile);
-	}
-
-	public ProcessorOutputPortBinding processorPortBindingForPort(
-			OutputPort outputPort, Profile profile) {
-		return (ProcessorOutputPortBinding) processorPortBindingForPortInternal(
-				outputPort, profile);
-	}
-
-	protected ProcessorPortBinding<?, ?> processorPortBindingForPortInternal(
-			Port port, Profile profile) {
-		List<ProcessorBinding> processorBindings;
-		if (port instanceof ProcessorPort) {
-			ProcessorPort processorPort = (ProcessorPort) port;
-			processorBindings = processorBindingsForProcessor(
-					processorPort.getParent(), profile);
-		} else if (port instanceof ActivityPort) {
-			ActivityPort activityPort = (ActivityPort) port;
-			processorBindings = processorBindingsToActivity(activityPort
-					.getParent());
-		} else
-			throw new IllegalArgumentException(
-					"Port must be a ProcessorPort or ActivityPort");
-		for (ProcessorBinding procBinding : processorBindings) {
-			ProcessorPortBinding<?, ?> portBinding = processorPortBindingInternalInBinding(
-					port, procBinding);
-			if (portBinding != null)
-				return portBinding;
-		}
-		return null;
-	}
-
-	protected ProcessorPortBinding<?, ?> processorPortBindingInternalInBinding(
-			Port port, ProcessorBinding procBinding) {
-		Set<? extends ProcessorPortBinding<?, ?>> portBindings;
-		if (port instanceof InputPort)
-			portBindings = procBinding.getInputPortBindings();
-		else
-			portBindings = procBinding.getOutputPortBindings();
-
-		for (ProcessorPortBinding<?, ?> portBinding : portBindings) {
-			if (port instanceof ProcessorPort
-					&& portBinding.getBoundProcessorPort().equals(port))
-				return portBinding;
-			if (port instanceof ActivityPort
-					&& portBinding.getBoundActivityPort().equals(port))
-				return portBinding;
-		}
-		return null;
-	}
-
-	public void setParents(WorkflowBundle bundle) {
-		bundle.accept(new VisitorWithPath() {
-			@Override
-			public boolean visit() {
-				WorkflowBean node = getCurrentNode();
-				if (node instanceof Child) {
-					@SuppressWarnings("unchecked")
-					Child<WorkflowBean> child = (Child<WorkflowBean>) node;
-					WorkflowBean parent = getCurrentPath().peek();
-					if (child.getParent() != parent)
-						child.setParent(parent);
-				}
-				return true;
-			}
-		});
-	}
-
-	/**
-	 * Find processors that a given processor can connect to downstream.
-	 * <p>
-	 * This is calculated as all processors in the dataflow, except the
-	 * processor itself, and any processor <em>upstream</em>, following both
-	 * data links and conditional links.
-	 * 
-	 * @see #possibleUpStreamProcessors(Dataflow, Processor)
-	 * @see #splitProcessors(Collection, Processor)
-	 * 
-	 * @param dataflow
-	 *            Dataflow from where to find processors
-	 * @param processor
-	 *            Processor which is to be connected
-	 * @return A set of possible downstream processors
-	 */
-	public Set<Processor> possibleDownStreamProcessors(Workflow dataflow,
-			Processor processor) {
-		ProcessorSplit splitProcessors = splitProcessors(
-				dataflow.getProcessors(), processor);
-		Set<Processor> possibles = new HashSet<>(
-				splitProcessors.getUnconnected());
-		possibles.addAll(splitProcessors.getDownStream());
-		return possibles;
-	}
-
-	/**
-	 * Find processors that a given processor can connect to upstream.
-	 * <p>
-	 * This is calculated as all processors in the dataflow, except the
-	 * processor itself, and any processor <em>downstream</em>, following both
-	 * data links and conditional links.
-	 * 
-	 * @see #possibleDownStreamProcessors(Dataflow, Processor)
-	 * @see #splitProcessors(Collection, Processor)
-	 * 
-	 * @param dataflow
-	 *            Dataflow from where to find processors
-	 * @param processor
-	 *            Processor which is to be connected
-	 * @return A set of possible downstream processors
-	 */
-	public Set<Processor> possibleUpStreamProcessors(Workflow dataflow,
-			Processor firstProcessor) {
-		ProcessorSplit splitProcessors = splitProcessors(
-				dataflow.getProcessors(), firstProcessor);
-		Set<Processor> possibles = new HashSet<>(
-				splitProcessors.getUnconnected());
-		possibles.addAll(splitProcessors.getUpStream());
-		return possibles;
-	}
-
-	/**
-	 * @param processors
-	 * @param splitPoint
-	 * @return
-	 */
-	public ProcessorSplit splitProcessors(Collection<Processor> processors,
-			Processor splitPoint) {
-		Set<Processor> upStream = new HashSet<>();
-		Set<Processor> downStream = new HashSet<>();
-		Set<Processor> queue = new HashSet<>();
-
-		queue.add(splitPoint);
-
-		// First let's go upstream
-		while (!queue.isEmpty()) {
-			Processor processor = queue.iterator().next();
-			queue.remove(processor);
-			List<BlockingControlLink> preConditions = controlLinksBlocking(processor);
-			for (BlockingControlLink condition : preConditions) {
-				Processor upstreamProc = condition.getUntilFinished();
-				if (!upStream.contains(upstreamProc)) {
-					upStream.add(upstreamProc);
-					queue.add(upstreamProc);
-				}
-			}
-			for (InputProcessorPort inputPort : processor.getInputPorts())
-				for (DataLink incomingLink : datalinksTo(inputPort)) {
-					SenderPort source = incomingLink.getReceivesFrom();
-					if (!(source instanceof OutputProcessorPort))
-						continue;
-					Processor upstreamProc = ((OutputProcessorPort) source)
-							.getParent();
-					if (!upStream.contains(upstreamProc)) {
-						upStream.add(upstreamProc);
-						queue.add(upstreamProc);
-					}
-				}
-		}
-		// Our split
-		queue.add(splitPoint);
-		// Then downstream
-		while (!queue.isEmpty()) {
-			Processor processor = queue.iterator().next();
-			queue.remove(processor);
-			List<BlockingControlLink> controlledConditions = controlLinksWaitingFor(processor);
-			for (BlockingControlLink condition : controlledConditions) {
-				Processor downstreamProc = condition.getBlock();
-				if (!downStream.contains(downstreamProc)) {
-					downStream.add(downstreamProc);
-					queue.add(downstreamProc);
-				}
-			}
-			for (OutputProcessorPort outputPort : processor.getOutputPorts())
-				for (DataLink datalink : datalinksFrom(outputPort)) {
-					ReceiverPort sink = datalink.getSendsTo();
-					if (!(sink instanceof InputProcessorPort))
-						continue;
-					Processor downstreamProcc = ((InputProcessorPort) sink)
-							.getParent();
-					if (!downStream.contains(downstreamProcc)) {
-						downStream.add(downstreamProcc);
-						queue.add(downstreamProcc);
-					}
-				}
-		}
-		Set<Processor> undecided = new HashSet<>(processors);
-		undecided.remove(splitPoint);
-		undecided.removeAll(upStream);
-		undecided.removeAll(downStream);
-		return new ProcessorSplit(splitPoint, upStream, downStream, undecided);
-	}
-
-	/**
-	 * Result bean returned from
-	 * {@link Scufl2Tools#splitProcessors(Collection, Processor)}.
-	 * 
-	 * @author Stian Soiland-Reyes
-	 */
-	public static class ProcessorSplit {
-		private final Processor splitPoint;
-		private final Set<Processor> upStream;
-		private final Set<Processor> downStream;
-		private final Set<Processor> unconnected;
-
-		/**
-		 * Processor that was used as a split point.
-		 * 
-		 * @return Split point processor
-		 */
-		public Processor getSplitPoint() {
-			return splitPoint;
-		}
-
-		/**
-		 * Processors that are upstream from the split point.
-		 * 
-		 * @return Upstream processors
-		 */
-		public Set<Processor> getUpStream() {
-			return upStream;
-		}
-
-		/**
-		 * Processors that are downstream from the split point.
-		 * 
-		 * @return Downstream processors
-		 */
-		public Set<Processor> getDownStream() {
-			return downStream;
-		}
-
-		/**
-		 * Processors that are unconnected to the split point.
-		 * <p>
-		 * These are processors in the dataflow that are neither upstream,
-		 * downstream or the split point itself.
-		 * <p>
-		 * Note that this does not imply a total graph separation, for instance
-		 * processors in {@link #getUpStream()} might have some of these
-		 * unconnected processors downstream, but not along the path to the
-		 * {@link #getSplitPoint()}, or they could be upstream from any
-		 * processor in {@link #getDownStream()}.
-		 * 
-		 * @return Processors unconnected from the split point
-		 */
-		public Set<Processor> getUnconnected() {
-			return unconnected;
-		}
-
-		/**
-		 * Construct a new processor split result.
-		 * 
-		 * @param splitPoint
-		 *            Processor used as split point
-		 * @param upStream
-		 *            Processors that are upstream from split point
-		 * @param downStream
-		 *            Processors that are downstream from split point
-		 * @param unconnected
-		 *            The rest of the processors, that are by definition
-		 *            unconnected to split point
-		 */
-		public ProcessorSplit(Processor splitPoint, Set<Processor> upStream,
-				Set<Processor> downStream, Set<Processor> unconnected) {
-			this.splitPoint = splitPoint;
-			this.upStream = upStream;
-			this.downStream = downStream;
-			this.unconnected = unconnected;
-		}
-	}
-
-	/**
-	 * Return nested workflow for processor as configured in given profile.
-	 * <p>
-	 * A nested workflow is an activity bound to the processor with the
-	 * configurable type equal to {@value #NESTED_WORKFLOW}.
-	 * <p>
-	 * This method returns <code>null</code> if no such workflow was found,
-	 * otherwise the configured workflow.
-	 * <p
-	 * Note that even if several bindings/configurations map to a different
-	 * workflow, this method throws an IllegalStateException. Most workflows
-	 * will only have a single workflow for a given profile, to handle more
-	 * complex cases use instead
-	 * {@link #nestedWorkflowsForProcessor(Processor, Profile)}.
-	 * 
-	 * @throws NullPointerException
-	 *             if the given profile does not have a parent
-	 * @throws IllegalStateException
-	 *             if a nested workflow configuration is invalid, or more than
-	 *             one possible workflow is found
-	 * 
-	 * @param processor
-	 *            Processor which might have a nested workflow
-	 * @param profile
-	 *            Profile to look for nested workflow activity/configuration.
-	 *            The profile must have a {@link WorkflowBundle} set as its
-	 *            {@link Profile#setParent(WorkflowBundle)}.
-	 * @return The configured nested workflows for processor
-	 */
-	public Workflow nestedWorkflowForProcessor(Processor processor,
-			Profile profile) {
-		List<Workflow> wfs = nestedWorkflowsForProcessor(processor, profile);
-		if (wfs.isEmpty())
-			return null;
-		if (wfs.size() > 1)
-			throw new IllegalStateException(
-					"More than one possible workflow for processor "
-							+ processor);
-		return wfs.get(0);
-	}
-
-	/**
-	 * Return list of nested workflows for processor as configured in given
-	 * profile.
-	 * <p>
-	 * A nested workflow is an activity bound to the processor with the
-	 * configurable type equal to {@value #NESTED_WORKFLOW}.
-	 * <p>
-	 * This method returns a list of 0 or more workflows, as every matching
-	 * {@link ProcessorBinding} and every matching {@link Configuration} for the
-	 * bound activity is considered. Normally there will only be a single nested
-	 * workflow, in which case the
-	 * {@link #nestedWorkflowForProcessor(Processor, Profile)} method should be
-	 * used instead.
-	 * <p>
-	 * Note that even if several bindings/configurations map to the same
-	 * workflow, each workflow is only included once in the list. Nested
-	 * workflow configurations that are incomplete or which #workflow can't be
-	 * found within the workflow bundle of the profile will be silently ignored.
-	 * 
-	 * @throws NullPointerException
-	 *             if the given profile does not have a parent
-	 * @throws IllegalStateException
-	 *             if a nested workflow configuration is invalid
-	 * 
-	 * @param processor
-	 *            Processor which might have a nested workflow
-	 * @param profile
-	 *            Profile to look for nested workflow activity/configuration.
-	 *            The profile must have a {@link WorkflowBundle} set as its
-	 *            {@link Profile#setParent(WorkflowBundle)}.
-	 * @return List of configured nested workflows for processor
-	 */
-	public List<Workflow> nestedWorkflowsForProcessor(Processor processor,
-			Profile profile) {
-		WorkflowBundle bundle = profile.getParent();
-		if (bundle == null)
-			throw new NullPointerException("Parent must be set for " + profile);
-		ArrayList<Workflow> workflows = new ArrayList<>();
-		for (ProcessorBinding binding : processorBindingsForProcessor(
-				processor, profile)) {
-			if (!binding.getBoundActivity().getType().equals(NESTED_WORKFLOW))
-				continue;
-			for (Configuration c : configurationsFor(
-					binding.getBoundActivity(), profile)) {
-				JsonNode nested = c.getJson().get("nestedWorkflow");
-				Workflow wf = bundle.getWorkflows().getByName(nested.asText());
-				if (wf != null && !workflows.contains(wf))
-					workflows.add(wf);
-			}
-		}
-		return workflows;
-	}
-
-	/**
-	 * Returns true if processor contains a nested workflow in any of its
-	 * activities in any of its profiles.
-	 */
-	public boolean containsNestedWorkflow(Processor processor) {
-		for (Profile profile : processor.getParent().getParent().getProfiles())
-			if (containsNestedWorkflow(processor, profile))
-				return true;
-		return false;
-	}
-
-	/**
-	 * Returns true if processor contains a nested workflow in the specified
-	 * profile.
-	 */
-	public boolean containsNestedWorkflow(Processor processor, Profile profile) {
-		for (ProcessorBinding binding : processorBindingsForProcessor(
-				processor, profile))
-			if (binding.getBoundActivity().getType().equals(NESTED_WORKFLOW))
-				return true;
-		return false;
-	}
-
-	public void createActivityPortsFromProcessor(Activity activity,
-			Processor processor) {
-		for (InputProcessorPort processorPort : processor.getInputPorts())
-			new InputActivityPort(activity, processorPort.getName())
-					.setDepth(processorPort.getDepth());
-		for (OutputProcessorPort processorPort : processor.getOutputPorts()) {
-			OutputActivityPort activityPort = new OutputActivityPort(activity,
-					processorPort.getName());
-			activityPort.setDepth(processorPort.getDepth());
-			activityPort.setGranularDepth(processorPort.getGranularDepth());
-		}
-	}
-
-	public void createProcessorPortsFromActivity(Processor processor,
-			Activity activity) {
-		for (InputActivityPort activityPort : activity.getInputPorts())
-			new InputProcessorPort(processor, activityPort.getName())
-					.setDepth(activityPort.getDepth());
-		for (OutputActivityPort activityPort : activity.getOutputPorts()) {
-			OutputProcessorPort procPort = new OutputProcessorPort(processor,
-					activityPort.getName());
-			procPort.setDepth(activityPort.getDepth());
-			procPort.setGranularDepth(activityPort.getGranularDepth());
-		}
-	}
-
-	public ProcessorBinding bindActivityToProcessorByMatchingPorts(
-			Activity activity, Processor processor) {
-		ProcessorBinding binding = new ProcessorBinding();
-		binding.setParent(activity.getParent());
-		binding.setBoundActivity(activity);
-		binding.setBoundProcessor(processor);
-		bindActivityToProcessorByMatchingPorts(binding);
-		return binding;
-	}
-
-	public void bindActivityToProcessorByMatchingPorts(ProcessorBinding binding) {
-		Activity activity = binding.getBoundActivity();
-		Processor processor = binding.getBoundProcessor();
-		for (InputActivityPort activityPort : activity.getInputPorts()) {
-			InputProcessorPort processorPort = processor.getInputPorts()
-					.getByName(activityPort.getName());
-			if (processorPort != null
-					&& processorPortBindingInternalInBinding(processorPort,
-							binding) == null)
-				new ProcessorInputPortBinding(binding, processorPort,
-						activityPort);
-		}
-
-		for (OutputProcessorPort processorPort : processor.getOutputPorts()) {
-			OutputActivityPort activityPort = activity.getOutputPorts()
-					.getByName(processorPort.getName());
-			if (activityPort != null
-					&& processorPortBindingInternalInBinding(activityPort,
-							binding) == null)
-				new ProcessorOutputPortBinding(binding, activityPort,
-						processorPort);
-		}
-	}
-
-	public ProcessorBinding createProcessorAndBindingFromActivity(
-			Activity activity) {
-		Processor proc = new Processor();
-		proc.setName(activity.getName());
-		createProcessorPortsFromActivity(proc, activity);
-		return bindActivityToProcessorByMatchingPorts(activity, proc);
-	}
-
-	public Activity createActivityFromProcessor(Processor processor,
-			Profile profile) {
-		Activity activity = new Activity();
-		activity.setName(processor.getName());
-		activity.setParent(profile);
-		createActivityPortsFromProcessor(activity, processor);
-		bindActivityToProcessorByMatchingPorts(activity, processor);
-		return activity;
-	}
-
-	public void removePortsBindingForUnknownPorts(ProcessorBinding binding) {
-		// First, remove ports no longer owned by processor
-		Iterator<ProcessorInputPortBinding> inputBindings = binding
-				.getInputPortBindings().iterator();
-		Activity activity = binding.getBoundActivity();
-		Processor processor = binding.getBoundProcessor();
-		for (ProcessorInputPortBinding ip : iterable(inputBindings)) {
-			if (!activity.getInputPorts().contains(ip.getBoundActivityPort())) {
-				inputBindings.remove();
-				continue;
-			}
-			if (!processor.getInputPorts().contains(ip.getBoundProcessorPort())) {
-				inputBindings.remove();
-				continue;
-			}
-		}
-		Iterator<ProcessorOutputPortBinding> outputBindings = binding
-				.getOutputPortBindings().iterator();
-		for (ProcessorOutputPortBinding op : iterable(outputBindings)) {
-			if (!activity.getOutputPorts().contains(op.getBoundActivityPort())) {
-				outputBindings.remove();
-				continue;
-			}
-			if (!processor.getOutputPorts()
-					.contains(op.getBoundProcessorPort())) {
-				outputBindings.remove();
-				continue;
-			}
-		}
-	}
-
-	public void updateBindingByMatchingPorts(ProcessorBinding binding) {
-		removePortsBindingForUnknownPorts(binding);
-		bindActivityToProcessorByMatchingPorts(binding);
-	}
-
-	private <T> Iterable<T> iterable(final Iterator<T> it) {
-		return new Iterable<T>() {
-			@Override
-			public Iterator<T> iterator() {
-				return it;
-			}
-		};
-	}
-
-	public static URI CONSTANT = URI
-			.create("http://ns.taverna.org.uk/2010/activity/constant");
-
-	public static URI CONSTANT_CONFIG = CONSTANT.resolve("#Config");
-
-	public Processor createConstant(Workflow workflow, Profile profile,
-			String name) {
-		Processor processor = new Processor(null, name);
-		workflow.getProcessors().addWithUniqueName(processor);
-		processor.setParent(workflow);
-		OutputProcessorPort valuePort = new OutputProcessorPort(processor,
-				CONSTANT_VALUE_PORT);
-		valuePort.setDepth(0);
-		valuePort.setGranularDepth(0);
-
-		Activity activity = createActivityFromProcessor(processor, profile);
-		activity.setType(CONSTANT);
-		createConfigurationFor(activity, CONSTANT_CONFIG);
-		return processor;
-	}
-
-	public Configuration createConfigurationFor(Activity activity,
-			URI configType) {
-		Profile profile = activity.getParent();
-
-		Configuration config = new Configuration(activity.getName());
-		profile.getConfigurations().addWithUniqueName(config);
-		config.setParent(profile);
-
-		config.setConfigures(activity);
-		config.setType(configType);
-		return config;
-	}
-
-	public Configuration createConfigurationFor(Processor processor,
-			Profile profile) {
-		Configuration config = new Configuration(processor.getName() + "-proc");
-		profile.getConfigurations().addWithUniqueName(config);
-		config.setParent(profile);
-		config.setConfigures(processor);
-		config.setType(Processor.CONFIG_TYPE);
-		return config;
-	}
-
-	public void setConstantStringValue(Processor constant, String value,
-			Profile profile) {
-		Configuration config = configurationForActivityBoundToProcessor(
-				constant, profile);
-		config.getJsonAsObjectNode().put(CONSTANT_STRING, value);
-	}
-
-	public String getConstantStringValue(Processor constant, Profile profile) {
-		Configuration config = configurationForActivityBoundToProcessor(
-				constant, profile);
-		return config.getJson().get(CONSTANT_STRING).asText();
-	}
-
-	public Set<Processor> getConstants(Workflow workflow, Profile profile) {
-		Set<Processor> procs = new LinkedHashSet<>();
-		for (Configuration config : profile.getConfigurations()) {
-			Configurable configurable = config.getConfigures();
-			if (!CONSTANT.equals(configurable.getType())
-					|| !(configurable instanceof Activity))
-				continue;
-			for (ProcessorBinding bind : processorBindingsToActivity((Activity) configurable))
-				procs.add(bind.getBoundProcessor());
-		}
-		return procs;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Typed.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Typed.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Typed.java
deleted file mode 100644
index b180f71..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Typed.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-
-/**
- * A typed {@link WorkflowBean}.
- * 
- * @author Stian Soiland-Reyes
- */
-public interface Typed extends WorkflowBean {
-	/**
-	 * Returns the type of the {@link WorkflowBean}.
-	 * 
-	 * @return the type of the <code>WorkflowBean</code>
-	 */
-	URI getType();
-
-	/**
-	 * Sets the type of the {@link WorkflowBean}.
-	 * 
-	 * @param type
-	 *            the type of the <code>WorkflowBean</code>.
-	 */
-	void setType(URI type);
-}


[19/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.ttl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.ttl b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.ttl
deleted file mode 100644
index 961dd8b..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.ttl
+++ /dev/null
@@ -1,1691 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-@prefix : <http://ns.taverna.org.uk/2010/scufl2#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix xml: <http://www.w3.org/XML/1998/namespace> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix dcterms: <http://purl.org/dc/terms/> .
-@base <http://ns.taverna.org.uk/2010/scufl2> .
-
-<http://ns.taverna.org.uk/2010/scufl2> rdf:type owl:Ontology ;
-                                       
-                                       rdfs:label "SCUFL2 Core ontology"@en ;
-                                       
-                                       rdfs:comment "The ontology defining SCUFL2 - a model for describing Taverna workflows."@en ;
-                                       
-                                       rdfs:seeAlso <http://www.mygrid.org.uk/dev/wiki/display/developer/Scufl2+Ontology> ,
-                                                    <http://www.taverna.org.uk/> .
-
-
-#################################################################
-#
-#    Object Properties
-#
-#################################################################
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#activateConfiguration
-
-:activateConfiguration rdf:type owl:ObjectProperty ;
-                       
-                       rdfs:label "activate configuration"@en ;
-                       
-                       rdfs:range :Configuration ;
-                       
-                       rdfs:domain :Profile ;
-                       
-                       rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#activityPort
-
-:activityPort rdf:type owl:ObjectProperty ;
-              
-              rdfs:label "Activity port"@en ;
-              
-              rdfs:domain :Activity ;
-              
-              rdfs:range :ActivityPort ;
-              
-              rdfs:subPropertyOf :port .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bind
-
-:bind rdf:type owl:AsymmetricProperty ,
-               owl:IrreflexiveProperty ,
-               owl:ObjectProperty ;
-      
-      rdfs:subPropertyOf :workflowRelation ;
-      
-      rdfs:domain [ rdf:type owl:Class ;
-                    owl:unionOf ( :PortBinding
-                                  :ProcessorBinding
-                                )
-                  ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindActivity
-
-:bindActivity rdf:type owl:FunctionalProperty ,
-                       owl:ObjectProperty ;
-              
-              rdfs:label "bind activity"@en ;
-              
-              rdfs:range :Activity ;
-              
-              rdfs:domain :ProcessorBinding ;
-              
-              rdfs:subPropertyOf :bind .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindInputActivityPort
-
-:bindInputActivityPort rdf:type owl:FunctionalProperty ,
-                                owl:ObjectProperty ;
-                       
-                       rdfs:label "bind input activity port"@en ;
-                       
-                       rdfs:range :InputActivityPort ;
-                       
-                       rdfs:domain :InputPortBinding ;
-                       
-                       rdfs:subPropertyOf :bindPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindInputProcessorPort
-
-:bindInputProcessorPort rdf:type owl:FunctionalProperty ,
-                                 owl:ObjectProperty ;
-                        
-                        rdfs:label "bind input processor port"@en ;
-                        
-                        rdfs:domain :InputPortBinding ;
-                        
-                        rdfs:range :InputProcessorPort ;
-                        
-                        rdfs:subPropertyOf :bindPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindOutputActivityPort
-
-:bindOutputActivityPort rdf:type owl:FunctionalProperty ,
-                                 owl:ObjectProperty ;
-                        
-                        rdfs:label "bind output activity port"@en ;
-                        
-                        rdfs:range :OutputActivityPort ;
-                        
-                        rdfs:domain :OutputPortBinding ;
-                        
-                        rdfs:subPropertyOf :bindPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindOutputProcessorPort
-
-:bindOutputProcessorPort rdf:type owl:FunctionalProperty ,
-                                  owl:ObjectProperty ;
-                         
-                         rdfs:label "bind output processor port"@en ;
-                         
-                         rdfs:domain :OutputPortBinding ;
-                         
-                         rdfs:range :OutputProcessorPort ;
-                         
-                         rdfs:subPropertyOf :bindPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindPort
-
-:bindPort rdf:type owl:ObjectProperty ;
-          
-          rdfs:domain :PortBinding ;
-          
-          rdfs:subPropertyOf :bind ;
-          
-          rdfs:range [ rdf:type owl:Class ;
-                       owl:unionOf ( :ActivityPort
-                                     :ProcessorPort
-                                   )
-                     ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#bindProcessor
-
-:bindProcessor rdf:type owl:FunctionalProperty ,
-                        owl:ObjectProperty ;
-               
-               rdfs:label "bind processor"@en ;
-               
-               rdfs:range :Processor ;
-               
-               rdfs:domain :ProcessorBinding ;
-               
-               rdfs:subPropertyOf :bind .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#block
-
-:block rdf:type owl:FunctionalProperty ,
-                owl:ObjectProperty ;
-       
-       rdfs:domain :Blocking ;
-       
-       rdfs:subPropertyOf :controlledProcessor .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#child
-
-:child rdf:type owl:AsymmetricProperty ,
-                owl:InverseFunctionalProperty ,
-                owl:IrreflexiveProperty ,
-                owl:ObjectProperty ;
-       
-       rdfs:label "child"@en ;
-       
-       rdfs:range :Child ;
-       
-       rdfs:domain :Parent ;
-       
-       owl:inverseOf :parent ;
-       
-       rdfs:subPropertyOf :workflowRelation ,
-                          dcterms:hasPart .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#configure
-
-:configure rdf:type owl:FunctionalProperty ,
-                    owl:ObjectProperty ;
-           
-           rdfs:label "configure"@en ;
-           
-           rdfs:range :Configurable ;
-           
-           rdfs:domain :Configuration ;
-           
-           rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#control
-
-:control rdf:type owl:ObjectProperty ;
-         
-         rdfs:range :Control ;
-         
-         rdfs:domain :Workflow ;
-         
-         rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#controlledProcessor
-
-:controlledProcessor rdf:type owl:ObjectProperty ;
-                     
-                     rdfs:domain :Control ;
-                     
-                     rdfs:range :Processor ;
-                     
-                     rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#controllingProcessor
-
-:controllingProcessor rdf:type owl:FunctionalProperty ,
-                               owl:ObjectProperty ;
-                      
-                      rdfs:label "controlling processor"@en ;
-                      
-                      rdfs:domain :Control ;
-                      
-                      rdfs:range :Processor ;
-                      
-                      rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#datalink
-
-:datalink rdf:type owl:ObjectProperty ;
-          
-          rdfs:label "datalink"@en ;
-          
-          rdfs:range :DataLink ;
-          
-          rdfs:domain :Workflow ;
-          
-          rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#dispatchStack
-
-:dispatchStack rdf:type owl:FunctionalProperty ,
-                        owl:ObjectProperty ;
-               
-               rdfs:label "dispatch stack"@en ;
-               
-               owl:deprecated "true"^^xsd:boolean ;
-               
-               rdfs:comment "Dispatch stack has been deprecated in favour of configuring the Processor"@en ;
-               
-               rdfs:range :DispatchStack ;
-               
-               rdfs:domain :Processor ;
-               
-               rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#globalBaseURI
-
-:globalBaseURI rdf:type owl:ObjectProperty ,
-                        owl:ReflexiveProperty ,
-                        owl:SymmetricProperty ,
-                        owl:TransitiveProperty ;
-               
-               rdfs:comment """The resources are the same (like in owl:sameAs), and
-      so are the sub-resources having the same base URI as a parent.  For instance if 
-        <file:///tmp/example/> scufl2:globalBaseURI 
-            <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/> .
-      then also 
-        <file:///tmp/example/workflow/HelloWorld/> scufl2:globalBaseURI 
-            <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/> 
-
-      Note that for URIs under
-      <http://ns.taverna.org.uk/2010/workflowBundle/> special URI template rules
-      link the URI with the scufl2:parent, rdf:type, scufl2:name of the
-      resource. 
-      
-      For instance given 
-        <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello/out/greeting> 
-      it must be so that:
-
-        <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello/out/greeting>
-            a scufl2:OutputProcessorPort;
-            scufl2:name \"greeting\";
-            scufl2:parent <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello>.
-
-        <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello>
-            a scufl2:Processor;
-            scufl2:name \"Hello\";
-            scufl2:parent <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/>;
-            scufl2:outputProcessorPort <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello/out/greeting>.
-        
-        <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/>    
-            a scufl2:Workflow;
-            scufl2:name \"HelloWorld\";
-            scufl2:parent <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/>;
-            sculf2:processor <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello>.
-        
-        <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/>    
-            a scufl2:WorkflowBundle;
-            scufl2:workflow <http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/>;
-            scufl2:workflowBundleId \"28f7c554-4f35-401f-b34b-516e9a0ef731\";
-
-        Where 28f7c554-4f35-401f-b34b-516e9a0ef731 must be a randomly
-        generated UUID.    
-    """ ;
-               
-               rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#inputActivityPort
-
-:inputActivityPort rdf:type owl:ObjectProperty ;
-                   
-                   rdfs:label "input acticity port"@en ;
-                   
-                   rdfs:domain :Activity ;
-                   
-                   rdfs:range :InputActivityPort ;
-                   
-                   rdfs:subPropertyOf :activityPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#inputPortBinding
-
-:inputPortBinding rdf:type owl:ObjectProperty ;
-                  
-                  rdfs:label "input port binding"@en ;
-                  
-                  rdfs:range :InputPortBinding ;
-                  
-                  rdfs:domain :ProcessorBinding ;
-                  
-                  rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#inputProcessorPort
-
-:inputProcessorPort rdf:type owl:ObjectProperty ;
-                    
-                    rdfs:label "input processor port"@en ;
-                    
-                    rdfs:range :InputProcessorPort ;
-                    
-                    rdfs:domain :Processor ;
-                    
-                    rdfs:subPropertyOf :processorPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#inputWorkflowPort
-
-:inputWorkflowPort rdf:type owl:ObjectProperty ;
-                   
-                   rdfs:label "input workflow port"@en ;
-                   
-                   rdfs:range :InputWorkflowPort ;
-                   
-                   rdfs:domain :Workflow ;
-                   
-                   rdfs:subPropertyOf :workflowPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#iterateOverInputPort
-
-:iterateOverInputPort rdf:type owl:FunctionalProperty ,
-                               owl:ObjectProperty ;
-                      
-                      rdfs:range :InputProcessorPort ;
-                      
-                      rdfs:domain :PortNode ;
-                      
-                      rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#iterationStrategyStack
-
-:iterationStrategyStack rdf:type owl:FunctionalProperty ,
-                                 owl:ObjectProperty ;
-                        
-                        rdfs:label "iteration strategy stack"@en ;
-                        
-                        rdfs:range :IterationStrategyStack ;
-                        
-                        rdfs:domain :Processor ;
-                        
-                        rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#mainProfile
-
-:mainProfile rdf:type owl:FunctionalProperty ,
-                      owl:ObjectProperty ;
-             
-             rdfs:label "main profile"@en ;
-             
-             rdfs:range :Profile ;
-             
-             rdfs:domain :WorkflowBundle ;
-             
-             rdfs:subPropertyOf :profile .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#mainWorkflow
-
-:mainWorkflow rdf:type owl:FunctionalProperty ,
-                       owl:ObjectProperty ;
-              
-              rdfs:label "main workflow"@en ;
-              
-              rdfs:range :Workflow ;
-              
-              rdfs:domain :WorkflowBundle ;
-              
-              rdfs:subPropertyOf :workflow .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#outputActivityPort
-
-:outputActivityPort rdf:type owl:ObjectProperty ;
-                    
-                    rdfs:label "output activity port"@en ;
-                    
-                    rdfs:domain :Activity ;
-                    
-                    rdfs:range :OutputActivityPort ;
-                    
-                    rdfs:subPropertyOf :activityPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#outputPortBinding
-
-:outputPortBinding rdf:type owl:ObjectProperty ;
-                   
-                   rdfs:label "output port binding"@en ;
-                   
-                   rdfs:range :OutputPortBinding ;
-                   
-                   rdfs:domain :ProcessorBinding ;
-                   
-                   rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#outputProcessorPort
-
-:outputProcessorPort rdf:type owl:ObjectProperty ;
-                     
-                     rdfs:label "output processor port"@en ;
-                     
-                     rdfs:range :OutputProcessorPort ;
-                     
-                     rdfs:domain :Processor ;
-                     
-                     rdfs:subPropertyOf :processorPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#outputWorkflowPort
-
-:outputWorkflowPort rdf:type owl:ObjectProperty ;
-                    
-                    rdfs:label "output workflow port"@en ;
-                    
-                    rdfs:range :OutputWorkflowPort ;
-                    
-                    rdfs:domain :Workflow ;
-                    
-                    rdfs:subPropertyOf :workflowPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#parent
-
-:parent rdf:type owl:FunctionalProperty ,
-                 owl:ObjectProperty ;
-        
-        rdfs:label "parent"@en ;
-        
-        rdfs:domain :Child ;
-        
-        rdfs:range :Parent ;
-        
-        rdfs:subPropertyOf :workflowRelation ,
-                           dcterms:isPartOf ;
-        
-        owl:propertyChainAxiom ( :receiveFrom
-                                 :parent
-                               ) ,
-                               ( :controllingProcessor
-                                 :parent
-                               ) ,
-                               ( :sendTo
-                                 :parent
-                               ) ,
-                               ( :controlledProcessor
-                                 :parent
-                               ) .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#port
-
-:port rdf:type owl:ObjectProperty ;
-      
-      rdfs:label "port"@en ;
-      
-      rdfs:domain :Parent ;
-      
-      rdfs:range :Port ;
-      
-      rdfs:subPropertyOf :child ;
-      
-      rdfs:domain [ rdf:type owl:Class ;
-                    owl:unionOf ( :Activity
-                                  :Processor
-                                  :Workflow
-                                )
-                  ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#processor
-
-:processor rdf:type owl:ObjectProperty ;
-           
-           rdfs:label "processor"@en ;
-           
-           rdfs:range :Processor ;
-           
-           rdfs:domain :Workflow ;
-           
-           rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#processorBinding
-
-:processorBinding rdf:type owl:ObjectProperty ;
-                  
-                  rdfs:label "processor binding"@en ;
-                  
-                  rdfs:range :ProcessorBinding ;
-                  
-                  rdfs:domain :Profile ;
-                  
-                  rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#processorPort
-
-:processorPort rdf:type owl:ObjectProperty ;
-               
-               rdfs:label "processor port"@en ;
-               
-               rdfs:domain :Processor ;
-               
-               rdfs:range :ProcessorPort ;
-               
-               rdfs:subPropertyOf :port .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#productOf
-
-:productOf rdf:type owl:ObjectProperty ;
-           
-           rdfs:label "product of"@en ;
-           
-           rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#profile
-
-:profile rdf:type owl:ObjectProperty ;
-         
-         rdfs:label "profile"@en ;
-         
-         rdfs:range :Profile ;
-         
-         rdfs:domain :WorkflowBundle ;
-         
-         rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#receiveFrom
-
-:receiveFrom rdf:type owl:FunctionalProperty ,
-                      owl:ObjectProperty ;
-             
-             rdfs:label "receive from"@en ;
-             
-             rdfs:domain :DataLink ;
-             
-             rdfs:range :SenderPort ;
-             
-             rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#sendTo
-
-:sendTo rdf:type owl:FunctionalProperty ,
-                 owl:ObjectProperty ;
-        
-        rdfs:label "send to"@en ;
-        
-        rdfs:domain :DataLink ;
-        
-        rdfs:range :ReceiverPort ;
-        
-        rdfs:subPropertyOf :workflowRelation .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#untilFinished
-
-:untilFinished rdf:type owl:FunctionalProperty ,
-                        owl:ObjectProperty ;
-               
-               rdfs:label "until finished"@en ;
-               
-               rdfs:domain :Blocking ;
-               
-               rdfs:subPropertyOf :controllingProcessor .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#workflow
-
-:workflow rdf:type owl:ObjectProperty ;
-          
-          rdfs:label "workflow"@en ;
-          
-          rdfs:range :Workflow ;
-          
-          rdfs:domain :WorkflowBundle ;
-          
-          rdfs:subPropertyOf :child .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#workflowIdentifier
-
-:workflowIdentifier rdf:type owl:FunctionalProperty ,
-                             owl:ObjectProperty ;
-                    
-                    rdfs:label "workflow identifier"@en ;
-                    
-                    rdfs:domain :Workflow ;
-                    
-                    rdfs:subPropertyOf :workflowRelation ,
-                                       dcterms:isVersionOf .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#workflowPort
-
-:workflowPort rdf:type owl:ObjectProperty ;
-              
-              rdfs:label "workflow port"@en ;
-              
-              rdfs:domain :Workflow ;
-              
-              rdfs:range :WorkflowPort ;
-              
-              rdfs:subPropertyOf :port .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#workflowRelation
-
-:workflowRelation rdf:type owl:ObjectProperty ;
-                  
-                  rdfs:label "workflow relation"@en ;
-                  
-                  rdfs:domain :WorkflowElement ;
-                  
-                  rdfs:range :WorkflowElement ;
-                  
-                  rdfs:subPropertyOf dcterms:relation .
-
-
-
-###  http://purl.org/dc/terms/hasPart
-
-dcterms:hasPart rdf:type owl:ObjectProperty ;
-                
-                rdfs:isDefinedBy dcterms: .
-
-
-
-###  http://purl.org/dc/terms/isPartOf
-
-dcterms:isPartOf rdf:type owl:ObjectProperty ;
-                 
-                 rdfs:isDefinedBy dcterms: .
-
-
-
-###  http://purl.org/dc/terms/isVersionOf
-
-dcterms:isVersionOf rdf:type owl:ObjectProperty ;
-                    
-                    rdfs:isDefinedBy dcterms: .
-
-
-
-###  http://purl.org/dc/terms/relation
-
-dcterms:relation rdf:type owl:ObjectProperty ;
-                 
-                 rdfs:isDefinedBy dcterms: .
-
-
-
-###  http://www.w3.org/1999/02/22-rdf-syntax-ns#first
-
-rdf:first rdf:type owl:ObjectProperty ;
-          
-          rdfs:isDefinedBy rdf: .
-
-
-
-###  http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
-
-rdf:rest rdf:type owl:ObjectProperty ;
-         
-         rdfs:isDefinedBy rdf: .
-
-
-
-
-
-#################################################################
-#
-#    Data properties
-#
-#################################################################
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#activityPosition
-
-:activityPosition rdf:type owl:DatatypeProperty ,
-                           owl:FunctionalProperty ;
-                  
-                  rdfs:label "activity position"@en ;
-                  
-                  rdfs:domain :ProcessorBinding ;
-                  
-                  rdfs:range xsd:nonNegativeInteger .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#desiredDepth
-
-:desiredDepth rdf:type owl:DatatypeProperty ,
-                       owl:FunctionalProperty ;
-              
-              rdfs:label "desired depth"@en ;
-              
-              rdfs:domain :PortNode ;
-              
-              rdfs:range xsd:nonNegativeInteger .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#granularPortDepth
-
-:granularPortDepth rdf:type owl:DatatypeProperty ,
-                            owl:FunctionalProperty ;
-                   
-                   rdfs:label "granular port depth"@en ;
-                   
-                   rdfs:range xsd:nonNegativeInteger ;
-                   
-                   rdfs:domain [ rdf:type owl:Class ;
-                                 owl:unionOf ( :InputActivityPort
-                                               :InputProcessorPort
-                                               :OutputActivityPort
-                                             )
-                               ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#mergePosition
-
-:mergePosition rdf:type owl:DatatypeProperty ,
-                        owl:FunctionalProperty ;
-               
-               rdfs:label "merge position"@en ;
-               
-               rdfs:domain :DataLink ;
-               
-               rdfs:range xsd:integer .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#name
-
-:name rdf:type owl:DatatypeProperty ,
-               owl:FunctionalProperty ;
-      
-      rdfs:label "name"@en ;
-      
-      rdfs:domain :Named ;
-      
-      rdfs:subPropertyOf dcterms:identifier ;
-      
-      rdfs:range xsd:string .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#portDepth
-
-:portDepth rdf:type owl:DatatypeProperty ,
-                    owl:FunctionalProperty ;
-           
-           rdfs:label "port depth"@en ;
-           
-           rdfs:range xsd:nonNegativeInteger ;
-           
-           rdfs:domain [ rdf:type owl:Class ;
-                         owl:unionOf ( :InputActivityPort
-                                       :InputProcessorPort
-                                       :InputWorkflowPort
-                                       :OutputActivityPort
-                                     )
-                       ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#profilePosition
-
-:profilePosition rdf:type owl:DatatypeProperty ,
-                          owl:FunctionalProperty ;
-                 
-                 rdfs:label "profile position"@en ;
-                 
-                 rdfs:domain :Profile ;
-                 
-                 rdfs:range xsd:nonNegativeInteger .
-
-
-
-###  http://purl.org/dc/terms/identifier
-
-dcterms:identifier rdf:type owl:DatatypeProperty .
-
-
-
-
-
-#################################################################
-#
-#    Classes
-#
-#################################################################
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Activity
-
-:Activity rdf:type owl:Class ;
-          
-          rdfs:label "Activity"@en ;
-          
-          rdfs:subClassOf :Child ,
-                          :Configurable ,
-                          :Named ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :parent ;
-                            owl:allValuesFrom :Profile
-                          ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#ActivityPort
-
-:ActivityPort rdf:type owl:Class ;
-              
-              rdfs:label "Activity Port"@en ;
-              
-              rdfs:subClassOf :Child ,
-                              :Port ,
-                              [ rdf:type owl:Restriction ;
-                                owl:onProperty :parent ;
-                                owl:someValuesFrom :Activity
-                              ] ,
-                              [ rdf:type owl:Class ;
-                                owl:unionOf ( :InputActivityPort
-                                              :OutputActivityPort
-                                            )
-                              ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Blocking
-
-:Blocking rdf:type owl:Class ;
-          
-          rdfs:label "Blocking"@en ;
-          
-          rdfs:subClassOf :Control ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :block ;
-                            owl:someValuesFrom :Processor
-                          ] ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :untilFinished ;
-                            owl:someValuesFrom :Processor
-                          ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Child
-
-:Child rdf:type owl:Class ;
-       
-       rdfs:label "Child"@en ;
-       
-       rdfs:subClassOf :WorkflowElement ,
-                       [ rdf:type owl:Restriction ;
-                         owl:onProperty :parent ;
-                         owl:onClass :Parent ;
-                         owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger
-                       ] ;
-       
-       rdfs:comment """A WorkflowElement which can be considered a child, for instance a Processor is a child of a Workflow, an InputActivityPort is a child of an Activity.
-
-The Child-relationship also gives a strong hint that the entity should be serialised as part of its parent's serialisation."""@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Configurable
-
-:Configurable rdf:type owl:Class ;
-              
-              rdfs:label "Configurable"@en ;
-              
-              rdfs:subClassOf :WorkflowElement .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Configuration
-
-:Configuration rdf:type owl:Class ;
-               
-               rdfs:label "Configuration"@en ;
-               
-               rdfs:subClassOf :Named ,
-                               [ rdf:type owl:Restriction ;
-                                 owl:onProperty :configure ;
-                                 owl:someValuesFrom :Configurable
-                               ] ,
-                               [ rdf:type owl:Restriction ;
-                                 owl:onProperty :parent ;
-                                 owl:allValuesFrom :Profile
-                               ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Control
-
-:Control rdf:type owl:Class ;
-         
-         rdfs:label "Control"@en ;
-         
-         rdfs:subClassOf :Child ,
-                         [ rdf:type owl:Restriction ;
-                           owl:onProperty :parent ;
-                           owl:allValuesFrom :Workflow
-                         ] ,
-                         [ rdf:type owl:Restriction ;
-                           owl:onProperty :controllingProcessor ;
-                           owl:someValuesFrom :Processor
-                         ] ,
-                         [ rdf:type owl:Restriction ;
-                           owl:onProperty :controlledProcessor ;
-                           owl:someValuesFrom :Processor
-                         ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#CrossProduct
-
-:CrossProduct rdf:type owl:Class ;
-              
-              rdfs:label "Cross Product"@en ;
-              
-              rdfs:subClassOf :Product .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#DataLink
-
-:DataLink rdf:type owl:Class ;
-          
-          rdfs:label "Data Link"@en ;
-          
-          rdfs:subClassOf :Child ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :parent ;
-                            owl:allValuesFrom :Workflow
-                          ] ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :receiveFrom ;
-                            owl:someValuesFrom :Processor
-                          ] ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :sendTo ;
-                            owl:someValuesFrom :Processor
-                          ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#DispatchStack
-
-:DispatchStack rdf:type owl:Class ;
-               
-               rdfs:label "Dispatch Stack"@en ;
-               
-               rdfs:subClassOf :WorkflowElement ,
-                               rdf:List ,
-                               [ rdf:type owl:Restriction ;
-                                 owl:onProperty rdf:first ;
-                                 owl:allValuesFrom :DispatchStackLayer
-                               ] ,
-                               [ rdf:type owl:Class ;
-                                 owl:unionOf ( [ rdf:type owl:Restriction ;
-                                                 owl:onProperty rdf:rest ;
-                                                 owl:allValuesFrom :DispatchStack
-                                               ]
-                                               [ rdf:type owl:Restriction ;
-                                                 owl:onProperty rdf:rest ;
-                                                 owl:hasValue rdf:nil
-                                               ]
-                                             )
-                               ] ;
-               
-               owl:deprecated "true"^^xsd:boolean ;
-               
-               rdfs:comment "Dispatch stack has been deprecated in favour of configuring the Processor."@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer
-
-:DispatchStackLayer rdf:type owl:Class ;
-                    
-                    rdfs:label "Dispatch Stack Layer"@en ;
-                    
-                    rdfs:subClassOf :Configurable ,
-                                    [ rdf:type owl:Restriction ;
-                                      owl:onProperty :parent ;
-                                      owl:allValuesFrom :DispatchStack
-                                    ] ;
-                    
-                    owl:deprecated "true"^^xsd:boolean .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#DotProduct
-
-:DotProduct rdf:type owl:Class ;
-            
-            rdfs:label "Dot Product"@en ;
-            
-            rdfs:subClassOf :Product .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#InputActivityPort
-
-:InputActivityPort rdf:type owl:Class ;
-                   
-                   rdfs:label "Input Activity Port"@en ;
-                   
-                   rdfs:subClassOf :ActivityPort ,
-                                   [ rdf:type owl:Restriction ;
-                                     owl:onProperty :portDepth ;
-                                     owl:someValuesFrom xsd:nonNegativeInteger
-                                   ] ;
-                   
-                   owl:disjointWith :OutputActivityPort .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#InputPortBinding
-
-:InputPortBinding rdf:type owl:Class ;
-                  
-                  rdfs:label "Input Port Binding"@en ;
-                  
-                  rdfs:subClassOf :PortBinding ,
-                                  [ rdf:type owl:Restriction ;
-                                    owl:onProperty :bindInputProcessorPort ;
-                                    owl:someValuesFrom :InputProcessorPort
-                                  ] ,
-                                  [ rdf:type owl:Restriction ;
-                                    owl:onProperty :bindInputActivityPort ;
-                                    owl:someValuesFrom :InputActivityPort
-                                  ] ;
-                  
-                  owl:disjointWith :OutputPortBinding .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort
-
-:InputProcessorPort rdf:type owl:Class ;
-                    
-                    rdfs:label "Input Processor Port"@en ;
-                    
-                    rdfs:subClassOf :ProcessorPort ,
-                                    :ReceiverPort ,
-                                    [ rdf:type owl:Restriction ;
-                                      owl:onProperty :portDepth ;
-                                      owl:someValuesFrom xsd:nonNegativeInteger
-                                    ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort
-
-:InputWorkflowPort rdf:type owl:Class ;
-                   
-                   rdfs:label "Input Workflow Port"@en ;
-                   
-                   rdfs:subClassOf :SenderPort ,
-                                   :WorkflowPort ,
-                                   [ rdf:type owl:Restriction ;
-                                     owl:onProperty :portDepth ;
-                                     owl:someValuesFrom xsd:nonNegativeInteger
-                                   ] ;
-                   
-                   rdfs:comment """An input to the workflow, representing a parameter required to run the workflow. 
-
-This is considered a SenderPort within the workflow, so that it can be connected to InputProcessorPort of processors contained by the same workflow."""@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#IterationStrategyChildren
-
-:IterationStrategyChildren rdf:type owl:Class ;
-                           
-                           rdfs:label "Iteration Strategy Children"@en ;
-                           
-                           rdfs:subClassOf :WorkflowElement ,
-                                           rdf:List ,
-                                           [ rdf:type owl:Class ;
-                                             owl:unionOf ( [ rdf:type owl:Restriction ;
-                                                             owl:onProperty rdf:rest ;
-                                                             owl:allValuesFrom :IterationStrategyChildren
-                                                           ]
-                                                           [ rdf:type owl:Restriction ;
-                                                             owl:onProperty rdf:rest ;
-                                                             owl:hasValue rdf:nil
-                                                           ]
-                                                         )
-                                           ] ,
-                                           [ rdf:type owl:Restriction ;
-                                             owl:onProperty rdf:first ;
-                                             owl:allValuesFrom :IterationStrategyNode
-                                           ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#IterationStrategyNode
-
-:IterationStrategyNode rdf:type owl:Class ;
-                       
-                       rdfs:label "Iteration Strategy Node"@en ;
-                       
-                       rdfs:subClassOf :WorkflowElement .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#IterationStrategyStack
-
-:IterationStrategyStack rdf:type owl:Class ;
-                        
-                        rdfs:label "Iteration Strategy Stack"@en ;
-                        
-                        rdfs:subClassOf :WorkflowElement ,
-                                        rdf:List ,
-                                        [ rdf:type owl:Class ;
-                                          owl:unionOf ( [ rdf:type owl:Restriction ;
-                                                          owl:onProperty rdf:rest ;
-                                                          owl:allValuesFrom :IterationStrategyStack
-                                                        ]
-                                                        [ rdf:type owl:Restriction ;
-                                                          owl:onProperty rdf:rest ;
-                                                          owl:hasValue rdf:nil
-                                                        ]
-                                                      )
-                                        ] ,
-                                        [ rdf:type owl:Restriction ;
-                                          owl:onProperty rdf:first ;
-                                          owl:allValuesFrom :Product
-                                        ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Named
-
-:Named rdf:type owl:Class ;
-       
-       rdfs:label "Named"@en ;
-       
-       rdfs:subClassOf :WorkflowElement ,
-                       [ rdf:type owl:Restriction ;
-                         owl:onProperty :name ;
-                         owl:someValuesFrom xsd:string
-                       ] ;
-       
-       rdfs:comment "Anything identified with a scufl2:name"@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#NamedChild
-
-:NamedChild rdf:type owl:Class ;
-            
-            rdfs:label "Named Child"@en ;
-            
-            owl:equivalentClass [ rdf:type owl:Class ;
-                                  owl:intersectionOf ( [ rdf:type owl:Restriction ;
-                                                         owl:onProperty :parent ;
-                                                         owl:someValuesFrom :Parent
-                                                       ]
-                                                       [ rdf:type owl:Restriction ;
-                                                         owl:onProperty :name ;
-                                                         owl:someValuesFrom xsd:string
-                                                       ]
-                                                     )
-                                ] ;
-            
-            rdfs:subClassOf :Child ,
-                            :Named ;
-            
-            rdfs:comment "Any Named Child is uniquely identified by its scufl2:name and scufl2:parent"@en ;
-            
-            owl:hasKey ( :parent
-                       ) ,
-                       ( :name
-                       ) .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort
-
-:OutputActivityPort rdf:type owl:Class ;
-                    
-                    rdfs:label "Output Activity Port"@en ;
-                    
-                    rdfs:subClassOf :ActivityPort ,
-                                    [ rdf:type owl:Restriction ;
-                                      owl:onProperty :granularPortDepth ;
-                                      owl:someValuesFrom xsd:nonNegativeInteger
-                                    ] ,
-                                    [ rdf:type owl:Restriction ;
-                                      owl:onProperty :portDepth ;
-                                      owl:someValuesFrom xsd:nonNegativeInteger
-                                    ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding
-
-:OutputPortBinding rdf:type owl:Class ;
-                   
-                   rdfs:label "Output Port binding"@en ;
-                   
-                   rdfs:subClassOf :PortBinding ,
-                                   [ rdf:type owl:Restriction ;
-                                     owl:onProperty :bindOutputActivityPort ;
-                                     owl:someValuesFrom :OutputActivityPort
-                                   ] ,
-                                   [ rdf:type owl:Restriction ;
-                                     owl:onProperty :bindOutputProcessorPort ;
-                                     owl:someValuesFrom :OutputProcessorPort
-                                   ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort
-
-:OutputProcessorPort rdf:type owl:Class ;
-                     
-                     rdfs:label "Output Processor Port"@en ;
-                     
-                     rdfs:subClassOf :ProcessorPort ,
-                                     :SenderPort ,
-                                     [ rdf:type owl:Restriction ;
-                                       owl:onProperty :granularPortDepth ;
-                                       owl:someValuesFrom xsd:nonNegativeInteger
-                                     ] ,
-                                     [ rdf:type owl:Restriction ;
-                                       owl:onProperty :portDepth ;
-                                       owl:someValuesFrom xsd:nonNegativeInteger
-                                     ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#OutputWorkflowPort
-
-:OutputWorkflowPort rdf:type owl:Class ;
-                    
-                    rdfs:label "Output Workflow Port"@en ;
-                    
-                    rdfs:subClassOf :ReceiverPort ,
-                                    :WorkflowPort ;
-                    
-                    rdfs:comment """An output from the workflow, representing the defined results of the workflow.
-
-This is considered a ReceiverPort within the workflow, so that it can be connected from OutputProcessorPort of processors contained by the same workflow."""@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Parent
-
-:Parent rdf:type owl:Class ;
-        
-        rdfs:label "Parent"@en ;
-        
-        rdfs:subClassOf :WorkflowElement .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Port
-
-:Port rdf:type owl:Class ;
-      
-      rdfs:label "Port"@en ;
-      
-      rdfs:subClassOf :Named ,
-                      [ rdf:type owl:Restriction ;
-                        owl:onProperty :name ;
-                        owl:someValuesFrom xsd:string
-                      ] ,
-                      [ rdf:type owl:Class ;
-                        owl:unionOf ( :ActivityPort
-                                      :ProcessorPort
-                                      :WorkflowPort
-                                    )
-                      ] ;
-      
-      rdfs:comment "A port is an input or output to a Processor, Workflow or Activity. "@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#PortBinding
-
-:PortBinding rdf:type owl:Class ;
-             
-             rdfs:label "Port Binding"@en ;
-             
-             rdfs:subClassOf :Child ,
-                             [ rdf:type owl:Class ;
-                               owl:unionOf ( :InputPortBinding
-                                             :OutputPortBinding
-                                           )
-                             ] ,
-                             [ rdf:type owl:Restriction ;
-                               owl:onProperty :parent ;
-                               owl:someValuesFrom :ProcessorBinding
-                             ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#PortNode
-
-:PortNode rdf:type owl:Class ;
-          
-          rdfs:label "Port Node"@en ;
-          
-          rdfs:subClassOf :IterationStrategyNode ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :iterateOverInputPort ;
-                            owl:someValuesFrom :InputProcessorPort
-                          ] ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :desiredDepth ;
-                            owl:someValuesFrom xsd:nonNegativeInteger
-                          ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Processor
-
-:Processor rdf:type owl:Class ;
-           
-           rdfs:label "Processor"@en ;
-           
-           rdfs:subClassOf :Child ,
-                           :Configurable ,
-                           :Named ,
-                           [ rdf:type owl:Restriction ;
-                             owl:onProperty :name ;
-                             owl:someValuesFrom xsd:string
-                           ] ,
-                           [ rdf:type owl:Restriction ;
-                             owl:onProperty :parent ;
-                             owl:allValuesFrom :Workflow
-                           ] ;
-           
-           rdfs:comment """A processor is a unit of a Workflow which performs some work. It typically have some InputProcessorPorts and OutputProcessorPorts which are connected to other Ports within the workflow. A processor will start executing as soon as there is a value for each InputProcessorPort and there are no Blocking processors. 
-
-A processor is bound to an Activity which specifies how to execute the task. This ProcessorBinding also specifies PortBindings to map ActivityPorts with ProcessorPorts."""@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding
-
-:ProcessorBinding rdf:type owl:Class ;
-                  
-                  rdfs:label "Processor Binding"@en ;
-                  
-                  rdfs:subClassOf :Named ,
-                                  [ rdf:type owl:Restriction ;
-                                    owl:onProperty :bindProcessor ;
-                                    owl:someValuesFrom :Processor
-                                  ] ,
-                                  [ rdf:type owl:Restriction ;
-                                    owl:onProperty :bindActivity ;
-                                    owl:someValuesFrom :Activity
-                                  ] ,
-                                  [ rdf:type owl:Restriction ;
-                                    owl:onProperty :parent ;
-                                    owl:allValuesFrom :Profile
-                                  ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#ProcessorPort
-
-:ProcessorPort rdf:type owl:Class ;
-               
-               rdfs:label "Processor Port"@en ;
-               
-               rdfs:subClassOf :Child ,
-                               :Port ,
-                               [ rdf:type owl:Restriction ;
-                                 owl:onProperty :parent ;
-                                 owl:someValuesFrom :Processor
-                               ] ,
-                               [ rdf:type owl:Class ;
-                                 owl:unionOf ( :InputProcessorPort
-                                               :OutputProcessorPort
-                                             )
-                               ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Product
-
-:Product rdf:type owl:Class ;
-         
-         rdfs:label "Product"@en ;
-         
-         rdfs:subClassOf :IterationStrategyNode ,
-                         [ rdf:type owl:Class ;
-                           owl:unionOf ( :CrossProduct
-                                         :DotProduct
-                                       )
-                         ] ,
-                         [ rdf:type owl:Restriction ;
-                           owl:onProperty :productOf ;
-                           owl:someValuesFrom :IterationStrategyChildren
-                         ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Profile
-
-:Profile rdf:type owl:Class ;
-         
-         rdfs:label "Profile"@en ;
-         
-         rdfs:subClassOf :Child ,
-                         :Named ,
-                         :WorkflowElement ,
-                         [ rdf:type owl:Restriction ;
-                           owl:onProperty :parent ;
-                           owl:allValuesFrom :WorkflowBundle
-                         ] .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#ReceiverPort
-
-:ReceiverPort rdf:type owl:Class ;
-              
-              rdfs:label "Receiver Port"@en ;
-              
-              rdfs:subClassOf :Port ,
-                              [ rdf:type owl:Class ;
-                                owl:unionOf ( :InputProcessorPort
-                                              :OutputWorkflowPort
-                                            )
-                              ] ;
-              
-              owl:disjointWith :SenderPort ;
-              
-              rdfs:comment "A Port which can receive data from a DataLink"@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#SenderPort
-
-:SenderPort rdf:type owl:Class ;
-            
-            rdfs:label "Sender Port"@en ;
-            
-            rdfs:subClassOf :Port ,
-                            [ rdf:type owl:Class ;
-                              owl:unionOf ( :InputWorkflowPort
-                                            :OutputProcessorPort
-                                          )
-                            ] ;
-            
-            rdfs:comment "A Port which can send data to a DataLink"@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#Workflow
-
-:Workflow rdf:type owl:Class ;
-          
-          rdfs:label "Workflow"@en ;
-          
-          rdfs:subClassOf :Named ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :name ;
-                            owl:someValuesFrom xsd:string
-                          ] ,
-                          [ rdf:type owl:Restriction ;
-                            owl:onProperty :workflowIdentifier ;
-                            owl:someValuesFrom owl:Thing
-                          ] ;
-          
-          owl:hasKey ( :workflowIdentifier
-                     ) .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle
-
-:WorkflowBundle rdf:type owl:Class ;
-                
-                rdfs:label "Workflow Bundle"@en ;
-                
-                rdfs:subClassOf :Named ,
-                                [ rdf:type owl:Restriction ;
-                                  owl:onProperty :globalBaseURI ;
-                                  owl:onClass :WorkflowBundle ;
-                                  owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger
-                                ] ;
-                
-                owl:hasKey ( :globalBaseURI
-                           ) .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#WorkflowElement
-
-:WorkflowElement rdf:type owl:Class ;
-                 
-                 rdfs:label "Workflow Element"@en ;
-                 
-                 rdfs:comment """Any element that defines a workflow, such as a processor, port, datalink, activity, port binding, profile.
-
-Super-class for any Scufl2 class. """@en .
-
-
-
-###  http://ns.taverna.org.uk/2010/scufl2#WorkflowPort
-
-:WorkflowPort rdf:type owl:Class ;
-              
-              rdfs:label "Workflow Port"@en ;
-              
-              rdfs:subClassOf :Port ,
-                              [ rdf:type owl:Class ;
-                                owl:unionOf ( :InputWorkflowPort
-                                              :OutputWorkflowPort
-                                            )
-                              ] ,
-                              [ rdf:type owl:Restriction ;
-                                owl:onProperty :parent ;
-                                owl:someValuesFrom :Workflow
-                              ] ;
-              
-              rdfs:comment "Ports of a Workflow. "@en .
-
-
-
-###  http://www.w3.org/1999/02/22-rdf-syntax-ns#List
-
-rdf:List rdf:type owl:Class ;
-         
-         rdfs:isDefinedBy rdf: .
-
-
-
-
-
-#################################################################
-#
-#    Individuals
-#
-#################################################################
-
-
-###  http://www.w3.org/1999/02/22-rdf-syntax-ns#nil
-
-rdf:nil rdf:type owl:NamedIndividual ;
-        
-        rdfs:isDefinedBy rdf: .
-
-
-
-
-###  Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.rdf b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.rdf
deleted file mode 100644
index 4cf14cb..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.rdf
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version='1.0'?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-
-<!-- Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp -->
-<!--     using base file:///home/stain/src/scufl2/scufl2-rdf/src/main/resources/taverna-2.2.ttl-->
-
-
-<rdf:RDF xmlns="http://www.w3.org/2002/07/owl#"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:owl="http://www.w3.org/2002/07/owl#"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-
-    <Ontology rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/">
-        <dc:title>Taverna ontology</dc:title>
-        <rdfs:comment>The ontology describing SCUFL2 components used by Taverna 2.2</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2"/>
-        <rdfs:seeAlso rdf:resource="http://www.taverna.org.uk/"/>
-        <imports rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/"/>
-    </Ontology>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/ActivityConfiguration">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configuration"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activitity"/>
-            <onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#configures"/>
-        </rdfs:subClassOf>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/DefaultDispatchStack">
-        <rdfs:comment>The default Taverna dispatch stack of Parallelise, 
-		ErrorBounce, Failover, Retry, Stop and Invoke.</rdfs:comment>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStack"/>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"/>
-            <someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Parallelise"/>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf rdf:parseType="Resource">
-            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-            <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"/>
-            <someValuesFrom rdf:parseType="Resource">
-                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"/>
-                <someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/ErrorBounce"/>
-            </someValuesFrom>
-            <someValuesFrom rdf:parseType="Resource">
-                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"/>
-                <someValuesFrom rdf:parseType="Resource">
-                    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                    <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"/>
-                    <someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Failover"/>
-                </someValuesFrom>
-                <someValuesFrom rdf:parseType="Resource">
-                    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                    <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"/>
-                    <someValuesFrom rdf:parseType="Resource">
-                        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                        <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"/>
-                        <someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Retry"/>
-                    </someValuesFrom>
-                    <someValuesFrom rdf:parseType="Resource">
-                        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                        <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"/>
-                        <someValuesFrom rdf:parseType="Resource">
-                            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                            <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"/>
-                            <someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Stop"/>
-                        </someValuesFrom>
-                        <someValuesFrom rdf:parseType="Resource">
-                            <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                            <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"/>
-                            <someValuesFrom rdf:parseType="Resource">
-                                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                                <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#first"/>
-                                <someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/Invoke"/>
-                            </someValuesFrom>
-                            <someValuesFrom rdf:parseType="Resource">
-                                <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
-                                <hasValue rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
-                                <onProperty rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest"/>
-                            </someValuesFrom>
-                        </someValuesFrom>
-                    </someValuesFrom>
-                </someValuesFrom>
-            </someValuesFrom>
-        </rdfs:subClassOf>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/ErrorBounce">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/Failover">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/Invoke">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/Loop">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/Parallelise">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/Retry">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <Class rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/Stop">
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-    </Class>
-
-    <DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/taverna/2.2/script">
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/taverna/2.2/ActivityConfiguration"/>
-        <rdfs:label>script</rdfs:label>
-        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    </DatatypeProperty>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.ttl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.ttl b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.ttl
deleted file mode 100644
index be3fdee..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/taverna-2.2.ttl
+++ /dev/null
@@ -1,155 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-@base <http://ns.taverna.org.uk/2010/taverna/2.2/> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix dc: <http://purl.org/dc/elements/1.1/> .
-@prefix dcterms: <http://purl.org/dc/terms/> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix ro: <http://ns.mygrid.org.uk/2010/ResearchObject/> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-@prefix scufl2: <http://ns.taverna.org.uk/2010/scufl2#> .
-@prefix : <http://ns.taverna.org.uk/2010/taverna/2.2/> .
-
-
-<>
-    a owl:Ontology ;
-    dc:title "Taverna ontology" ;
-    owl:imports <http://ns.taverna.org.uk/2010/taverna/2.2/>;
-
-    rdfs:comment """The ontology describing SCUFL2 components used by Taverna 2.2""" ;
-    rdfs:seeAlso
-      <http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2>,
-      <http://www.taverna.org.uk/> .
-
-
-
-# Default dispatch stack layers
-
-:Parallelise
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-:ErrorBounce
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-:Failover
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-:Retry
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-:Stop
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-:Invoke
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-# Optional layers
-
-:Loop
-	a owl:Class ;
-	rdfs:subClassOf scufl2:DispatchStackLayer .
-
-
-:DefaultDispatchStack
-	a owl:Class ;
-	rdfs:comment """The default Taverna dispatch stack of Parallelise, 
-		ErrorBounce, Failover, Retry, Stop and Invoke.""";
-	rdfs:subClassOf scufl2:DispatchStack, [
-             a owl:Restriction;
-             owl:someValuesFrom :Parallelise;
-             owl:onProperty rdf:first 
-           ], [
-             a owl:Restriction;
-             owl:onProperty rdf:rest;
-             owl:someValuesFrom [
-				a owl:Restriction;
-				owl:onProperty rdf:first;
-				owl:someValuesFrom :ErrorBounce
-				## TODO: And so on.. Is this even correct syntax?
-           	   ], [
-             	a owl:Restriction;
-             	owl:onProperty rdf:rest;
-             	owl:someValuesFrom [
-             		a owl:Restriction;
-             		owl:onProperty rdf:first;
-             		owl:someValuesFrom :Failover
-             	  ], [
-                    a owl:Restriction;
-                    owl:onProperty rdf:rest;
-                    owl:someValuesFrom [
-                        a owl:Restriction;
-                        owl:onProperty rdf:first;
-                        owl:someValuesFrom :Retry
-                      ], [
-                        a owl:Restriction;
-                        owl:onProperty rdf:rest;
-                        owl:someValuesFrom [
-                            a owl:Restriction;
-                            owl:onProperty rdf:first;
-                            owl:someValuesFrom :Stop
-                        ], [
-                            a owl:Restriction;
-                            owl:onProperty rdf:rest;
-                            owl:someValuesFrom [
-                                a owl:Restriction;
-                                owl:onProperty rdf:first;
-                                owl:someValuesFrom :Invoke
-                              ], [
-                                a owl:Restriction;
-                                owl:onProperty rdf:rest;
-                                owl:hasValue rdf:nil;
-                                ]
-                            ]
-                        ]
-                    ]
-                ]
-             ]. 
-             
-
-
-# Common activity properties
-
-
-:ActivityConfiguration
-	a owl:Class ;
-	rdfs:subClassOf scufl2:Configuration, [
-		a owl:Restriction;
-		owl:onProperty scufl2:configures;
-		owl:allValuesFrom scufl2:Activitity
-	] .
-
-:script
-    a owl:DatatypeProperty ;
-    rdfs:domain :ActivityConfiguration;
-    rdfs:label "script" ;
-    rdfs:range xsd:string .
-
-
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/owl.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/owl.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/owl.xsd
deleted file mode 100644
index 55b7c0c..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/owl.xsd
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
-	elementFormDefault="qualified" targetNamespace="http://www.w3.org/2002/07/owl#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:scufl2="http://ns.taverna.org.uk/2010/scufl2#"
-	xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-	
-	<!-- 
-	<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-		schemaLocation="rdf.xsd" />
-	<xs:import namespace="http://www.w3.org/2000/01/rdf-schema#"
-		schemaLocation="rdfs.xsd" />
-	<xs:import namespace="http://ns.taverna.org.uk/2010/scufl2#"
-		schemaLocation="scufl2.xsd" />
-	<xs:element name="Class">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element minOccurs="0" ref="scufl2:configurationType" />
-				<xs:element ref="rdfs:subClassOf" />
-				<xs:any namespace="##any" maxOccurs="unbounded" minOccurs="0"
-					processContents="lax" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-			<xs:anyAttribute />
-		</xs:complexType>
-	</xs:element>
-	
-	<xs:element name="sameAs">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:any namespace="##any" maxOccurs="unbounded" minOccurs="0"
-					processContents="lax" />
-			</xs:sequence>
-			<xs:attribute ref="rdf:parseType" fixed="Collection" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="DatatypeProperty">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="rdf:type" />
-				<xs:element ref="scufl2:required" />
-				<xs:element ref="rdfs:domain" />
-				<xs:element ref="rdfs:label" />
-				<xs:element ref="rdfs:range" />
-				<xs:element ref="rdfs:subPropertyOf" />
-				<xs:any namespace="##any" maxOccurs="unbounded" minOccurs="0"
-					processContents="lax" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-	 -->
-	
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/prov.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/prov.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/prov.xsd
deleted file mode 100644
index e472bd8..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/prov.xsd
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
-	elementFormDefault="qualified" targetNamespace="http://www.w3.org/ns/prov#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
-	xmlns:prov="http://www.w3.org/ns/prov#"
-	xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	jxb:version="1.0">
-
-	<xs:annotation>
-		<xs:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-			<jxb:globalBindings />
-			<jxb:schemaBindings>
-				<jxb:package name="org.w3.prov.jaxb" />
-			</jxb:schemaBindings>
-		</xs:appinfo>
-	</xs:annotation>
-<!-- 
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
-		schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
-	<xs:import namespace="http://www.w3.org/2002/07/owl#"
-		schemaLocation="owl.xsd" />
-	<xs:import namespace="http://www.w3.org/2000/01/rdf-schema#"
-		schemaLocation="rdfs.xsd" />
- -->
-
-	<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-		schemaLocation="rdf.xsd" />
-
-	<xs:element name="generatedAtTime">
-		<xs:complexType>
-			<xs:simpleContent>
-				<xs:extension base="xs:dateTime">
-					<xs:attribute ref="rdf:datatype" use="required"
-						fixed="http://www.w3.org/2001/XMLSchema#dateTime" />
-				</xs:extension>
-			</xs:simpleContent>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="wasRevisionOf" type="rdf:Resource"  />
-	<xs:element name="wasAssociatedWith" type="rdf:Resource"  />
-	<xs:element name="wasAttributedTo" type="rdf:Resource"  />
-	<xs:element name="hadOriginalSource" type="rdf:Resource"  />
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdf.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdf.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdf.xsd
deleted file mode 100644
index eb3dc4c..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdf.xsd
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
-	elementFormDefault="qualified" targetNamespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
-		schemaLocation="xml.xsd" />
-	<!-- schemaLocation="http://www.w3.org/2001/03/xml.xsd" /> -->
-
-	<xs:element name="RDF" type="rdf:RDF" />
-	
-	<xs:complexType name="RDF">
-		<xs:sequence>
-			<xs:any namespace="##any" maxOccurs="unbounded" minOccurs="0" processContents="lax" />
-		</xs:sequence>
-		<xs:attribute ref="xml:base" />
-	</xs:complexType>
-
-	<xs:element name="Description"> 
-		<xs:complexType>
-			<xs:sequence>
-			<xs:any namespace="##any" maxOccurs="unbounded" minOccurs="0" processContents="lax" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-	
-	<xs:attributeGroup name="about">	
-		<xs:attribute name="about" use="required" form="qualified"
-			type="xs:anyURI" />
-	</xs:attributeGroup>
-	
-	<xs:attributeGroup name="aboutOptional">	
-		<xs:attribute name="about" use="optional" form="qualified"
-			type="xs:anyURI" />
-	</xs:attributeGroup>
-	
-	<xs:attributeGroup name="resource">
-		<xs:attribute name="resource" use="required" form="qualified"
-			type="xs:anyURI" />
-	</xs:attributeGroup>
-	
-	<xs:attribute name="parseType">
-		<xs:simpleType>
-			<xs:restriction base="xs:string">
-				<xs:enumeration value="Collection"></xs:enumeration>
-				<xs:enumeration value="Resource"></xs:enumeration>
-			</xs:restriction>
-		</xs:simpleType>
-	</xs:attribute>
-	
-	<xs:attribute name="datatype" type="xs:anyURI" />
-	
-	<xs:element name="type">
-		<xs:complexType>
-			<xs:attribute name="resource" use="required" form="qualified"
-				type="xs:anyURI" />
-		</xs:complexType>
-	</xs:element>
-	
-	<xs:complexType name="Resource">
-		<xs:attributeGroup ref="rdf:resource" />
-	</xs:complexType>
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdfs.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdfs.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdfs.xsd
deleted file mode 100644
index f95d3b7..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/rdfs.xsd
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
-	elementFormDefault="qualified" targetNamespace="http://www.w3.org/2000/01/rdf-schema#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-	
-	<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-		schemaLocation="rdf.xsd" />
-<!-- 
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
-		schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
- -->
-	<xs:element name="subClassOf">
-		<xs:complexType>
-			<xs:attributeGroup ref="rdf:resource" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="domain">
-		<xs:complexType>
-			<xs:attributeGroup ref="rdf:resource" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="label" type="xs:NCName" />
-	<xs:element name="range">
-		<xs:complexType>
-			<xs:attributeGroup ref="rdf:resource" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="subPropertyOf">
-		<xs:complexType>
-			<xs:attributeGroup ref="rdf:resource" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="seeAlso">
-		<xs:complexType>
-			<xs:attributeGroup ref="rdf:resource" />
-		</xs:complexType>
-	</xs:element>
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
deleted file mode 100644
index 2c3d15f..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
-	elementFormDefault="qualified" targetNamespace="http://purl.org/wf4ever/roevo#" 
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-	xmlns:roevo="http://purl.org/wf4ever/roevo#"
-	xmlns:prov="http://www.w3.org/ns/prov#"
-	xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	jxb:version="1.0">
-
-	<xs:annotation>
-		<xs:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-			<jxb:globalBindings />
-			<jxb:schemaBindings>
-				<jxb:package name="org.purl.wf4ever.roevo.jaxb" />
-			</jxb:schemaBindings>
-		</xs:appinfo>
-	</xs:annotation>
-	<!-- 
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
-		schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
-	<xs:import namespace="http://www.w3.org/2000/01/rdf-schema#"
-		schemaLocation="rdfs.xsd" />
-	<xs:import namespace="http://www.w3.org/2002/07/owl#"
-		schemaLocation="owl.xsd" />
-	 -->
-
-
-	<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-		schemaLocation="rdf.xsd" />	
-	<xs:import namespace="http://www.w3.org/ns/prov#"
-			schemaLocation="prov.xsd" />
-
-	<xs:complexType name="RoEvoDocument">
-		<xs:complexContent>
-			<xs:restriction base="rdf:RDF">
-				<xs:sequence>
-					<xs:element ref="roevo:VersionableResource" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:restriction>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:element name="VersionableResource">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="wasChangedBy" minOccurs="0">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="roevo:ChangeSpecification" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element ref="prov:generatedAtTime" minOccurs="0" />
-				<xs:element ref="prov:wasRevisionOf" minOccurs="0" />
-				<xs:element ref="prov:hadOriginalSource" minOccurs="0" maxOccurs="unbounded"/>
-				<xs:element ref="prov:wasAttributedTo" minOccurs="0" maxOccurs="unbounded"/>							
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />			
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:element name="ChangeSpecification">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="rdf:type" minOccurs="0"/>
-				<xs:element name="fromVersion" type="rdf:Resource" minOccurs="0" />
-				<xs:element name="hasChange" minOccurs="0" maxOccurs="3">
-					<xs:annotation>
-						<xs:documentation>
-							<p xmlns='http://www.w3.org/1999/xhtml'>
-							A ChangeSpecification can have up to 3 changes, 
-							one of Addition, one of Modificaton and one of Removal. 
-							Ironically, to 	avoid an 'non ambigious' XML Schema, this schema 
-							has to allow also say Addition, Addition, Removal. Clients MAY
-							parse additional changes of the same type, but SHOULD merge them 
-							to a single change per type when saving, ie. add the resources
-							from the second Addition to the resources of the first.							
-							</p>
-						</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:choice>
-							<xs:element name="Addition" type="roevo:Change" />
-							<xs:element name="Modification" type="roevo:Change" />
-							<xs:element name="Removal" type="roevo:Change" />
-						</xs:choice>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>			
-		</xs:complexType>
-	</xs:element>
-
-	<xs:complexType name="Change">
-		<xs:sequence>
-			<xs:element name="relatedResource" type="rdf:Resource" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-	
-</xs:schema>


[24/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloanyone.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloanyone.t2flow b/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloanyone.t2flow
deleted file mode 100644
index 2e100b1..0000000
--- a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloanyone.t2flow
+++ /dev/null
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="01348671-5aaa-4cc2-84cc-477329b70b0d" role="top"><name>Hello_Anyone</name><inputPorts><port><name>name</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>World!</text>
-      </annotationBean>
-      <date>2012-01-03 15:13:04.106 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Your name for the greeting</text>
-      </annotationBean>
-      <date>2012-01-03 15:13:12.530 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>greeting</name><annotations /></port></outputPorts><processors><processor><name>hello</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Hello, </value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Concatenate_two_strings</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivi
 ty</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string1" depth="0" /><port name="string2" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>hello</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="dataflow"><port>name</port></source></datalink><datalin
 k><sink type="dataflow"><port>greeting</port></sink><source type="processor"><processor>Concatenate_two_strings</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8781d5f4-d0ba-48a8-a1d1-14281bd8a917</identification>
-      </annotationBean>
-      <date>2012-01-03 15:12:21.684 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ca7dba1d-1fdf-476f-b911-714d09227d70</identification>
-      </annotationBean>
-      <date>2012-01-03 15:14:18.734 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Stian Soiland-Reyes</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:48.73 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello Anyone</text>
-      </annotationBean>
-      <date>2012-01-03 15:14:25.703 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello World</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:54.167 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible, outputting the String Constant "Hello world!"</text>
-      </annotationBean>
-      <date>2012-01-03 15:11:14.557 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>An extension to helloworld.t2flow - this workflow takes a workflow input "name" which is combined with the string constant "Hello, " using the local worker "Concatenate two strings", and outputs the produced string to the workflow output "greeting".</text>
-      </annotationBean>
-      <date>2012-01-03 15:14:13.847 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible. No workflow input ports, a single workflow output port "greeting",  outputting "Hello, world!" as produced by the String Constant "hello".</text>
-      </annotationBean>
-      <date>2012-01-03 15:12:15.643 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>01348671-5aaa-4cc2-84cc-477329b70b0d</identification>
-      </annotationBean>
-      <date>2012-01-03 15:14:30.45 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloworld.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloworld.t2flow b/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloworld.t2flow
deleted file mode 100644
index 2991433..0000000
--- a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/helloworld.t2flow
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="8781d5f4-d0ba-48a8-a1d1-14281bd8a917" role="top"><name>Hello_World</name><inputPorts /><outputPorts><port><name>greeting</name><annotations /></port></outputPorts><processors><processor><name>hello</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Hello, World!</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="dataflow"><port>greeting</port></sink><source type="processor"><processor>hello</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8781d5f4-d0ba-48a8-a1d1-14281bd8a917</identification>
-      </annotationBean>
-      <date>2012-01-03 15:12:21.684 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Stian Soiland-Reyes</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:48.73 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello World</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:54.167 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible, outputting the String Constant "Hello world!"</text>
-      </annotationBean>
-      <date>2012-01-03 15:11:14.557 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible. No workflow input ports, a single workflow output port "greeting",  outputting "Hello, world!" as produced by the String Constant "hello".</text>
-      </annotationBean>
-      <date>2012-01-03 15:12:15.643 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/as.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/as.wfbundle b/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/as.wfbundle
deleted file mode 100644
index 40033a8..0000000
Binary files a/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/as.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/defaultActivitiesTaverna2.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/defaultActivitiesTaverna2.wfbundle b/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/defaultActivitiesTaverna2.wfbundle
deleted file mode 100644
index 2bed19b..0000000
Binary files a/taverna-scufl2-examples/src/test/resources/workflows/wfbundle/defaultActivitiesTaverna2.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/pom.xml b/taverna-scufl2-integration-tests/pom.xml
deleted file mode 100644
index 9670a8e..0000000
--- a/taverna-scufl2-integration-tests/pom.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-integration-tests</artifactId>
-	<name>Apache Taverna Scufl 2 integration tests</name>
-	<packaging>bundle</packaging>
-	<description>Integration tests depending on multiple modules</description>
-	<build>
-		<plugins>
-			<plugin>
-				<artifactId>maven-failsafe-plugin</artifactId>
-				<version>2.12.4</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>integration-test</goal>
-							<goal>verify</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-                <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-      		</plugins>
-	</build>
-	<dependencies>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-rdfxml</artifactId>
-			<version>${project.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-t2flow</artifactId>
-			<version>${project.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-scufl</artifactId>
-			<version>${project.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-                        <version>${commons.io.version}</version>
-			<type>jar</type>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/CloningIT.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/CloningIT.java b/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/CloningIT.java
deleted file mode 100644
index 8cefc04..0000000
--- a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/CloningIT.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.scufl2.integration;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode;
-
-public class CloningIT {
-    @Test
-    public void cloneIterationStack() throws Exception {
-        WorkflowBundleIO io = new WorkflowBundleIO();
-        
-        WorkflowBundle wf = io.readBundle(getClass().getResource("/clone-error.wfbundle"), null);
-
-        Processor proc = wf.getMainWorkflow().getProcessors().getByName("Beanshell");
-        IterationStrategyStack stack = proc.getIterationStrategyStack();
-        IterationStrategyTopNode root = stack.get(0);
-        assertNotSame(stack, root);
-        assertNotEquals(stack, root);
-        System.out.println(stack);
-        System.out.println(root);
-        @SuppressWarnings("unused")
-		AbstractCloneable clone = wf.clone();
-        
-        
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/TestSimpleWf.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/TestSimpleWf.java b/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/TestSimpleWf.java
deleted file mode 100644
index 42c0f16..0000000
--- a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/integration/TestSimpleWf.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.taverna.scufl2.integration;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.File;
-import java.net.URI;
-
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class TestSimpleWf {
-	private static final WorkflowBundleIO bundleIo = new WorkflowBundleIO();
-	private static final Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private static final String bundleType = "application/vnd.taverna.scufl2.workflow-bundle";
-	public static URI BEANSHELL = URI
-			.create("http://ns.taverna.org.uk/2010/activity/beanshell");
-	
-	@Test
-	public void testName() throws Exception {
-		// Workflow
-		WorkflowBundle wb = new WorkflowBundleIO().createBundle();
-		
-		Workflow wf = wb.getMainWorkflow();
-		wf.setName("test_wf");
-		InputWorkflowPort raw = new InputWorkflowPort(wf, "RAW");
-		OutputWorkflowPort msconvert_log = new OutputWorkflowPort(wf, "MSCONVERT_LOG");
-		OutputWorkflowPort cmd = new OutputWorkflowPort(wf, "cmd");
-		
-		// processor
-		Processor msconvert = new Processor(wf, "MSCONVERT");
-		InputProcessorPort ms_raw = new InputProcessorPort(msconvert, "raw");
-		OutputProcessorPort ms_out = new OutputProcessorPort(msconvert, "out");
-		OutputProcessorPort ms_cmd = new OutputProcessorPort(msconvert, "cmd");
-		
-		// links
-		new DataLink(wf, raw, ms_raw);
-		new DataLink(wf, ms_out, msconvert_log);
-		new DataLink(wf, ms_cmd, cmd);
-		
-		// Beanshell script
-		Activity script = new Activity("msconvert");
-		script.setType(BEANSHELL);
-
-		Profile profile = wb.getMainProfile();
-		script.setParent(profile);
-		profile.getActivities().add(script);
-		
-		scufl2Tools.createActivityPortsFromProcessor(script, msconvert);
-		scufl2Tools.bindActivityToProcessorByMatchingPorts(script, msconvert);
-		
-		Configuration config = new Configuration();
-		config.setConfigures(script);
-		config.setType(BEANSHELL.resolve("#Config"));
-		((ObjectNode)config.getJson()).put("script", 
-				"blablalbal");
-		profile.getConfigurations().add(config);
-		
-		// Save to file (or System.out ? )
-		File file = File.createTempFile("test", ".wfbundle");
-		bundleIo.writeBundle(wb, file, bundleType);
-		System.out.println(file);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/EmptyStackIT.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/EmptyStackIT.java b/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/EmptyStackIT.java
deleted file mode 100644
index c2df966..0000000
--- a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/EmptyStackIT.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-import java.net.URL;
-
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-
-public class EmptyStackIT {
-
-	/* From http://dev.mygrid.org.uk/issues/browse/SCUFL2-121 */
-
-	private static final String WF_REST = "/rest.t2flow";
-	private static WorkflowBundleIO workflowBundleIO = new WorkflowBundleIO();
-	
-	
-	@Test
-	public void readSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(WF_REST);
-		assertNotNull("Could not find workflow " + WF_REST,
-				wfResource);
-
-		File bundleFile = File.createTempFile("test", "wfbundle");		
-		
-		WorkflowBundle wfBundle = workflowBundleIO.readBundle(wfResource, null);		
-		workflowBundleIO.writeBundle(wfBundle, bundleFile, "application/vnd.taverna.scufl2.workflow-bundle");
-		wfBundle = workflowBundleIO.readBundle(bundleFile, null);
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/LiteralNamespacesIT.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/LiteralNamespacesIT.java b/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/LiteralNamespacesIT.java
deleted file mode 100644
index 12b282f..0000000
--- a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/LiteralNamespacesIT.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.net.URL;
-
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-
-public class LiteralNamespacesIT {
-
-	/* From http://dev.mygrid.org.uk/issues/browse/SCUFL2-120 */
-
-	private static final String WF_APICONSUMER = "/apiconsumer.t2flow";
-	private static WorkflowBundleIO workflowBundleIO = new WorkflowBundleIO();
-	
-	
-	@Test
-	public void readSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(WF_APICONSUMER);
-		assertNotNull("Could not find workflow " + WF_APICONSUMER,
-				wfResource);
-
-		File bundleFile = File.createTempFile("test", "wfbundle");		
-		
-		WorkflowBundle wfBundle = workflowBundleIO.readBundle(wfResource, null);		
-		workflowBundleIO.writeBundle(wfBundle, bundleFile, "application/vnd.taverna.scufl2.workflow-bundle");
-		wfBundle = workflowBundleIO.readBundle(bundleFile, null);
-		@SuppressWarnings("unused")
-		String profile = wfBundle.getResources().getResourceAsString("profile/taverna-2.3.0.rdf");		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/PropertyListRoundtripIT.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/PropertyListRoundtripIT.java b/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/PropertyListRoundtripIT.java
deleted file mode 100644
index 383a5fb..0000000
--- a/taverna-scufl2-integration-tests/src/test/java/org/apache/taverna/scufl2/translator/t2flow/PropertyListRoundtripIT.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.File;
-import java.net.URL;
-
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-
-public class PropertyListRoundtripIT {
-
-	/* From http://dev.mygrid.org.uk/issues/browse/SCUFL2-120 */
-
-	private static final String WF_APICONSUMER = "/apiconsumer.t2flow";
-	private static WorkflowBundleIO workflowBundleIO = new WorkflowBundleIO();
-	
-	
-	@Test
-	public void readSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(WF_APICONSUMER);
-		assertNotNull("Could not find workflow " + WF_APICONSUMER,
-				wfResource);
-
-		File bundleFile = File.createTempFile("test", "wfbundle");		
-		
-		WorkflowBundle wfBundle = workflowBundleIO.readBundle(wfResource, null);		
-		workflowBundleIO.writeBundle(wfBundle, bundleFile, "application/vnd.taverna.scufl2.workflow-bundle");
-		wfBundle = workflowBundleIO.readBundle(bundleFile, null);
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/resources/apiconsumer.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/resources/apiconsumer.t2flow b/taverna-scufl2-integration-tests/src/test/resources/apiconsumer.t2flow
deleted file mode 100644
index 66ef4ac..0000000
--- a/taverna-scufl2-integration-tests/src/test/resources/apiconsumer.t2flow
+++ /dev/null
@@ -1,178 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.3.0"><dataflow id="8bf2b5e5-a3e0-4fbd-bfd2-aefc7b2a6b8a" role="top"><name>Workflow4</name><inputPorts><port><name>in</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>out</name><annotations /></port></outputPorts><processors><processor><name>String</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>object</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>apiconsumer-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity</class><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="object" to="object" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.apic
 onsumer.ApiConsumerActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <apiConsumerName>No name</apiConsumerName>
-  <apiConsumerDescription>No description</apiConsumerDescription>
-  <description />
-  <className>java.lang.String</className>
-  <methodName>String</methodName>
-  <parameterNames>
-    <string>string</string>
-  </parameterNames>
-  <parameterDimensions>
-    <int>0</int>
-  </parameterDimensions>
-  <parameterTypes>
-    <string>java.lang.String</string>
-  </parameterTypes>
-  <returnType>java.lang.String</returnType>
-  <returnDimension>0</returnDimension>
-  <isMethodStatic>false</isMethodStatic>
-  <isMethodConstructor>true</isMethodConstructor>
-</net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>toUpperCase</name><inputPorts><port><name>object</name><depth>0</depth></port></inputPorts><outputPorts><port><name>result</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>apiconsumer-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity</cl
 ass><inputMap><map from="object" to="object" /></inputMap><outputMap><map from="result" to="result" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <apiConsumerName>No name</apiConsumerName>
-  <apiConsumerDescription>No description</apiConsumerDescription>
-  <description />
-  <className>java.lang.String</className>
-  <methodName>toUpperCase</methodName>
-  <parameterNames />
-  <parameterDimensions />
-  <parameterTypes />
-  <returnType>java.lang.String</returnType>
-  <returnDimension>0</returnDimension>
-  <isMethodStatic>false</isMethodStatic>
-  <isMethodConstructor>false</isMethodConstructor>
-</net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="object" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>String</processor><port>string</port></sink><source type="dataflow"><port>in</port></source></datalink><datalink><sink type="processor"><processor>toUpperCase</processor><port>object</port></sink><source type="processor"><processor>String</processor><port>object</port></source></datalink><datalink><sink type="dataflow"><port>out</port></sink><source type="proc
 essor"><processor>toUpperCase</processor><port>result</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>483d65c6-98c1-4b94-b628-d5bcbf351e97</identification>
-      </annotationBean>
-      <date>2011-05-16 13:07:03.385 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>d460e60a-43bb-47fc-a9f4-89e15274b100</identification>
-      </annotationBean>
-      <date>2011-11-02 12:43:09.911 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>0d977496-aa5d-4274-9827-85400d5f13a2</identification>
-      </annotationBean>
-      <date>2011-05-16 13:06:33.69 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8bf2b5e5-a3e0-4fbd-bfd2-aefc7b2a6b8a</identification>
-      </annotationBean>
-      <date>2011-11-02 12:46:41.313 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>58f30a52-57df-46ce-b1bb-b9533984f8dd</identification>
-      </annotationBean>
-      <date>2011-11-02 12:29:15.575 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>c2693c41-1373-48cf-afbe-d8bbe0ea9e35</identification>
-      </annotationBean>
-      <date>2011-11-02 12:31:01.678 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>1ce7f3a0-71f4-4794-8bbd-dbb6de42442d</identification>
-      </annotationBean>
-      <date>2011-05-16 12:57:01.975 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>4c2b6995-eecb-47a7-b72c-63cfb96b6852</identification>
-      </annotationBean>
-      <date>2011-11-02 12:43:51.355 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>225db881-4e07-4cdb-920c-343dc1536edc</identification>
-      </annotationBean>
-      <date>2011-05-16 13:10:54.588 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>404e203c-ce51-4a9f-907c-1dab7f2eaaa2</identification>
-      </annotationBean>
-      <date>2011-05-16 12:44:02.533 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>0b6881f1-aa8d-483e-a7bb-7ad38b1da778</identification>
-      </annotationBean>
-      <date>2011-05-16 12:26:38.721 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/resources/clone-error.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/resources/clone-error.wfbundle b/taverna-scufl2-integration-tests/src/test/resources/clone-error.wfbundle
deleted file mode 100644
index 485fac2..0000000
Binary files a/taverna-scufl2-integration-tests/src/test/resources/clone-error.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-integration-tests/src/test/resources/rest.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-integration-tests/src/test/resources/rest.t2flow b/taverna-scufl2-integration-tests/src/test/resources/rest.t2flow
deleted file mode 100644
index f3f90b8..0000000
--- a/taverna-scufl2-integration-tests/src/test/resources/rest.t2flow
+++ /dev/null
@@ -1,154 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.3.0"><dataflow id="8e36176a-2975-498b-93f7-f2beba774532" role="top"><name>Workflow11</name><inputPorts /><outputPorts><port><name>out</name><annotations /></port></outputPorts><processors><processor><name>REST_Service</name><inputPorts><port><name>id</name><depth>0</depth></port></inputPorts><outputPorts><port><name>responseBody</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>rest-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.rest.RESTActivity</class><inputMap><map from="id" to="id" /></inputMap><outputMap><map from="responseBody" to="responseBody" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean xmlns="">
-  <httpMethod>GET</httpMethod>
-  <urlSignature>http://www.uniprot.org/uniprot/{id}.xml</urlSignature>
-  <acceptsHeaderValue>text/plain</acceptsHeaderValue>
-  <contentTypeForUpdates>application/xml</contentTypeForUpdates>
-  <outgoingDataFormat>String</outgoingDataFormat>
-  <sendHTTPExpectRequestHeader>false</sendHTTPExpectRequestHeader>
-  <showRedirectionOutputPort>false</showRedirectionOutputPort>
-  <escapeParameters>true</escapeParameters>
-  <otherHTTPHeaders />
-  <activityInputs>
-    <entry>
-      <string>id</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-  </activityInputs>
-</net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="id" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>id_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" />
 </outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>P12345</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>REST_Service</processor><port>id</port></sink><source type="processor"><processor>id_value</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>out</port></sink><source type="processor"><processor>REST_Service</processor><port>responseBody</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xm
 lns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>30c58a3d-4037-4b92-b7d6-3aea761bdada</identification>
-      </annotationBean>
-      <date>2011-11-02 08:52:32.796 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>d090ff3c-c84d-461f-9027-ccd07fe0a352</identification>
-      </annotationBean>
-      <date>2011-11-02 10:09:35.558 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>1e2069a6-54c3-4e09-b639-c9bb27356eb9</identification>
-      </annotationBean>
-      <date>2011-11-02 09:59:38.235 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>f88604da-4047-4ab9-bd19-23cbbb8be88b</identification>
-      </annotationBean>
-      <date>2011-11-02 10:12:00.757 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8e36176a-2975-498b-93f7-f2beba774532</identification>
-      </annotationBean>
-      <date>2012-02-10 15:56:15.960 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>b3887d66-e945-444d-820a-ddb5c1d6cecb</identification>
-      </annotationBean>
-      <date>2011-11-02 10:00:26.717 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>bbf68124-dbeb-482b-80c6-e461d264a98b</identification>
-      </annotationBean>
-      <date>2011-11-02 10:12:59.372 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>c2802c60-cc0e-4bc0-b401-473476811e46</identification>
-      </annotationBean>
-      <date>2011-11-02 10:02:16.255 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>d73137e0-8cfb-4536-849e-6d30b1b1f4dc</identification>
-      </annotationBean>
-      <date>2011-11-02 08:49:30.655 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>3f67a647-2d0e-4d7e-9937-5bde3d562fde</identification>
-      </annotationBean>
-      <date>2011-11-02 10:10:29.316 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>f76689f8-2629-4168-b0a6-e70c88acaca9</identification>
-      </annotationBean>
-      <date>2012-02-10 15:49:11.156 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/.gitignore b/taverna-scufl2-rdfxml/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/taverna-scufl2-rdfxml/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/pom.xml b/taverna-scufl2-rdfxml/pom.xml
deleted file mode 100644
index a31cacb..0000000
--- a/taverna-scufl2-rdfxml/pom.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-rdfxml</artifactId>
-	<packaging>bundle</packaging>
-	<name>Apache Taverna Scufl 2 RDF/XML</name>
-	<description>XSD based XML serialisation which is RDF/XML compatible</description>
-  <dependencies>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-api</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-schemas</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-api</artifactId>
-			<version>${project.version}</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-ucfpackage</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-                        <version>${commons.io.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-                        <groupId>org.jdom</groupId>
-                        <artifactId>com.springsource.org.jdom</artifactId>
-                        <version>${jdom.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.openrdf.sesame</groupId>
-			<artifactId>sesame-repository-sail</artifactId>
-			<version>${sesame.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.openrdf.sesame</groupId>
-			<artifactId>sesame-sail-memory</artifactId>
-			<version>${sesame.version}</version>
-			<scope>test</scope>
-		</dependency>
-    <!--
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-impl</artifactId>
-                        <version>${jaxb.version}</version>
-			<optional>true</optional>
-		</dependency>
-    -->
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-osgi</artifactId>
-      <version>${jaxb.version}</version>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>org.jaxen</groupId>
-			<artifactId>com.springsource.org.jaxen</artifactId>
-                        <version>${jaxen.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/AbstractParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/AbstractParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/AbstractParser.java
deleted file mode 100644
index bc4ce6f..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/AbstractParser.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.ObjectFactory;
-
-public class AbstractParser {
-	protected JAXBContext jaxbContext;
-	protected final ThreadLocal<ParserState> parserState;
-	protected Scufl2Tools scufl2Tools = new Scufl2Tools();
-	protected Unmarshaller unmarshaller;
-	protected URITools uriTools = new URITools();
-
-	/**
-	 * A static class for the thread-local parser state.
-	 */
-	private static class ThreadLocalParserState extends ThreadLocal<ParserState> {
-		@Override
-		protected ParserState initialValue() {
-			return new ParserState();
-		};
-	}
-
-	public AbstractParser() {
-		this(new ThreadLocalParserState());
-	}
-
-	public AbstractParser(ThreadLocal<ParserState> parserState) {
-		this.parserState = parserState;
-		createMarshaller();
-	}
-
-	protected void clearParserState() {
-		parserState.remove();
-	}
-
-	private void createMarshaller() {
-		try {
-			jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-			unmarshaller = jaxbContext.createUnmarshaller();
-		} catch (JAXBException e) {
-			throw new IllegalStateException(
-					"Can't create JAXBContext/unmarshaller", e);
-		}
-	}
-
-	protected ParserState getParserState() {
-		return parserState.get();
-	}
-
-	protected void mapBean(String about, WorkflowBean bean) {
-		if (about == null)
-			return;
-		URI aboutUri = getParserState().getCurrentBase().resolve(about);
-		mapBean(aboutUri, bean);
-	}
-
-	protected void mapBean(URI uri, WorkflowBean bean) {
-		getParserState().getUriToBean().put(uri, bean);
-		getParserState().getBeanToUri().put(bean, uri);
-	}
-
-	protected URI resolve(String uri) {
-		return getParserState().getCurrentBase().resolve(uri);
-	}
-
-	protected <T extends WorkflowBean> T resolveBeanUri(String resource,
-			Class<T> beanType) throws ReaderException {
-		URI uri = resolve(resource);
-		WorkflowBean bean = resolveBeanUri(uri);
-		if (bean == null)
-			throw new ReaderException("Can't find workflow bean for resource "
-					+ resource);
-		if (!beanType.isInstance(bean))
-			throw new ReaderException("Wrong type for workflow bean "
-					+ resource + ", expected " + beanType.getSimpleName()
-					+ " but was " + bean.getClass().getSimpleName());
-		return beanType.cast(bean);
-	}
-
-	protected WorkflowBean resolveBeanUri(URI uri) {
-		WorkflowBean workflowBean = getParserState().getUriToBean().get(uri);
-		if (workflowBean != null)
-			return workflowBean;
-		uri = getParserState().getCurrentBase().resolve(uri);
-		return uriTools.resolveUri(uri,
-				getParserState().getCurrent(WorkflowBundle.class));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ParserState.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ParserState.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ParserState.java
deleted file mode 100644
index cc54bc6..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ParserState.java
+++ /dev/null
@@ -1,127 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Stack;
-
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ParserState {
-	private Map<WorkflowBean, URI> beanToUri = new HashMap<>();
-	private URI currentBase;
-	private URI location;
-	private Stack<WorkflowBean> stack = new Stack<>();
-	private UCFPackage ucfPackage;
-	private Map<URI, WorkflowBean> uriToBean = new HashMap<>();
-	private Map<Processor, ObjectNode> dispatchConfigs = new HashMap<>();
-
-	public Map<WorkflowBean, URI> getBeanToUri() {
-		return beanToUri;
-	}
-
-	public <T extends WorkflowBean> T getCurrent(Class<T> beanType) {
-		if (getStack().isEmpty())
-			throw new IllegalStateException("Parser stack is empty");
-		if (beanType.isInstance(getStack().peek()))
-			return beanType.cast(getStack().peek());
-		T candidate = null;
-		for (WorkflowBean bean : getStack())
-			if (beanType.isInstance(bean))
-				// Don't return - we want the *last* candidate
-				candidate = beanType.cast(bean);
-		if (candidate == null)
-			throw new IllegalStateException("Could not find a " + beanType + " on parser stack");
-		return candidate;
-	}
-
-	public URI getCurrentBase() {
-		return currentBase;
-	}
-
-	public URI getLocation() {
-		return location;
-	}
-
-	public Stack<WorkflowBean> getStack() {
-		return stack;
-	}
-
-	public UCFPackage getUcfPackage() {
-		return ucfPackage;
-	}
-
-	public Map<URI, WorkflowBean> getUriToBean() {
-		return uriToBean;
-	}
-
-	public WorkflowBean peek() {
-		return getStack().peek();
-	}
-
-	public WorkflowBean pop() {
-		return getStack().pop();
-	}
-
-	public void push(WorkflowBean workflowBean) {
-		getStack().push(workflowBean);
-	}
-
-	public void setBeanToUri(Map<WorkflowBean, URI> beanToUri) {
-		this.beanToUri = beanToUri;
-	}
-
-	public void setCurrentBase(URI currentBase) {
-		this.currentBase = currentBase;
-	}
-
-	public void setLocation(URI location) {
-		this.location = location;
-	}
-
-	public void setStack(Stack<WorkflowBean> currentIterationStrategyNode) {
-		stack = currentIterationStrategyNode;
-	}
-
-	public void setUcfPackage(UCFPackage ucfPackage) {
-		this.ucfPackage = ucfPackage;
-	}
-
-	public void setUriToBean(Map<URI, WorkflowBean> uriToBean) {
-		this.uriToBean = uriToBean;
-	}
-
-    public Map<Processor, ObjectNode> getDispatchConfigs() {
-        return dispatchConfigs;
-    }
-
-    public void setDispatchConfigs(Map<Processor, ObjectNode> dispatchConfigs) {
-        this.dispatchConfigs = dispatchConfigs;
-    }
-}


[16/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/test/resources/workflow10.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/test/resources/workflow10.xml b/taverna-scufl2-scufl/src/test/resources/workflow10.xml
deleted file mode 100644
index 0e0d2f1..0000000
--- a/taverna-scufl2-scufl/src/test/resources/workflow10.xml
+++ /dev/null
@@ -1,979 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<s:scufl xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" version="0.2" log="0">
-  <s:workflowdescription lsid="urn:lsid:net.sf.taverna:wfDefinition:d93a16c9-b599-48b4-b2c8-562127456fa3" author="Saeedeh Maleki-Dizaji and Paul Fisher" title="Microarray CEL file to candidate pathways">This workflow takes in a CEL file and a normalisation method then returns a series of images/graphs which represent the same output obtained using the MADAT software package (MicroArray Data Analysis Tool) [http://www.bioinf.manchester.ac.uk/MADAT/index.html]. Also retruned by this workflow are a list of the top differentialy expressed genes (size dependant on the number specified as input - geneNumber), which are then used to find the candidate pathways which may be influencing the observed changes in the microarray data. By identifying the candidate pathways, more detailed insights into the gene expression data can be obtained.
-
-NOTE - You will also need to install R and Rserv on your machine and install the libaries required by the R script into you R library directory (see for basic info: http://www.cs.man.ac.uk/~fisherp/rlib.html)
-
-The example inputs for this workflow are as follows:
-Samples1 = one or more CEL files for cross-correlating with Samples2 CEL files (new line separated including the .CEL): 
-Liver_Day1_Mouse.CEL
-Liver_Day2_Mouse.CEL
-
-Samples2 = one or more CEL files for cross-correlating with Samples1 CEL files (new line separated including the .CEL):
-Kideny_Day1_Mouse.CEL
-Kidney_Day2_Mouse.CEL
-
-geneNumber = the number of differentialy expressed gene to be returned above a given p-value, e.g. 20
-arrayTypeAffy = the name of the Mouse AffyMetrix array used, e.g. mouse4302, hgu133a...
-path = the direct path to the CEL file location, e.g. C:/Microarray_Data/CEL_FILES/ - note the forward slashes
-NormalizationMethod = the type of normalisation to perfrom, e.g. rma, gcrma or mmgmos
-testMethod = e.g. limma, mmtest or pplr
-p-value = the p-value cut-off value for the array data, e.g. 0.05
-foldChange = the fold change value for the microarray data, e.g. 1 (means greater than 1 or less than -1)</s:workflowdescription>
-  <s:processor name="String_Constant" boring="true">
-    <s:stringconstant>\n</s:stringconstant>
-  </s:processor>
-  <s:processor name="Split_sample2">
-    <s:local>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</s:local>
-  </s:processor>
-  <s:processor name="AffyDataAnalysis">
-    <s:defaults>
-      <s:default name="dirPath">C:/affy data for Munich course/ShortCelFilesLiver</s:default>
-      <s:default name="arrayType">mouse4302</s:default>
-    </s:defaults>
-    <s:rshell s:hostname="localhost" s:port="6311" s:username="" s:password="" s:keepSessionAlive="false">
-      #@to do: extract  array type automatically then install relevant packages
-
-# installing packages
-#source("http://www.bioconductor.org/biocLite.R")
-#biocLite()
-#biocLite(c("affy "," limma ","mmgmos"," ade4"," affyQCReport"," base","pplr " ," splines "," survival "," multtest "))
-
-library(base)
-library(affy)
-# make sure you are in the directory
-# where the CEL files are
-getwd()
-#setwd("C:/affy data for Munich course/ShortCelFilesLiver")
-
-  # dirPath input from workflow
-setwd(dirPath) 
-fnames = dir(pattern="CEL")
-
-# read in CEL files
-#library(mouse4302cdf, lib="C:/Program Files/R/rw2001/library" )
-#library(mouse4302cdf)
-#library(mouse4302, lib="C:/Program Files/R/rw2001/library")
-#library(mouse4302);
-
-library(arrayType,,character.only = TRUE)
-library(sub(" ","",paste(arrayType,'cdf')), character.only = TRUE)
-
-affyID1 &lt;- NULL
-
-#************ Loadind data
-data.raw = ReadAffy(filenames=fnames)
-sName = sampleNames(data.raw)
-# check whether it read in things correctly
-#data.raw
-
-   #image(data.raw, col=rainbow(100, start=0, end=0.7)[100:1])
-   # boxplot(data.raw, col=rainbow(50))
-    histRawPlot = 'histRawPlot.png' 
-    png(histRawPlot)
-    hist(data.raw, col = 1:length(sName))
-    legend('right',sName, lt = 1:length(sName),col = 1:length(sName), cex = 0.6)
-    dev.off()
-for (i in 1:5) gc()
-
-#************* Normalization Method
-
-normalization &lt;- function (data,method) {
-
- switch(method,
-             rma = rma(data),
-             gcrma = gcrma(data),
-             mmgmos = mmgmos(data)  
-            
-          )
-                                        }
-data.norm &lt;- normalization(data.raw, normMethod)
- 
-# Write result into the text file
-normText = 'normText.txt'
-temp = exprs(data.norm)
-#write.exprs(temp, normText)
-write(temp, normText)
-
-# create box plot
- boxNormPlot = 'boxNormPlot.png' 
-    png(boxNormPlot)
-    boxplot(data.frame(exprs(data.norm)), col=rainbow(30))
-    dev.off()
-#class(data.rma)
-
-
-#*************** Quality control  PCA 
- library(ade4)
- library(affyQCReport)
- library(base)
-
-      
- data.pca = dudi.pca(exprs(data.norm), scannf = F, nf = length(fnames))
-# produce PCA plot
-     pcaPlot = 'pcaPlot.png'
-     pc1 = data.pca$co[,2]
-     pc2 = data.pca$co[,3]
-     xl =  "1. PC"
-     yl =  "2. PC"
-     title = "PCA Result"
-     png(pcaPlot)
-     plot(pc1,pc2, xlab=xl,ylab=yl,main=title)
-     sName = sampleNames(data.norm)
-     points(pc1,pc2, col = 1:length(sName))
-     legend('topright',sName, col = 1:length(sName),pch = 1, cex = 0.6) 
-     dev.off()
-
-     # write result column to the given file name
-
-       pcaResultFileCol = 'pcaResultCol.txt'
-       pcaResultFileRow = 'pcaResultRow.txt'
-       pcaResultFileEig = 'pcaResultEig.txt'
-
-       se = ','
-
-          
-      # write result column to the given file name
-     
-      write.table(data.pca$co, file = pcaResultFileCol, sep = se, row.names = FALSE)
-
-      #write result raw to the given file name
-  
-
-      # create column names of comp1, comp2,  ...
-      v = data.pca$eig
-      h = length (v)
-      comp= 'Comp'
-      M = 1:h
-      for (i in 1:h) { M[i] = as.character(i) }
-      colNames = paste(comp ,M)
-
-     write.table(data.pca$li, file = pcaResultFileRow, sep = se, row.names = FALSE, col.names =  colNames)
-
-      #write result reigen value to the given file name
-      
-      K = matrix(1:h, h,3)
-
-      #setting cel file names from row.names
-       K[,1] = row.names(data.pca$co)
-       for (i in 1:h) {K[i,2] = v[i]}
-       for (i in 1:h) {K[i,3] =( (v[i]*100) / sum(v))}
-       col = c ('','Eigen Value', ' % Percentage')
-      
-          write.table(K, file =  pcaResultFileEig , sep = se, row.names = FALSE,col.names = col)
-
-
-
-
-
-
-
-#************** start ttest
-library(splines)
-library(limma)
-library(survival)
-library(splines)
-library(multtest)
-
-#*****ttest
-envi = 'mouse4302GENENAME'
-#group1 = c("B05.CEL","B04.CEL")
-#group2 = c("A75.CEL","A74.CEL")
-cl = c(rep(1,length(group1)),rep(2,length(group2)))
-
-# limma function
-limma &lt;- function (data.norm,group1,group2,cl){
-  design &lt;- model.matrix(~ -1+factor(cl))
-  #design &lt;- model.matrix(~ -1+factor(c(1,1,1,2,2,2)))
-  colnames(design)&lt;-c("group1","group2")
-  contrast.matrix = makeContrasts(group1-group2,levels = design)
-  #contrast.matrix &lt;- cbind(group2vs1=c(-1,1))
-  fit = lmFit(exprs(data.norm)[,c(group1,group2)],design)
-  fit2 &lt;-contrasts.fit(fit,contrast.matrix)
-  efit &lt;- eBayes(fit2)
-  
-  tops = topTable(efit,coef=1,adjust='fdr',sort.by='B',number = 50000)
-  affyID = tops[, 'ID']
-  P = tops[,'P.Value']
-  T = tops[,'t']
-  M = tops[,'M']
-  A= tops[,'A']
-  B = tops[,'B']
-
-# result file name should be same as workflow output
-  result2 = 'testResult.txt'
-  write.table(cbind(affyID,A,M,T,P,B), file = result2,sep = ',',row.names = FALSE)
-
-
-
- # filtering
-  tops = topTable(efit,coef=1,adjust="fdr",sort.by="B",number=gNum)
-  filter = tops[tops$P.Value &lt;pVal &amp; (tops$M &gt; FCVal| tops$M &lt;  (-1*FCVal) ) ,]
-
-  #geneId = c('gene')
-# annotating filterd result 
-
-  num = gNum
-  topsFil = filter
-  fSize = num
-  lenFil = length (topsFil$ID)
-  if (lenFil &lt; fSize)  fSize = lenFil
-  if (fSize &gt; 0) topsFil = topsFil [1: fSize,] else topsFil = NULL
-  if (fSize &gt; 0) testSize = TRUE else testSize = FALSE
-
-  affyID = topsFil[, 'ID']
- 
-
-  for (i in 1: length(affyID)) { affyID1 = c(affyID1,affyID[i]) }
- 
-  P = topsFil[,'P.Value']
-  T = topsFil[,'t']
-  M = topsFil[,'M']
-  A= topsFil[,'A']
-  B = topsFil[,'B']
-
-# result file name should be same as workflow output
-  result2 = 'filterResult.txt'
-  envi = sub(" ","",envi)
- llnames = NULL
-
-#  if  (exists(envi, mode='environment') )  llnames &lt;- mget(affyID, env = mouse4302GENENAME  ,ifnotfound ='NA') else llnames = NULL
-  GeneName &lt;- as.character(llnames)
-  if (length(GeneName) &gt;0) write.table(cbind(affyID,GeneName,A,M,T,P,B), file = result2,sep = ',',row.names = FALSE) else write.table(cbind(affyID,A,M,T,P,B), file = result2,sep = ',',row.names = FALSE) 
-  #affyID1 = c("1418809_at","1418240_at")
-  return(affyID1);  
-    } 
-# end of limma function
-
-# **********mmtest function 
-
-mmtest &lt;- function (data.norm,group1,group2,cl) {
-
-# calculate t statistic
-  cl = cl -1
-  tValue = mt.teststat(exprs(data.norm)[,c(group1,group2)], classlabel=cl)
-
-# calculate P value
-  pValue = 2*pt(-abs(tValue), df=ncol(exprs(data.norm))-2 )
-
-# adjust P value according to Benjamini &amp; Yekutieli
- adjp = mt.rawp2adjp(pValue, proc="BY")
-
-# order pvals
- ord = order(adjp$index)
- adjp.BY = adjp$adj[ord,"BY"]
-
-# calculate fold changes
-  mean.group1 = apply(exprs(data.norm)[,group1], 1, mean, na.rm=T)
-  mean.group2 = apply(exprs(data.norm)[,group2], 1, mean, na.rm=T)
-  FC = 2^( mean.group2 - mean.group1 )
-  
-# writettest result into the file
-  size = length(FC)
-  AffyID = names(FC)
-  FoldChange = numeric(size)
-  for (i in 1:size) { FoldChange[i] = FC[[i]]}
-  Pvalue = adjp.BY
-  result1 = 'testResult.txt'
-  write.table(cbind(AffyID,Pvalue,FoldChange), file= result1,sep = ',',,row.names = FALSE)
-
-
-# filtering 
- # fRes = which(adjp.BY&lt;pVal &amp;  (FC &gt;FCVal | FC&lt;  (-1*FCVal) ))
-   fRes = which(adjp.BY&lt;pVal &amp;  (FC &gt;FCVal | FC&lt;  (-1*FCVal) ))
-
-  num = gNum
-  size = num
- lenFil = length (fRes)
- if (lenFil &lt; size)  size = lenFil
- if ( size &gt; 0)  fRes = fRes [1: size] else fRes = NULL
- if (size &gt; 0) testSize = TRUE else testSize = FALSE
- AffyID = names(fRes)
- for (i in 1: length(AffyID)) { affyID1 = c(affyID1,AffyID[i]) }
- FoldChange = numeric(size)
- Pvalue = numeric(size)
- llnames = NULL
- if ( size &gt; 0) for (i in 1:size) { FoldChange[i] = FC[[fRes[[i]]]]; Pvalue[i] = adjp.BY[fRes[[i]]] }
- result3 = 'filterResult.txt'
-
- #if  (exists(envi, mode='environment') )  llnames &lt;- mget(AffyID, env = mouse4302GENENAME ,ifnotfound ='NA')  else llnames = NULL
- GeneName &lt;- llnames
- GeneName = gsub (',',' ',GeneName)
-
-if (length(GeneName) &gt;0) write.table(cbind(AffyID,GeneName,Pvalue,FoldChange), file= result3,sep = ',',row.names = FALSE)  else  write.table(cbind(AffyID,Pvalue,FoldChange), file= result3,sep = ',',row.names = FALSE)
- 
- return(affyID1);               
-   } 
-
-# end of mmtest function
-
-# *********pplr
-pplrTest &lt;-  function (data.norm,group1,group2,cl){
-  library(pplr)
-  num = gNum
-  e &lt;- NULL
-  se &lt;- NULL
-  r &lt;- NULL
-  p1e &lt;- NULL
-  samples &lt;- NULL
-  samples = c(group1,group2)
-  e &lt;- exprs(data.norm)[,samples]
-  se &lt;- se.exprs(data.norm)[,samples]
-  r &lt;- bcomb(e,se,replicate = cl, method='em')
-#//          rCon.eval("r &lt;- bcomb(e,se,replicate = cl, method='map')"); //quick for testing but should be em
-  p1e &lt;- pplr(r,1,2)
-  result1 = 'testResult.txt'
-  write.csv (p1e,result1)
-
-    # do filter
-
-    fSize =  num
-    topsFil = p1e[p1e$PPLR &lt;pVal &amp; (p1e$LRM &gt; FCVal | p1e$LRM &lt; (-1*FCVal)),]
-    lenFil = length (row.names(topsFil)) 
-    if (lenFil &lt; fSize)  fSize = lenFil 
-    if (fSize &gt; 0) topsFil = topsFil [1: fSize,] else topsFil = NULL
-    if (fSize &gt; 0) testSize = TRUE else testSize = FALSE 
-    affyID = row.names(topsFil)
-    for (i in 1: length(affyID)) { affyID1 = c(affyID1,affyID[i]) }
-    PPLR = topsFil[,'PPLR']
-    index = topsFil[,'index']
-    cM = topsFil[,'cM']
-    sM = topsFil[,'sM']
-    cStd = topsFil[,'cStd']
-    sStd = topsFil[,'sStd']
-    LRM= topsFil[,'LRM']
-    LRStd= topsFil[,'LRStd']
-    stat = topsFil[,'stat']
-    llnames = NULL
-    result2 = 'filterResult.txt'
-    ##annotation file
-    # if  (exists(envi, mode='environment') )  llnames &lt;- mget(affyID, env = mouse4302GENENAME  ,ifnotfound ='NA') else  llnames = NULL
-      GeneName &lt;- as.character(llnames)
-
-     if (length(GeneName) &gt;0) write.table(cbind(affyID,GeneName,index,cM,sM,cStd,sStd,LRM,LRStd,stat,PPLR), file = result2,sep = ',',row.names = FALSE) else write.table(cbind(affyID,index,cM,sM,cStd,sStd,LRM,LRStd,stat,PPLR), file = result2,sep = ',',row.names = FALSE) 
-     return(affyID1);
-
-} # end of pplr function
-
-
-
-# selecting ttest method
-ttest &lt;- function (data.norm,method) {
- switch(method,
-             limma = limma(data.norm,group1,group2,cl), mmtest = mmtest(data.norm,group1,group2,cl), pplr = pplrTest (data.norm,group1,group2,cl))   
-
-                                    }
-
-#ttest(data.norm,"limma")
-#if ((length(ttestMethod) &gt; 0) affyID1 &lt;- ttest(data.norm,ttestMethod) else affyID1 = NULL
-affyID1 &lt;- ttest(data.norm,ttestMethod)
-#ttest(data.norm,"pplr")
-      <s:rshellInputPortList>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">dirPath</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">arrayType</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">normMethod</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">ttestMethod</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="INTEGER_LIST">gNum</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="DOUBLE_LIST">pVal</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="DOUBLE_LIST">FCVal</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">group1</s:rshellInputPort>
-        <s:rshellInputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">group2</s:rshellInputPort>
-      </s:rshellInputPortList>
-      <s:rshellOutputPortList>
-        <s:rshellOutputPort s:syntacticType="'image/png'" s:symanticType="PNG_FILE">histRawPlot</s:rshellOutputPort>
-        <s:rshellOutputPort s:syntacticType="'image/png'" s:symanticType="PNG_FILE">boxNormPlot</s:rshellOutputPort>
-        <s:rshellOutputPort s:syntacticType="'image/png'" s:symanticType="PNG_FILE">pcaPlot</s:rshellOutputPort>
-        <s:rshellOutputPort s:syntacticType="l('text/plain')" s:symanticType="STRING_LIST">affyID1</s:rshellOutputPort>
-      </s:rshellOutputPortList>
-    </s:rshell>
-  </s:processor>
-  <s:processor name="Split_sample1">
-    <s:local>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</s:local>
-  </s:processor>
-  <s:processor name="Probeset_to_Pathway">
-    <s:workflow>
-      <s:scufl version="0.2" log="0">
-        <s:workflowdescription lsid="urn:lsid:www.mygrid.org.uk:operation:RUO295H3GU0" author="Paul Fisher" title="Human Pathways from Diff Expressed Genes">This workflow takes in probesets from and AffyMetrix micorarray experiment and returns: the genes in the QTL; gene start and end positions; chromosome where genes reside; ensembl trasncripts; SwissProt ids; affy probeset identifiers for chips Mouse430_2 and Mouse430a_2. The final output of the workflow is a list of candidate pathways which are linked to the genes expressed in the microarray data</s:workflowdescription>
-        <s:processor name="remove_entrez_duplicates">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringStripDuplicates</s:local>
-        </s:processor>
-        <s:processor name="merge_uniprot_ids">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="concat_kegg_genes">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringConcat</s:local>
-        </s:processor>
-        <s:processor name="merge_pathway_ids_2">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="merge_reports">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="remove_pathway_nulls">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++){
-   if (!(split[i].equals("")))
-   {
-       nonEmpty.add(split[i].trim());
-   }
-}
-
-String[] non_empty = new String[nonEmpty.size()];
-
-for (int i = 0; i &lt; non_empty.length; i ++)
-{
-   non_empty[i] = nonEmpty.elementAt(i);
-}
-
-String output = "";
-
-for (int i = 0; i &lt; non_empty.length; i++)
-{
-	output = output + (String) (non_empty[i] + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="add_ncbi_to_string">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++) 
-{		
-	String trimmed = split[i].trim();
-	nonEmpty.add(trimmed);	
-}
-
-String output = "";
-
-for (int i = 0; i &lt; nonEmpty.size(); i++)
-{
-	output = output + "ncbi-geneid:" + (String) (nonEmpty.elementAt(i) + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="add_uniprot_to_string">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++) 
-{		
-	String trimmed = split[i].trim();
-	nonEmpty.add(trimmed);	
-}
-
-String output = "";
-
-for (int i = 0; i &lt; nonEmpty.size(); i++)
-{
-	output = output + "uniprot:" + (String) (nonEmpty.elementAt(i) + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="split_gene_ids">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++) 
-{		
-	String trimmed = split[i].trim();
-	String[] trimmedSplit = trimmed.split("\t");
-	if (trimmedSplit.length &gt;= 2)
-	{
-	    nonEmpty.add(trimmedSplit[1].trim());	
-	}
-}
-
-String output = "";
-
-for (int i = 0; i &lt; nonEmpty.size(); i++)
-{
-	output = output + (String) (nonEmpty.elementAt(i) + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="REMOVE_NULLS_2">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++){
-   if (!(split[i].equals("")))
-   {
-       nonEmpty.add(split[i].trim());
-   }
-}
-
-String[] non_empty = new String[nonEmpty.size()];
-
-for (int i = 0; i &lt; non_empty.length; i ++)
-{
-   non_empty[i] = nonEmpty.elementAt(i);
-}
-
-String output = "";
-
-for (int i = 0; i &lt; non_empty.length; i++)
-{
-	output = output + (String) (non_empty[i] + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="merge_pathway_desc">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="kegg_pathway_release" boring="true">
-          <s:stringconstant>kegg pathway</s:stringconstant>
-        </s:processor>
-        <s:processor name="remove_duplicate_kegg_genes">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringStripDuplicates</s:local>
-        </s:processor>
-        <s:processor name="regex_2" boring="true">
-          <s:stringconstant>\n</s:stringconstant>
-        </s:processor>
-        <s:processor name="species" boring="true">
-          <s:stringconstant>homo_sapiens</s:stringconstant>
-        </s:processor>
-        <s:processor name="remove_pathway_duplicates">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringStripDuplicates</s:local>
-        </s:processor>
-        <s:processor name="merge_genes_pathways_3">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="merge_pathway_ids_1">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="split_for_duplicates">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</s:local>
-        </s:processor>
-        <s:processor name="merge_gene_desc">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="remove_uniprot_duplicates">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringStripDuplicates</s:local>
-        </s:processor>
-        <s:processor name="merge_entrez_genes">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="remove_description_nulls">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++){
-   if (!(split[i].equals("")))
-   {
-       nonEmpty.add(split[i].trim());
-   }
-}
-
-String[] non_empty = new String[nonEmpty.size()];
-
-for (int i = 0; i &lt; non_empty.length; i ++)
-{
-   non_empty[i] = nonEmpty.elementAt(i);
-}
-
-String output = "";
-
-for (int i = 0; i &lt; non_empty.length; i++)
-{
-	output = output + (String) (non_empty[i] + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="split_probesets">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</s:local>
-        </s:processor>
-        <s:processor name="remove_Nulls">
-          <s:beanshell>
-            <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++){
-   if (!(split[i].equals("")))
-   {
-       nonEmpty.add(split[i].trim());
-   }
-}
-
-String[] non_empty = new String[nonEmpty.size()];
-
-for (int i = 0; i &lt; non_empty.length; i ++)
-{
-   non_empty[i] = nonEmpty.elementAt(i);
-}
-
-String output = "";
-
-for (int i = 0; i &lt; non_empty.length; i++)
-{
-	output = output + (String) (non_empty[i] + "\n");
-}</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-        </s:processor>
-        <s:processor name="merge_genes_pathways_2">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="merge_genes_and_pathways">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-        </s:processor>
-        <s:processor name="remove_duplicate_desc">
-          <s:local>org.embl.ebi.escience.scuflworkers.java.StringStripDuplicates</s:local>
-        </s:processor>
-        <s:processor name="hsapiens_gene_ensembl">
-          <s:description>Homo sapiens genes (NCBI36)</s:description>
-          <s:biomart>
-            <biomart:MartQuery xmlns:biomart="http://org.embl.ebi.escience/xscufl-biomart/0.1alpha">
-              <biomart:MartService location="http://www.biomart.org/biomart/martservice" />
-              <biomart:MartDataset displayName="Homo sapiens genes (NCBI36)" name="hsapiens_gene_ensembl" type="TableSet" initialBatchSize="200" maximumBatchSize="50000" visible="false" interface="default" modified="2007-03-07 17:09:02">
-                <biomart:MartURLLocation database="ensembl_mart_43" default="1" displayName="ENSEMBL 43 GENE (SANGER)" host="www.biomart.org" includeDatasets="" martUser="" name="ensembl" path="/biomart/martservice" port="80" serverVirtualSchema="default" virtualSchema="default" visible="1" redirect="0" />
-              </biomart:MartDataset>
-              <biomart:Query virtualSchemaName="default" count="0" uniqueRows="0" softwareVersion="0.5" requestId="taverna">
-                <biomart:Dataset name="hsapiens_gene_ensembl">
-                  <biomart:Attribute name="ensembl_gene_id" />
-                  <biomart:Attribute name="external_gene_id" />
-                  <biomart:Attribute name="entrezgene" />
-                  <biomart:Attribute name="uniprot_swissprot_accession" />
-                  <biomart:Attribute name="end_position" />
-                  <biomart:Attribute name="start_position" />
-                  <biomart:Attribute name="ensembl_transcript_id" />
-                  <biomart:Attribute name="chromosome_name" />
-                  <biomart:Filter name="affy_hg_u133a" value="" list="true" />
-                </biomart:Dataset>
-              </biomart:Query>
-            </biomart:MartQuery>
-          </s:biomart>
-        </s:processor>
-        <s:processor name="create_report">
-          <s:beanshell>
-            <s:scriptvalue>result = ensemblGeneId + "," + entrezGeneId + "," + externalGeneId + "," + chromoName + "," + geneStart + "," + geneEnd + "," + ensemblTranscriptId + "," + uniprotAcc;</s:scriptvalue>
-            <s:beanshellinputlist>
-              <s:beanshellinput s:syntactictype="'text/plain'">ensemblGeneId</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">entrezGeneId</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">externalGeneId</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">chromoName</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">geneStart</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">geneEnd</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">ensemblTranscriptId</s:beanshellinput>
-              <s:beanshellinput s:syntactictype="'text/plain'">uniprotAcc</s:beanshellinput>
-            </s:beanshellinputlist>
-            <s:beanshelloutputlist>
-              <s:beanshelloutput s:syntactictype="'text/plain'">result</s:beanshelloutput>
-            </s:beanshelloutputlist>
-            <s:dependencies s:classloader="iteration" />
-          </s:beanshell>
-          <s:iterationstrategy>
-            <i:dot xmlns:i="http://org.embl.ebi.escience/xscufliteration/0.1beta10">
-              <i:iterator name="uniprotAcc" />
-              <i:iterator name="ensemblTranscriptId" />
-              <i:iterator name="geneEnd" />
-              <i:iterator name="geneStart" />
-              <i:iterator name="chromoName" />
-              <i:iterator name="externalGeneId" />
-              <i:iterator name="entrezGeneId" />
-              <i:iterator name="ensemblGeneId" />
-            </i:dot>
-          </s:iterationstrategy>
-        </s:processor>
-        <s:processor name="binfo">
-          <s:arbitrarywsdl>
-            <s:wsdl>http://soap.genome.jp/KEGG.wsdl</s:wsdl>
-            <s:operation>binfo</s:operation>
-          </s:arbitrarywsdl>
-        </s:processor>
-        <s:processor name="gene_descriptions">
-          <s:arbitrarywsdl>
-            <s:wsdl>http://soap.genome.jp/KEGG.wsdl</s:wsdl>
-            <s:operation>btit</s:operation>
-          </s:arbitrarywsdl>
-        </s:processor>
-        <s:processor name="Kegg_gene_ids">
-          <s:arbitrarywsdl>
-            <s:wsdl>http://soap.genome.jp/KEGG.wsdl</s:wsdl>
-            <s:operation>bconv</s:operation>
-          </s:arbitrarywsdl>
-        </s:processor>
-        <s:processor name="Kegg_gene_ids_2">
-          <s:arbitrarywsdl>
-            <s:wsdl>http://soap.genome.jp/KEGG.wsdl</s:wsdl>
-            <s:operation>bconv</s:operation>
-          </s:arbitrarywsdl>
-        </s:processor>
-        <s:processor name="Get_Pathways">
-          <s:description>This workflow removes any null values from a list of strings</s:description>
-          <s:workflow>
-            <s:scufl version="0.2" log="0">
-              <s:workflowdescription lsid="urn:lsid:www.mygrid.org.uk:operation:P81DV9PQW02" author="Paul Fisher / Jun Zhao" title="Remove null values">This workflow removes any null values from a list of strings</s:workflowdescription>
-              <s:processor name="concat_ids">
-                <s:beanshell>
-                  <s:scriptvalue>String[] split = input.split("\n");
-Vector nonEmpty = new Vector();
-
-for (int i = 0; i &lt; split.length; i++){
-   if (!(split[i].equals("")))
-   {
-       nonEmpty.add(split[i].trim());
-   }
-}
-
-String[] non_empty = new String[nonEmpty.size()];
-
-for (int i = 0; i &lt; non_empty.length; i ++)
-{
-   non_empty[i] = nonEmpty.elementAt(i);
-}
-
-String output = "";
-
-for (int i = 0; i &lt; non_empty.length; i++)
-{
-	output = output + (String) (non_empty[i] + "\t");
-}</s:scriptvalue>
-                  <s:beanshellinputlist>
-                    <s:beanshellinput s:syntactictype="'text/plain'">input</s:beanshellinput>
-                  </s:beanshellinputlist>
-                  <s:beanshelloutputlist>
-                    <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-                  </s:beanshelloutputlist>
-                  <s:dependencies s:classloader="iteration" />
-                </s:beanshell>
-              </s:processor>
-              <s:processor name="Merge_pathways">
-                <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-              </s:processor>
-              <s:processor name="split_by_regex">
-                <s:local>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</s:local>
-              </s:processor>
-              <s:processor name="regex" boring="true">
-                <s:stringconstant>\n</s:stringconstant>
-              </s:processor>
-              <s:processor name="Merge_pathway_desc">
-                <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-              </s:processor>
-              <s:processor name="Merge_gene_pathways">
-                <s:local>org.embl.ebi.escience.scuflworkers.java.StringListMerge</s:local>
-              </s:processor>
-              <s:processor name="concat_gene_pathway_ids">
-                <s:beanshell>
-                  <s:scriptvalue>String pathway_id_input = pathway_ids.trim();
-String gene_id_input = gene_id.trim();
-
-String output = "";
-
-output = gene_id_input + "\t" + pathway_id_input;</s:scriptvalue>
-                  <s:beanshellinputlist>
-                    <s:beanshellinput s:syntactictype="'text/plain'">pathway_ids</s:beanshellinput>
-                    <s:beanshellinput s:syntactictype="'text/plain'">gene_id</s:beanshellinput>
-                  </s:beanshellinputlist>
-                  <s:beanshelloutputlist>
-                    <s:beanshelloutput s:syntactictype="'text/plain'">output</s:beanshelloutput>
-                  </s:beanshelloutputlist>
-                  <s:dependencies s:classloader="iteration" />
-                </s:beanshell>
-              </s:processor>
-              <s:processor name="pathway_desc">
-                <s:arbitrarywsdl>
-                  <s:wsdl>http://soap.genome.jp/KEGG.wsdl</s:wsdl>
-                  <s:operation>btit</s:operation>
-                </s:arbitrarywsdl>
-              </s:processor>
-              <s:processor name="lister">
-                <s:arbitrarywsdl>
-                  <s:wsdl>http://phoebus.cs.man.ac.uk:8081/axis/EnsemblListner.jws?wsdl</s:wsdl>
-                  <s:operation>lister</s:operation>
-                </s:arbitrarywsdl>
-              </s:processor>
-              <s:processor name="get_pathways_by_genes1">
-                <s:arbitrarywsdl>
-                  <s:wsdl>http://soap.genome.jp/KEGG.wsdl</s:wsdl>
-                  <s:operation>get_pathways_by_genes</s:operation>
-                </s:arbitrarywsdl>
-              </s:processor>
-              <s:link source="Merge_gene_pathways:concatenated" sink="pathway_genes" />
-              <s:link source="Merge_pathway_desc:concatenated" sink="pathway_desc" />
-              <s:link source="Merge_pathways:concatenated" sink="concat_ids:input" />
-              <s:link source="Merge_pathways:concatenated" sink="pathway_desc:string" />
-              <s:link source="Merge_pathways:concatenated" sink="pathway_ids" />
-              <s:link source="concat_gene_pathway_ids:output" sink="Merge_gene_pathways:stringlist" />
-              <s:link source="concat_ids:output" sink="concat_gene_pathway_ids:pathway_ids" />
-              <s:link source="gene_ids" sink="split_by_regex:string" />
-              <s:link source="get_pathways_by_genes1:return" sink="Merge_pathways:stringlist" />
-              <s:link source="lister:listerReturn" sink="concat_gene_pathway_ids:gene_id" />
-              <s:link source="lister:listerReturn" sink="get_pathways_by_genes1:genes_id_list" />
-              <s:link source="pathway_desc:return" sink="Merge_pathway_desc:stringlist" />
-              <s:link source="regex:value" sink="split_by_regex:regex" />
-              <s:link source="split_by_regex:split" sink="lister:file" />
-              <s:source name="gene_ids" />
-              <s:sink name="pathway_genes" />
-              <s:sink name="pathway_desc" />
-              <s:sink name="pathway_ids" />
-            </s:scufl>
-          </s:workflow>
-        </s:processor>
-        <s:processor name="getcurrentdatabase">
-          <s:description>Retrieves the current databases from ENSEMBL for a species</s:description>
-          <s:soaplabwsdl>http://phoebus.cs.man.ac.uk:1977/axis/services/qtl_analysis.getcurrentdatabase</s:soaplabwsdl>
-        </s:processor>
-        <s:link source="Get_Pathways:pathway_desc" sink="remove_duplicate_desc:stringlist" />
-        <s:link source="Get_Pathways:pathway_genes" sink="merge_genes_and_pathways:stringlist" />
-        <s:link source="Get_Pathways:pathway_ids" sink="merge_pathway_ids_1:stringlist" />
-        <s:link source="Kegg_gene_ids:return" sink="concat_kegg_genes:string1" />
-        <s:link source="Kegg_gene_ids_2:return" sink="concat_kegg_genes:string2" />
-        <s:link source="REMOVE_NULLS_2:output" sink="add_uniprot_to_string:input" />
-        <s:link source="add_ncbi_to_string:output" sink="Kegg_gene_ids_2:string" />
-        <s:link source="add_uniprot_to_string:output" sink="Kegg_gene_ids:string" />
-        <s:link source="concat_kegg_genes:output" sink="split_for_duplicates:string" />
-        <s:link source="create_report:result" sink="merge_reports:stringlist" />
-        <s:link source="gene_descriptions:return" sink="merge_gene_desc:stringlist" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.chromosome_name" sink="create_report:chromoName" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.end_position" sink="create_report:geneEnd" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.ensembl_gene_id" sink="create_report:ensemblGeneId" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.ensembl_transcript_id" sink="create_report:ensemblTranscriptId" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.entrezgene" sink="create_report:entrezGeneId" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.entrezgene" sink="remove_entrez_duplicates:stringlist" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.external_gene_id" sink="create_report:externalGeneId" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.start_position" sink="create_report:geneStart" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.uniprot_swissprot_accession" sink="create_report:uniprotAcc" />
-        <s:link source="hsapiens_gene_ensembl:hsapiens_gene_ensembl.uniprot_swissprot_accession" sink="remove_uniprot_duplicates:stringlist" />
-        <s:link source="kegg_pathway_release:value" sink="binfo:db" />
-        <s:link source="merge_entrez_genes:concatenated" sink="remove_Nulls:input" />
-        <s:link source="merge_gene_desc:concatenated" sink="remove_description_nulls:input" />
-        <s:link source="merge_genes_and_pathways:concatenated" sink="merge_genes_pathways_2:stringlist" />
-        <s:link source="merge_pathway_ids_1:concatenated" sink="remove_pathway_duplicates:stringlist" />
-        <s:link source="merge_uniprot_ids:concatenated" sink="REMOVE_NULLS_2:input" />
-        <s:link source="probeset_list" sink="split_probesets:string" />
-        <s:link source="regex_2:value" sink="split_for_duplicates:regex" />
-        <s:link source="binfo:return" sink="kegg_pathway_release" />
-        <s:link source="getcurrentdatabase:output" sink="ensembl_database_release" />
-        <s:link source="merge_genes_pathways_2:concatenated" sink="merge_genes_pathways_3:stringlist" />
-        <s:link source="merge_genes_pathways_3:concatenated" sink="merged_pathways" />
-        <s:link source="merge_pathway_desc:concatenated" sink="remove_pathway_nulls:input" />
-        <s:link source="merge_pathway_ids_2:concatenated" sink="pathway_list" />
-        <s:link source="merge_reports:concatenated" sink="report" />
-        <s:link source="regex_2:value" sink="split_probesets:regex" />
-        <s:link source="remove_Nulls:output" sink="add_ncbi_to_string:input" />
-        <s:link source="remove_duplicate_desc:strippedlist" sink="merge_pathway_desc:stringlist" />
-        <s:link source="remove_duplicate_kegg_genes:strippedlist" sink="split_gene_ids:input" />
-        <s:link source="remove_entrez_duplicates:strippedlist" sink="merge_entrez_genes:stringlist" />
-        <s:link source="remove_pathway_duplicates:strippedlist" sink="merge_pathway_ids_2:stringlist" />
-        <s:link source="remove_description_nulls:output" sink="gene_descriptions" />
-        <s:link source="remove_pathway_nulls:output" sink="pathway_descriptions" />
-        <s:link source="remove_uniprot_duplicates:strippedlist" sink="merge_uniprot_ids:stringlist" />
-        <s:link source="species:value" sink="getcurrentdatabase:species" />
-        <s:link source="split_for_duplicates:split" sink="remove_duplicate_kegg_genes:stringlist" />
-        <s:link source="split_gene_ids:output" sink="Get_Pathways:gene_ids" />
-        <s:link source="split_gene_ids:output" sink="gene_descriptions:string" />
-        <s:link source="split_probesets:split" sink="hsapiens_gene_ensembl:hsapiens_gene_ensembl.affy_hg_u133a_filter" />
-        <s:source name="probeset_list" />
-        <s:sink name="merged_pathways" />
-        <s:sink name="gene_descriptions" />
-        <s:sink name="pathway_descriptions" />
-        <s:sink name="ensembl_database_release" />
-        <s:sink name="kegg_pathway_release" />
-        <s:sink name="pathway_list" />
-        <s:sink name="report" />
-      </s:scufl>
-    </s:workflow>
-  </s:processor>
-  <s:link source="NormalizationMethod" sink="AffyDataAnalysis:normMethod" />
-  <s:link source="arrayTypeAffy" sink="AffyDataAnalysis:arrayType" />
-  <s:link source="foldChange" sink="AffyDataAnalysis:FCVal" />
-  <s:link source="geneNumber" sink="AffyDataAnalysis:gNum" />
-  <s:link source="pValue" sink="AffyDataAnalysis:pVal" />
-  <s:link source="path" sink="AffyDataAnalysis:dirPath" />
-  <s:link source="samples1" sink="Split_sample1:string" />
-  <s:link source="testMethod" sink="AffyDataAnalysis:ttestMethod" />
-  <s:link source="Split_sample1:split" sink="AffyDataAnalysis:group1" />
-  <s:link source="Split_sample2:split" sink="AffyDataAnalysis:group2" />
-  <s:link source="String_Constant:value" sink="Split_sample1:regex" />
-  <s:link source="String_Constant:value" sink="Split_sample2:regex" />
-  <s:link source="samples2" sink="Split_sample2:string" />
-  <s:link source="AffyDataAnalysis:affyID1" sink="Probeset_to_Pathway:probeset_list" />
-  <s:link source="AffyDataAnalysis:affyID1" sink="geneID" />
-  <s:link source="AffyDataAnalysis:boxNormPlot" sink="boxNorm" />
-  <s:link source="AffyDataAnalysis:histRawPlot" sink="hist" />
-  <s:link source="AffyDataAnalysis:pcaPlot" sink="pca" />
-  <s:link source="Probeset_to_Pathway:ensembl_database_release" sink="ensembl_database_release" />
-  <s:link source="Probeset_to_Pathway:gene_descriptions" sink="gene_descriptions" />
-  <s:link source="Probeset_to_Pathway:kegg_pathway_release" sink="KEGG_pathway_release" />
-  <s:link source="Probeset_to_Pathway:merged_pathways" sink="merged_pathways" />
-  <s:link source="Probeset_to_Pathway:pathway_descriptions" sink="pathway_description" />
-  <s:link source="Probeset_to_Pathway:pathway_list" sink="pathway_list" />
-  <s:link source="Probeset_to_Pathway:report" sink="BioMart_report" />
-  <s:source name="arrayTypeAffy" />
-  <s:source name="path" />
-  <s:source name="NormalizationMethod" />
-  <s:source name="testMethod" />
-  <s:source name="pValue" />
-  <s:source name="foldChange" />
-  <s:source name="geneNumber" />
-  <s:source name="samples1" />
-  <s:source name="samples2" />
-  <s:sink name="hist" />
-  <s:sink name="boxNorm" />
-  <s:sink name="pca" />
-  <s:sink name="geneID" />
-  <s:sink name="pathway_description" />
-  <s:sink name="merged_pathways" />
-  <s:sink name="pathway_list" />
-  <s:sink name="gene_descriptions" />
-  <s:sink name="ensembl_database_release" />
-  <s:sink name="KEGG_pathway_release" />
-  <s:sink name="BioMart_report" />
-</s:scufl>
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/.gitignore b/taverna-scufl2-t2flow/.gitignore
deleted file mode 100644
index 84c6855..0000000
--- a/taverna-scufl2-t2flow/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-target
-.settings
-.classpath
-.project

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/pom.xml b/taverna-scufl2-t2flow/pom.xml
deleted file mode 100644
index e5ffc50..0000000
--- a/taverna-scufl2-t2flow/pom.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-t2flow</artifactId>
-	<packaging>bundle</packaging>
-	<name>Apache Taverna Scufl 2 t2flow parser</name>
-	<description>Parser for .t2flow file format (Taverna 2.x)</description>
-	<build>
-		<plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <!--
-                <configuration>
-                    <instructions>
-                        <Export-Package>org.apache.taverna.scufl2.api.io;provide:=true</Export-Package>
-                    </instructions>
-                </configuration>
-                 -->
-            </plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>jaxb2-maven-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>xjc</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<packageName>org.apache.taverna.scufl2.xml.t2flow.jaxb</packageName>
-					<schemaDirectory>src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/</schemaDirectory>
-				</configuration>
-			</plugin>
-			<plugin>
-				<!-- So that Eclipse m2e (with the buildhelper m2e connector) can find
-					the generated sources -->
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>build-helper-maven-plugin</artifactId>
-				<version>1.8</version>
-				<executions>
-					<execution>
-						<id>add-source</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>add-source</goal>
-						</goals>
-						<configuration>
-							<sources>
-								<source>${project.build.directory}/generated-sources/jaxb/</source>
-							</sources>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-
-	            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-			</plugin>
-                  </plugins>
-
-		<pluginManagement>
-			<plugins>
-				<!--This plugin's configuration is used to store Eclipse m2e settings
-					only. It has no influence on the Maven build itself. -->
-				<plugin>
-					<groupId>org.eclipse.m2e</groupId>
-					<artifactId>lifecycle-mapping</artifactId>
-					<version>1.0.0</version>
-					<configuration>
-						<lifecycleMappingMetadata>
-							<pluginExecutions>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.codehaus.mojo</groupId>
-										<artifactId>jaxb2-maven-plugin</artifactId>
-										<versionRange>[1.5,)</versionRange>
-										<goals>
-											<goal>xjc</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<execute>
-											<runOnIncremental>false</runOnIncremental>
-										</execute>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>
-											org.codehaus.mojo
-										</groupId>
-										<artifactId>
-											build-helper-maven-plugin
-										</artifactId>
-										<versionRange>
-											[1.8,)
-										</versionRange>
-										<goals>
-											<goal>add-source</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<execute />
-									</action>
-								</pluginExecution>
-							</pluginExecutions>
-						</lifecycleMappingMetadata>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-	</build>
-	<dependencies>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-api</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-rdfxml</artifactId>
-			<version>${project.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-osgi</artifactId>
-      <version>${jaxb.version}</version>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-      <version>${commons.io.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jdom</groupId>
-			<artifactId>com.springsource.org.jdom</artifactId>
-      <version>${jdom.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jaxen</groupId>
-			<artifactId>com.springsource.org.jaxen</artifactId>
-      <version>${jaxen.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/ParserState.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/ParserState.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/ParserState.java
deleted file mode 100644
index ff53dfc..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/ParserState.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import org.apache.taverna.scufl2.api.common.Configurable;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-public class ParserState {
-	private org.apache.taverna.scufl2.api.activity.Activity currentActivity;
-	private Profile currentProfile;
-	private Processor currentProcessor;
-
-	public org.apache.taverna.scufl2.api.activity.Activity getCurrentActivity() {
-		return currentActivity;
-	}
-
-	public void setCurrentActivity(
-			org.apache.taverna.scufl2.api.activity.Activity currentActivity) {
-		this.currentActivity = currentActivity;
-	}
-
-	public Profile getCurrentProfile() {
-		return currentProfile;
-	}
-
-	public void setCurrentProfile(Profile currentProfile) {
-		this.currentProfile = currentProfile;
-	}
-
-	public Processor getCurrentProcessor() {
-		return currentProcessor;
-	}
-
-	public void setCurrentProcessor(Processor currentProcessor) {
-		this.currentProcessor = currentProcessor;
-	}
-
-	public ProcessorBinding getCurrentProcessorBinding() {
-		return currentProcessorBinding;
-	}
-
-	public void setCurrentProcessorBinding(
-			ProcessorBinding currentProcessorBinding) {
-		this.currentProcessorBinding = currentProcessorBinding;
-	}
-
-	public WorkflowBundle getCurrentWorkflowBundle() {
-		return workflowBundle;
-	}
-
-	public void setCurrentWorkflowBundle(WorkflowBundle workflowBundle) {
-		this.workflowBundle = workflowBundle;
-	}
-
-	public T2Parser getCurrentT2Parser() {
-		return currentT2Parser;
-	}
-
-	public void setCurrentT2Parser(T2Parser currentT2Parser) {
-		this.currentT2Parser = currentT2Parser;
-	}
-
-	public Workflow getCurrentWorkflow() {
-		return currentWorkflow;
-	}
-
-	public void setCurrentWorkflow(Workflow currentWorkflow) {
-		this.currentWorkflow = currentWorkflow;
-	}
-
-	private ProcessorBinding currentProcessorBinding;
-	private WorkflowBundle workflowBundle;
-	private T2Parser currentT2Parser;
-	private Workflow currentWorkflow;
-	private T2FlowParser t2FlowParser;
-	private Configuration currentConfiguration;
-	private Configurable currentConfigurable;
-    private String previousDispatchLayerName;
-
-	/**
-     * @return the previousDispatchLayerName
-     */
-    public String getPreviousDispatchLayerName() {
-        return previousDispatchLayerName;
-    }
-
-    public final T2FlowParser getT2FlowParser() {
-		return t2FlowParser;
-	}
-
-	public void setT2FlowParser(T2FlowParser t2FlowParser) {
-		this.t2FlowParser = t2FlowParser;
-		
-	}
-
-	public Configuration getCurrentConfiguration() {
-		return currentConfiguration;
-	}
-
-	public void setCurrentConfiguration(Configuration currentConfiguration) {
-		this.currentConfiguration = currentConfiguration;
-	}
-
-	public Configurable getCurrentConfigurable() {
-		return currentConfigurable;
-	}
-
-	public void setCurrentConfigurable(Configurable currentConfigurable) {
-		this.currentConfigurable = currentConfigurable;
-	}
-
-    public void setPreviousDispatchLayerName(String previousDispatchLayerName) {
-        this.previousDispatchLayerName = previousDispatchLayerName;
-    }
-	
-}


[14/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java
deleted file mode 100644
index aaadeab..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/DataflowActivityParser.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.api.core.Workflow.WORKFLOW_ROOT;
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DataflowConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class DataflowActivityParser extends AbstractActivityParser {
-	private URITools uriTools = new URITools();
-	private static URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/dataflow-activity/");
-	private static String activityClassName = "net.sf.taverna.t2.activities.dataflow.DataflowActivity";
-	public static URI nestedUri = URI
-			.create("http://ns.taverna.org.uk/2010/activity/nested-workflow");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return nestedUri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState) throws ReaderException {
-		DataflowConfig dataflowConfig = unmarshallConfig(t2FlowParser,
-				configBean, "dataflow", DataflowConfig.class);
-		Configuration configuration = new Configuration();
-		configuration.setType(nestedUri.resolve("#Config"));		
-
-		String wfId = dataflowConfig.getRef();
-		URI wfUri = WORKFLOW_ROOT.resolve(wfId + "/");
-		Workflow wf = (Workflow) getUriTools().resolveUri(wfUri, parserState.getCurrentWorkflowBundle());		
-		if (wf == null)
-	        throw new ReaderException("Can't find nested workflow with id " + wfId);
-		ObjectNode json = configuration.getJsonAsObjectNode();
-		json.put("nestedWorkflow", wf.getName());
-		return configuration;
-	}
-
-	public void setUriTools(URITools uriTools) {
-		this.uriTools = uriTools;
-	}
-
-	public URITools getUriTools() {
-		return uriTools;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java
deleted file mode 100644
index 73a3a22..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/InteractionActivityParser.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.InteractionConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class InteractionActivityParser extends AbstractActivityParser {
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/interaction-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.interaction.InteractionActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/interaction");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		InteractionConfig interactionConfig = unmarshallConfig(t2FlowParser,
-				configBean, "xstream", InteractionConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-		
-		String presentationOrigin = interactionConfig.getPresentationOrigin();
-		json.put("presentationOrigin", presentationOrigin);
-		
-		String interactionActivityType = interactionConfig.getInteractionActivityType();
-		json.put("interactionActivityType", interactionActivityType);
-		
-		boolean progressNotification = interactionConfig.getProgressNotification();
-		json.put("progressNotification", progressNotification);
-		
-		Activity activity = parserState.getCurrentActivity();
-		activity.getInputPorts().clear();
-		activity.getOutputPorts().clear();
-		for (ActivityPortDefinitionBean portBean : interactionConfig
-				.getInputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
-			parseAndAddInputPortDefinition(portBean, configuration, activity);
-		for (ActivityPortDefinitionBean portBean : interactionConfig
-				.getOutputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
-			parseAndAddOutputPortDefinition(portBean, configuration, activity);
-		return configuration;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java
deleted file mode 100644
index e9808eb..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/RshellActivityParser.java
+++ /dev/null
@@ -1,215 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellConnection;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellSymanticType;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RShellSymanticType.RShellPortSymanticTypeBean;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class RshellActivityParser extends AbstractActivityParser {
-	/*
-	 * A lovely artifact of xstream 'efficiency' - Xpath backpointers to
-	 * previous elements. luckily we are here restricted within this specific
-	 * config bean
-	 * 
-	 * Example:
-	 * ../../net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean
-	 * [3]/symanticType
-	 * ../../../inputSymanticTypes/net.sf.taverna.t2.activities.
-	 * rshell.RShellPortSymanticTypeBean[2]/symanticType
-	 */
-	Pattern strangeXpath = Pattern
-			.compile("[./]+/(inputSymanticTypes)?.*TypeBean(\\[(\\d+)\\])?/symanticType$");
-
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/rshell-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.rshell.RshellActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/rshell");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState) throws ReaderException {
-		RShellConfig rshellConfig = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", RShellConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-		// Basic properties
-		String script = rshellConfig.getScript();
-		json.put("script", script);
-//		if (rshellConfig.getRVersion() != null) {
-//            json.put("rVersion", rshellConfig.getRVersion());
-//		}
-
-		// Connection
-		ObjectNode connection = json.objectNode();
-		json.put("connection", connection);
-        RShellConnection conn = rshellConfig.getConnectionSettings();
-        connection.put("hostname", conn.getHost());
-        json.put("port", conn.getPort());
-
-		// ignored - Taverna 2.3+ uses credential manager
-		// connection.put("username", conn.getUsername());
-		// connection.put("password", conn.getPassword());
-        
-        connection.put("keepSessionAlive", conn.isKeepSessionAlive());
-
-		// ignoooooored - we won't support the legacy ones anymore
-		// if (rshellConfig.getConnectionSettings().isNewRVersion() == null || !
-		// rshellConfig.getConnectionSettings().isNewRVersion()) {
-		// connection.put("legacy", true);
-		// }
-
-		// Activity ports
-		Activity activity = parserState.getCurrentActivity();
-		activity.getInputPorts().clear();
-		activity.getOutputPorts().clear();
-		
-		for (ActivityPortDefinitionBean portBean : rshellConfig
-				.getInputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
-			parseAndAddInputPortDefinition(portBean, configuration, activity);
-		for (ActivityPortDefinitionBean portBean : rshellConfig
-				.getOutputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
-			parseAndAddOutputPortDefinition(portBean, configuration, activity);
-		
-		RShellSymanticType inputSymanticTypes = rshellConfig
-				.getInputSymanticTypes();
-		List<String> foundInputTypes = new ArrayList<>();
-
-		ArrayNode inputPorts = json.arrayNode();
-		json.put("inputTypes", inputPorts);
-		for (RShellPortSymanticTypeBean symanticType : inputSymanticTypes
-				.getNetSfTavernaT2ActivitiesRshellRShellPortSymanticTypeBean()) {
-            ObjectNode port = json.objectNode();
-			port.put("port", symanticType.getName());
-			String dataType = symanticType.getSymanticType().getValue(); 
-			String reference = symanticType.getSymanticType().getReference();
-			if (reference != null) {
-				Matcher matcher = strangeXpath.matcher(reference);
-				if (matcher == null || !matcher.matches())
-					throw new ReaderException(
-							"Unhandled xstream xpath expression: " + reference);
-				String position = matcher.group(3);
-				if (position == null)
-					position = "1";
-				dataType = foundInputTypes.get(Integer.parseInt(position) - 1);
-			}
-			
-			foundInputTypes.add(dataType);
-			// Even if it's null - so the index is correct
-
-			if (dataType != null)
-			    port.put("dataType", dataType);
-		}
-		/*
-		 * FIXME: Avoid this repetition. Would require a fair bit of parser
-		 * state...
-		 */
-		RShellSymanticType outputSymanticTypes = rshellConfig
-				.getOutputSymanticTypes();
-		List<String> foundOutputTypes = new ArrayList<>();
-        ArrayNode outputPorts = json.arrayNode();
-        json.put("outputTypes", outputPorts);
-
-		for (RShellPortSymanticTypeBean symanticType : outputSymanticTypes
-				.getNetSfTavernaT2ActivitiesRshellRShellPortSymanticTypeBean()) {
-            ObjectNode port = json.objectNode();
-            port.put("port", symanticType.getName());
-
-			String dataType = symanticType.getSymanticType().getValue();
-			String reference = symanticType.getSymanticType().getReference();
-			if (reference != null) {
-				/*
-				 * A lovely artifact of xstream 'efficiency' - Xpath
-				 * backpointers to previous elements. luckily we are here
-				 * restricted within this specific config bean.
-				 *
-				 * Example:
-				 * ../../net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[3]/symanticType
-				 * ../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[2]/symanticType
-				 */
-
-				Matcher matcher = strangeXpath.matcher(reference);
-				if (matcher == null || !matcher.matches())
-					throw new ReaderException(
-							"Unhandled xstream xpath expression: " + reference);
-
-				boolean isInputSymantic = matcher.group(1) != null;
-				String position = matcher.group(3);
-				if (position == null)
-					position = "1";
-				if (isInputSymantic)
-					dataType = foundInputTypes
-							.get(Integer.parseInt(position) - 1);
-				else
-					dataType = foundOutputTypes
-							.get(Integer.parseInt(position) - 1);
-			}
-
-			foundOutputTypes.add(dataType);
-			// Even if it's null - so the index is correct
-
-			if (dataType != null)
-                port.put("dataType", dataType);
-		}
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java
deleted file mode 100644
index b5ce171..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SoaplabActivityParser.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SoaplabConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class SoaplabActivityParser extends AbstractActivityParser {
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/soaplab-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.soaplab.SoaplabActivity";
-	public static final URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/activity/soaplab");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		SoaplabConfig soaplabConfig = unmarshallConfig(t2FlowParser,
-				configBean, "xstream", SoaplabConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(scufl2Uri.resolve("#Config"));
-
-		String endpoint = soaplabConfig.getEndpoint();
-		if (endpoint == null || endpoint.isEmpty())
-			throw new ReaderException("Soablab config has no endpoint set");
-		json.put("endpoint", endpoint);
-
-		double pollingBackoff = soaplabConfig.getPollingBackoff();
-		json.put("pollingBackoff", pollingBackoff);
-
-		BigInteger pollingInterval = soaplabConfig.getPollingInterval();
-		if (pollingInterval != null)
-            json.put("pollingInterval", pollingInterval.intValue());
-
-		BigInteger pollingIntervalMax = soaplabConfig.getPollingIntervalMax();
-		if (pollingIntervalMax != null)
-            json.put("pollingIntervalMax", pollingIntervalMax.intValue());
-
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java
deleted file mode 100644
index e860171..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/SpreadsheetActivityParser.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SpreadsheetColumnNameEntry;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SpreadsheetImportConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.SpreadsheetRange;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class SpreadsheetActivityParser extends AbstractActivityParser {
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/spreadsheet-import-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import");
-	public static final URI RANGE_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import/Range");
-	public static final URI MAPPING_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/spreadsheet-import/Mapping");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser, ConfigBean configBean,
-			ParserState parserState) throws ReaderException {
-		SpreadsheetImportConfig config = unmarshallConfig(t2FlowParser, configBean, "xstream",
-				SpreadsheetImportConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-		ObjectNode columnRange = json.objectNode();
-		json.put("columnRange", columnRange);
-		makeRange(config.getColumnRange(), columnRange);
-
-		ObjectNode rowRange = json.objectNode();
-        json.put("rowRange", rowRange);
-        makeRange(config.getRowRange(), rowRange);
-
-		if (config.getEmptyCellValue() != null)
-		    json.put("emptyCellValue", config.getEmptyCellValue());
-		
-		ArrayNode columnNames = json.arrayNode();
-        if (config.getColumnNames() != null && config.getColumnNames().getEntry() != null) {
-    		for (SpreadsheetColumnNameEntry entry : config.getColumnNames().getEntry()) {
-    		    ObjectNode mapping = json.objectNode();
-    		    columnNames.add(mapping);
-                mapping.put("column", entry.getString().get(0));
-                mapping.put("port", entry.getString().get(1));
-    		}
-    		if (columnNames.size() > 0)
-    		    json.put("columnNames", columnNames);
-        }
-		
-		json.put("allRows", config.isAllRows());
-		json.put("excludeFirstRow", config.isExcludeFirstRow());
-		json.put("ignoreBlankRows", config.isIgnoreBlankRows());
-		if (config.getEmptyCellPolicy() != null)
-			json.put("emptyCellPolicy", config.getEmptyCellPolicy().value());
-		if (config.getOutputFormat() != null)
-			json.put("outputFormat", config.getOutputFormat().value());
-		if (config.getCsvDelimiter() != null)
-			json.put("csvDelimiter", config.getCsvDelimiter());
-
-		return configuration;
-	}
-
-	private void makeRange(SpreadsheetRange range, ObjectNode rangeJson) {
-		rangeJson.put("start", range.getStart().longValue());
-        rangeJson.put("end", range.getEnd().longValue());
-        
-        ArrayNode excludes = rangeJson.arrayNode();
-		for (SpreadsheetRange excludesRange : range.getExcludes().getExclude()) {
-			ObjectNode exclude = rangeJson.objectNode();
-			makeRange(excludesRange, exclude);
-		    excludes.add(exclude);
-		}
-		if (excludes.size() > 0)
-		    rangeJson.put("excludes", excludes);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java
deleted file mode 100644
index cb77ef8..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/StringConstantActivityParser.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.StringConstantConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class StringConstantActivityParser extends AbstractActivityParser {
-	private static final String VALUE = "value";
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/stringconstant-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.stringconstant.StringConstantActivity";
-	public static final URI CONSTANT = URI
-			.create("http://ns.taverna.org.uk/2010/activity/constant");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return CONSTANT;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState) throws ReaderException {
-		StringConstantConfig strConfig = unmarshallConfig(t2FlowParser,
-				configBean, "xstream", StringConstantConfig.class);
-		String value = strConfig.getValue();
-		if (value == null)
-			throw new ReaderException("String constant configuration has no value set");
-		Configuration configuration = new Configuration();
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(CONSTANT.resolve("#Config"));
-		json.put("string", value);
-		
-		Activity activity = parserState.getCurrentActivity();
-		OutputActivityPort valuePort = new OutputActivityPort(activity, VALUE);
-		valuePort.setDepth(0);
-		valuePort.setGranularDepth(0);
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java
deleted file mode 100644
index ffb6537..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLActivityParser.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.WSDLConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class WSDLActivityParser extends AbstractActivityParser {
-	private static final URI wsdlActivityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/wsdl-activity/");
-	private static final String wsdlActivityClassName = "net.sf.taverna.t2.activities.wsdl.WSDLActivity";
-	public static final URI WSDL = URI
-			.create("http://ns.taverna.org.uk/2010/activity/wsdl");
-	public static final URI SECURITY = WSDL.resolve("wsdl/security");
-	public static final URI OPERATION = WSDL.resolve("wsdl/operation");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		if (!activityUriStr.startsWith(wsdlActivityRavenURI.toASCIIString()))
-			return false;
-		if (activityUriStr.endsWith(wsdlActivityClassName))
-			return true;
-		return false;
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return WSDL;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		WSDLConfig wsdlConfig = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", WSDLConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setType(WSDL.resolve("#Config"));
-
-		URI wsdl;
-		try {
-			wsdl = URI.create(wsdlConfig.getWsdl());
-			if (!wsdl.isAbsolute())
-				throw new ReaderException("WSDL URI is not absolute: "
-						+ wsdlConfig.getWsdl());
-		} catch (IllegalArgumentException ex) {
-			throw new ReaderException("WSDL not a valid URI: "
-					+ wsdlConfig.getWsdl());
-		} catch (NullPointerException ex) {
-			throw new ReaderException("WSDL config has no wsdl set");
-		}
-		String operation = wsdlConfig.getOperation();
-		if (operation == null || operation.equals(""))
-			throw new ReaderException("WSDL config has no operation set");
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-
-		ObjectNode wsdlOperation = json.objectNode();
-		json.put("operation", wsdlOperation);
-
-		wsdlOperation.put("wsdl", wsdl.toString());
-		wsdlOperation.put("name", operation);
-
-		if (wsdlConfig.getSecurityProfile() != null
-				&& !wsdlConfig.getSecurityProfile().isEmpty()) {
-			URI securityProfileURI = SECURITY.resolve("#"
-					+ wsdlConfig.getSecurityProfile());
-			json.put("securityProfile", securityProfileURI.toString());
-		}
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java
deleted file mode 100644
index 2b9e64b..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/WSDLXMLSplitterParser.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLActivityParser.WSDL;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.XMLSplitterConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class WSDLXMLSplitterParser extends AbstractActivityParser {
-	private static final URI wsdlActivityRavenURI = T2FlowParser.ravenURI
-			.resolve("net.sf.taverna.t2.activities/wsdl-activity/");
-	private static final String inputSplitterClassName = "net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity";
-	private static final String outputSplitterClassName = "net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity";
-	public static final URI SPLITTER = WSDL.resolve("xml-splitter");
-	public static final URI XML_INPUT_SPLITTER = SPLITTER
-			.resolve("xml-splitter/in");
-	public static final URI XML_OUTPUT_SPLITTER = SPLITTER
-			.resolve("xml-splitter/out");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		if (!activityUriStr.startsWith(wsdlActivityRavenURI.toASCIIString()))
-			return false;
-		return activityUriStr.endsWith(inputSplitterClassName)
-				|| activityUriStr.endsWith(outputSplitterClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		String activityUriStr = t2flowActivity.toASCIIString();
-		if (activityUriStr.endsWith(inputSplitterClassName))
-			return XML_INPUT_SPLITTER;
-		else if (activityUriStr.endsWith(outputSplitterClassName))
-			return XML_OUTPUT_SPLITTER;
-		throw new IllegalArgumentException("Unexpected URI " + t2flowActivity);
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		XMLSplitterConfig splitterConfig = unmarshallConfig(t2FlowParser,
-				configBean, "xstream", XMLSplitterConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(SPLITTER.resolve("#Config"));
-
-		String wrappedTypeXML = splitterConfig.getWrappedTypeXML();
-
-		json.put("wrappedType", wrappedTypeXML);
-
-		Activity activity = parserState.getCurrentActivity();
-		activity.getInputPorts().clear();
-		activity.getOutputPorts().clear();
-
-		for (ActivityPortDefinitionBean portBean : splitterConfig
-				.getInputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
-			parseAndAddInputPortDefinition(portBean, configuration, activity);
-		for (ActivityPortDefinitionBean portBean : splitterConfig
-				.getOutputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
-			parseAndAddOutputPortDefinition(portBean, configuration, activity);
-
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java
deleted file mode 100644
index ef8437d..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ErrorBounceParser.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class ErrorBounceParser extends AbstractActivityParser {
-	private static final URI bouncerRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-	private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce";
-	public static final URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/ErrorBounce");
-
-	@Override
-	public boolean canHandlePlugin(URI pluginURI) {
-		String uriStr = pluginURI.toASCIIString();
-		return uriStr.startsWith(bouncerRavenURI.toASCIIString())
-				&& uriStr.endsWith(className);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		return null; // no config!
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java
deleted file mode 100644
index 6ea8864..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/FailoverParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class FailoverParser extends AbstractActivityParser {
-	private static final URI modelRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-	private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover";
-	public static final URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Failover");
-
-	@Override
-	public boolean canHandlePlugin(URI pluginURI) {
-		String uriStr = pluginURI.toASCIIString();
-		return uriStr.startsWith(modelRavenURI.toASCIIString())
-				&& uriStr.endsWith(className);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState) throws ReaderException {
-		return null; // no config!
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java
deleted file mode 100644
index 25ae86c..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/InvokeParser.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class InvokeParser extends AbstractActivityParser {
-	private static final URI modelRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-	private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke";
-	public static final URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Invoke");
-
-	@Override
-	public boolean canHandlePlugin(URI pluginURI) {
-		String uriStr = pluginURI.toASCIIString();
-		return uriStr.startsWith(modelRavenURI.toASCIIString())
-				&& uriStr.endsWith(className);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		return null; // no config!
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java
deleted file mode 100644
index d742c82..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/LoopParser.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Activity;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.LoopConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Property;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class LoopParser extends AbstractActivityParser {
-	/**
-	 * Expose some of the useful activity/config parser methods to LoopParser
-	 * with a different parser state.
-	 * <p>
-	 * TODO: Refactor T2FlowParser to avoid the need for this 
-	 */
-	protected class ConditionalActivityParser extends T2FlowParser {
-		public ConditionalActivityParser(ParserState origState) throws JAXBException {
-			super();
-			parserState.get().setCurrentProfile(origState.getCurrentProfile());
-			parserState.get().setCurrentProcessor(origState.getCurrentProcessor());
-		}
-		@Override
-		public org.apache.taverna.scufl2.api.activity.Activity parseActivity(
-				Activity origActivity) throws ReaderException {
-			org.apache.taverna.scufl2.api.activity.Activity parsed = super.parseActivity(origActivity);
-			parserState.get().setCurrentActivity(parsed);
-			return parsed;
-		}
-		@Override
-		protected Configuration parseConfiguration(ConfigBean configBean)
-				throws JAXBException, ReaderException {
-			return super.parseConfiguration(configBean);
-		}
-	}
-
-	private static final URI modelRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-	private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop";
-	public static final URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Loop");
-
-	@Override
-	public boolean canHandlePlugin(URI pluginURI) {
-		String uriStr = pluginURI.toASCIIString();
-		return uriStr.startsWith(modelRavenURI.toASCIIString())
-				&& uriStr.endsWith(className);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		LoopConfig loopConfig = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", LoopConfig.class);
-
-		final Configuration c = new Configuration();
-		c.setType(scufl2Uri.resolve("Config"));
-
-		ObjectNode json = (ObjectNode) c.getJson();
-
-		json.put("runFirst", loopConfig.isRunFirst());
-
-		for (Property prop : loopConfig.getProperties().getProperty())
-			json.put(prop.getName(), prop.getValue());
-		
-		String conditionXml = loopConfig.getConditionXML();	
-		if (conditionXml == null)
-		    // activity is unconfigured (bug in T2). 
-		    // Return c only if there are properties beyond "runFirst"
-			return json.size() > 1 ? c : null;
-		Activity conditionActivity = unmarshallXml(
-				parserState.getT2FlowParser(), conditionXml, Activity.class);
-		try {
-			ConditionalActivityParser internalParser = new ConditionalActivityParser(
-					parserState);
-
-			org.apache.taverna.scufl2.api.activity.Activity newActivity = internalParser
-					.parseActivity(conditionActivity);
-			String name = parserState.getCurrentProcessor().getName() + "-loop";
-			newActivity.setName(name);
-			parserState.getCurrentProfile().getActivities()
-					.addWithUniqueName(newActivity);
-			newActivity.setParent(parserState.getCurrentProfile());
-
-			Configuration newConfig = internalParser
-					.parseConfiguration(conditionActivity.getConfigBean());
-			newConfig.setName(name);
-			newConfig.setConfigures(newActivity);
-			parserState.getCurrentProfile().getConfigurations()
-					.addWithUniqueName(newConfig);
-			// URI uriActivity = uriTools.relativeUriForBean(newActivity, parserState.getCurrentProfile());
-			json.put("conditionActivity", newActivity.getName());
-		} catch (JAXBException e) {
-			throw new ReaderException("Can't parse conditional loop activity",
-					e);
-		}
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java
deleted file mode 100644
index 977b4c9..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/ParallelizeParser.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ParallelizeConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ParallelizeParser extends AbstractActivityParser {
-
-	private static URI modelRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-
-	private static String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize";
-
-	public static URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Parallelize");
-
-	public static class Defaults {
-		public static int maxJobs = 1;
-	}
-
-	@Override
-	public boolean canHandlePlugin(URI pluginURI) {
-		String uriStr = pluginURI.toASCIIString();
-		return uriStr.startsWith(modelRavenURI.toASCIIString())
-				&& uriStr.endsWith(className);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		ParallelizeConfig parallelConfig = unmarshallConfig(t2FlowParser,
-				configBean, "xstream", ParallelizeConfig.class);
-		Configuration c = new Configuration();
-		c.setType(scufl2Uri.resolve("#Config"));
-
-		BigInteger maxJobs = parallelConfig.getMaxJobs();
-		if (maxJobs != null && maxJobs.intValue() > 0
-				&& maxJobs.intValue() != Defaults.maxJobs) {
-			ObjectNode json = (ObjectNode) c.getJson();
-			json.put("maxJobs", maxJobs.intValue());
-		}
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java
deleted file mode 100644
index e1194f0..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.BACKOFF_FACTOR;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.INITIAL_DELAY;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.MAX_DELAY;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser.Defaults.MAX_RETRIES;
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RetryConfig;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class RetryParser extends AbstractActivityParser {
-	private static final URI modelRavenURI =
-		ravenURI.resolve("net.sf.taverna.t2.core/workflowmodel-impl/");
-	private static final String className = "net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry";
-	public static final URI scufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Retry");
-
-	@Override
-	public boolean canHandlePlugin(URI pluginURI) {
-		String uriStr = pluginURI.toASCIIString();
-		return uriStr.startsWith(modelRavenURI.toASCIIString())
-				&& uriStr.endsWith(className);
-	}
-
-	/**
-	 * Default values - ignored for now
-	 */
-	public static final class Defaults {
-		public static final int MAX_RETRIES = 0;
-		public static final int INITIAL_DELAY = 1000;
-		public static final int MAX_DELAY = 5000;
-		public static final double BACKOFF_FACTOR = 1.0;
-	}
-	
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return scufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		RetryConfig config = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", RetryConfig.class);
-
-		Configuration c = new Configuration();
-		c.setType(scufl2Uri.resolve("#Config"));
-
-		ObjectNode json = (ObjectNode) c.getJson();
-
-		BigInteger maxRetries = config.getMaxRetries();
-		if (maxRetries != null
-				&& (maxRetries.longValue() != MAX_RETRIES || maxRetries
-						.longValue() < 0))
-			json.put("maxRetries", maxRetries.longValue());
-
-		if (maxRetries != null && maxRetries.longValue() != 0) {
-			// Neither of these makes sense if retries are disabled
-
-			if (config.getInitialDelay() != INITIAL_DELAY
-					&& config.getInitialDelay() > -1)
-				json.put("initialDelay", config.getInitialDelay());
-
-			if (config.getMaxDelay() != MAX_DELAY && config.getMaxDelay() > -1)
-				json.put("maxDelay", config.getMaxDelay());
-
-			double delta = Math.abs(config.getBackoffFactor() - BACKOFF_FACTOR);
-			if (config.getBackoffFactor() > 0 && delta > 1e-14)
-				json.put("backoffFactor", config.getBackoffFactor());
-		}
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java
deleted file mode 100644
index 7f5aa8c..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java
+++ /dev/null
@@ -1,522 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.t23activities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Entry;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ExternalToolConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Group;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ScriptInputStatic;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ScriptInputUser;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ScriptOutput;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.UsecaseConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.UsecaseDescription;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ExternalToolActivityParser extends AbstractActivityParser {
-	@SuppressWarnings("unused")
-	private static final String STDOUT = "STDOUT";
-	@SuppressWarnings("unused")
-	private static final String STDIN = "STDIN";
-	@SuppressWarnings("unused")
-	private static final String STDERR = "STDERR";
-	private static final String EXTERNALTOOLACTIVITY_XSD = "/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd";
-	public static final URI CNT = URI.create("http://www.w3.org/2011/content#");
-	public static final URI CHARSET = URI
-			.create("http://www.iana.org/assignments/character-sets#");
-	// or http://www.iana.org/assignments/charset-reg/ ?
-	private static final URI usecaseActivityRavenUri = ravenURI
-			.resolve("net.sf.taverna.t2.activities/usecase-activity/");
-	private static final String usecaseActivityClass = "net.sf.taverna.t2.activities.usecase.UseCaseActivity";
-	private static final URI externalToolRavenUri = ravenURI
-			.resolve("net.sf.taverna.t2.activities/external-tool-activity/");
-	private static final String externalToolClass = "net.sf.taverna.t2.activities.externaltool.ExternalToolActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/tool");
-	public static final URI DC = URI.create("http://purl.org/dc/elements/1.1/");
-
-	@SuppressWarnings("unused")
-	private Map<URI, URI> mappedMechanismTypes = makeMappedMechanismTypes();
-
-	private Map<URI, URI> makeMappedMechanismTypes() {
-		Map<URI, URI> map = new HashMap<>();
-		map.put(ACTIVITY_URI.resolve("#789663B8-DA91-428A-9F7D-B3F3DA185FD4"),
-				ACTIVITY_URI.resolve("#local"));
-		map.put(ACTIVITY_URI.resolve("#D0A4CDEB-DD10-4A8E-A49C-8871003083D8"),
-				ACTIVITY_URI.resolve("#ssh"));
-		return map;
-	}
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		if (activityUriStr.startsWith(usecaseActivityRavenUri.toASCIIString())
-				&& activityUriStr.endsWith(usecaseActivityClass))
-			return true;
-		return activityUriStr.startsWith(externalToolRavenUri.toASCIIString())
-				&& activityUriStr.endsWith(externalToolClass);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL externalToolXsd = ExternalToolActivityParser.class
-				.getResource(EXTERNALTOOLACTIVITY_XSD);
-		try {
-			return Arrays.asList(externalToolXsd.toURI());
-		} catch (Exception e) {
-			throw new IllegalStateException("Can't find external tool schema "
-					+ externalToolXsd);
-		}
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		ExternalToolConfig externalToolConfig = null;
-		UsecaseConfig usecaseConfig = null;
-
-		try {
-			externalToolConfig = unmarshallConfig(t2FlowParser, configBean,
-					"xstream", ExternalToolConfig.class);
-		} catch (ReaderException ex) {
-			usecaseConfig = unmarshallConfig(t2FlowParser, configBean,
-					"xstream", UsecaseConfig.class);
-		}
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-		parserState.setCurrentConfiguration(configuration);
-		try {
-			ObjectNode json = configuration.getJsonAsObjectNode();
-
-			configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-			if (usecaseConfig != null) {
-				if (usecaseConfig.getRepositoryUrl() != null)
-					json.put("repositoryUrl", usecaseConfig.getRepositoryUrl());
-				json.put("toolId", usecaseConfig.getUsecaseid());
-			} else if (externalToolConfig != null) {
-				if (externalToolConfig.getRepositoryUrl() != null)
-					json.put("repositoryUrl",
-							externalToolConfig.getRepositoryUrl());
-				json.put("toolId", externalToolConfig.getExternaltoolid());
-				if (externalToolConfig.isEdited())
-					json.put("edited", externalToolConfig.isEdited());
-			}
-
-			if (externalToolConfig != null) {
-				Group group = externalToolConfig.getGroup();
-				if (group != null) {
-					ObjectNode invocationGroup = json.objectNode();
-					json.put("invocationGroup", invocationGroup);
-					invocationGroup.put("name", group.getInvocationGroupName());
-					invocationGroup.put("mechanismType",
-							group.getMechanismType());
-					invocationGroup.put("mechanismName",
-							group.getMechanismName());
-					invocationGroup
-							.put("mechanismXML", group.getMechanismXML());
-				} else {
-					json.put("mechanismType",
-							externalToolConfig.getMechanismType());
-					json.put("mechanismName",
-							externalToolConfig.getMechanismName());
-					json.put("mechanismXML",
-							externalToolConfig.getMechanismXML());
-				}
-//				URI mechanismTypeURI = ACTIVITY_URI.resolve("#"
-//						+ uriTools.validFilename(mechanismType));
-//				if (mappedMechanismTypes.containsKey(mechanismTypeURI)) {
-//					mechanismTypeURI = mappedMechanismTypes.get(mechanismTypeURI);
-//				}
-//				invocation.addPropertyReference(ACTIVITY_URI.resolve("#mechanismType"),
-//						mechanismTypeURI);
-//
-//				invocation.addPropertyAsString(ACTIVITY_URI.resolve("#mechanismName"),
-//						mechanismName);
-//				invocation.addProperty(ACTIVITY_URI.resolve("#mechanismXML"), new PropertyLiteral(
-//						mechanismXML, PropertyLiteral.XML_LITERAL));
-                
-                // TODO: Extract SSH hostname etc. from mechanismXML
-//				parseMechanismXML(json);
-
-				ObjectNode toolDescription = json.objectNode();
-				parseToolDescription(toolDescription,
-						externalToolConfig.getUseCaseDescription(), parserState);
-				json.put("toolDescription", toolDescription);
-
-//				configResource.addProperty(ACTIVITY_URI.resolve("#invocationGroup"),
-//						parseGroup(externalToolConfig.getGroup()));
-
-			}
-
-			return configuration;
-		} finally {
-			parserState.setCurrentConfiguration(null);
-		}
-	}
-
-//	private void parseMechanismXML(ObjectNode invocation) {
-//	    type = invocatoin.
-//	    
-//		URI type = invocation.getPropertyAsResourceURI(ACTIVITY_URI.resolve("#mechanismType"));
-//		if (type.equals(ACTIVITY_URI.resolve("#local"))) {
-//			Element xml = invocation.getPropertyAsLiteral(ACTIVITY_URI.resolve("#mechanismXML"))
-//					.getLiteralValueAsElement();
-//
-//			String directory = elementByTag(xml, "directory");
-//			String linkCommand = elementByTag(xml, "linkCommand");
-//			String shellPrefix = elementByTag(xml, "shellPrefix");
-//			PropertyResource node = new PropertyResource();
-//			node.setTypeURI(ACTIVITY_URI.resolve("#LocalNode"));
-//			if (directory != null) {
-//				node.addPropertyAsString(ACTIVITY_URI.resolve("#directory"), directory);
-//			}
-//			if (linkCommand != null) {
-//				node.addPropertyAsString(ACTIVITY_URI.resolve("#linkCommand"), linkCommand);
-//			}
-//			if (shellPrefix != null) {
-//				node.addPropertyAsString(ACTIVITY_URI.resolve("#shellPrefix"), shellPrefix);
-//			}
-//			if (!node.getProperties().isEmpty()) {
-//				// Only add if it is customized
-//				invocation.addProperty(ACTIVITY_URI.resolve("#node"), node);
-//			}
-//
-//			invocation.getProperties().remove(ACTIVITY_URI.resolve("#mechanismXML"));
-//		} else if (type.equals(ACTIVITY_URI.resolve("#ssh"))) {
-//			Element xml = invocation.getPropertyAsLiteral(ACTIVITY_URI.resolve("#mechanismXML"))
-//					.getLiteralValueAsElement();
-//			for (Element sshNode : elementIter(xml.getElementsByTagName("sshNode"))) {
-//				String hostname = elementByTag(sshNode, "host");
-//				String port = elementByTag(sshNode, "port");
-//				String directory = elementByTag(sshNode, "directory");
-//				String linkCommand = elementByTag(sshNode, "linkCommand");
-//				String copyCommand = elementByTag(sshNode, "copyCommand");
-//
-//				PropertyResource node = invocation.addPropertyAsNewResource(
-//						ACTIVITY_URI.resolve("#node"), ACTIVITY_URI.resolve("#SSHNode"));
-//				node.addPropertyAsString(ACTIVITY_URI.resolve("#hostname"), hostname);
-//				if (port != null) {
-//					PropertyLiteral portLit = new PropertyLiteral(port, PropertyLiteral.XSD_INT);
-//					node.addProperty(ACTIVITY_URI.resolve("#port"), portLit);
-//				}
-//				if (directory != null) {
-//					node.addPropertyAsString(ACTIVITY_URI.resolve("#directory"), directory);
-//				}
-//				if (linkCommand != null) {
-//					node.addPropertyAsString(ACTIVITY_URI.resolve("#linkCommand"), linkCommand);
-//				}
-//				if (copyCommand != null) {
-//					node.addPropertyAsString(ACTIVITY_URI.resolve("#copyCommand"), copyCommand);
-//				}
-//			}
-//			invocation.clearProperties(ACTIVITY_URI.resolve("#mechanismXML"));
-//		} else {
-//
-//		}
-//	}
-
-	@SuppressWarnings("unused")
-	private Iterable<Element> elementIter(final NodeList nodeList) {
-		return new Iterable<Element>() {
-			@Override
-			public Iterator<Element> iterator() {
-				return new Iterator<Element>() {
-					int position = 0;
-
-					@Override
-					public boolean hasNext() {
-						return nodeList.getLength() > position;
-					}
-
-					@Override
-					public Element next() {
-						return (Element) nodeList.item(position++);
-					}
-
-					@Override
-					public void remove() {
-						throw new UnsupportedOperationException();
-					}
-				};
-			}
-		};
-	}
-
-	@SuppressWarnings("unused")
-	private String elementByTag(Element el, String tagName) {
-		NodeList nodeList = el.getElementsByTagName(tagName);
-		if (nodeList.getLength() == 0)
-			return null;
-		return nodeList.item(0).getTextContent();
-	}
-
-	protected ObjectNode parseToolDescription(ObjectNode json, UsecaseDescription toolDesc,
-			ParserState parserState) {
-	    	    ObjectNode description = json.objectNode();
-	    description.put("dc:title", toolDesc.getUsecaseid());
-		if (toolDesc.getGroup() != null)
-		    description.put("group", toolDesc.getGroup());
-		if (toolDesc.getDescription() != null)
-		      description.put("dc:description", toolDesc.getDescription());
-
-		description.put("command", toolDesc.getCommand());
-
-		description.put("preparingTimeoutInSeconds",
-				toolDesc.getPreparingTimeoutInSeconds());
-		description.put("executionTimeoutInSeconds",
-				toolDesc.getExecutionTimeoutInSeconds());
-
-		// Ignoring tags, REs, queue__preferred, queue__deny
-
-        ArrayNode staticInputs = json.arrayNode();
-        // static inputs
-		for (ScriptInputStatic inputStatic : toolDesc.getStaticInputs()
-				.getDeUniLuebeckInbKnowarcUsecasesScriptInputStatic()) {
-		    ObjectNode input = json.objectNode();
-		    staticInputs.add(input);
-		    input.put("tag", inputStatic.getTag());
-		    input.put("file", inputStatic.isFile());
-            input.put("tempFile", inputStatic.isTempFile());
-            input.put("binary", inputStatic.isBinary());
-            input.put("charsetName", inputStatic.getCharsetName());
-            input.put("forceCopy", inputStatic.isForceCopy());
-			if (inputStatic.getUrl() != null)
-	            input.put("url", inputStatic.getUrl());
-			if (inputStatic.getContent() != null)
-                input.put("content", inputStatic.getContent().getValue());
-		}
-		if (staticInputs.size() > 0)
-		    json.put("staticInputs", staticInputs);
-        
-//		for (ScriptInputStatic inputStatic : toolDesc.getStaticInputs()
-//				.getDeUniLuebeckInbKnowarcUsecasesScriptInputStatic()) {
-//			String portName = inputStatic.getTag();
-//			PropertyResource staticInput = generatePortDefinition(portName, inputStatic.getTag(),
-//					inputStatic.getCharsetName(), true, false, inputStatic.isBinary(),
-//					inputStatic.isFile(), inputStatic.isTempFile(), inputStatic.isForceCopy(),
-//					false, true, parserState);
-//
-//			configResource.addProperty(ACTIVITY_URI.resolve("#staticInput"), staticInput);
-//			if (inputStatic.getUrl() != null) {
-//				staticInput.addPropertyReference(ACTIVITY_URI.resolve("#source"),
-//						URI.create(inputStatic.getUrl()));
-//			} else {
-//				PropertyResource content = staticInput.addPropertyAsNewResource(
-//						ACTIVITY_URI.resolve("#source"), CNT.resolve("#ContentAsText"));
-//				content.addPropertyAsString(CNT.resolve("#chars"), inputStatic.getContent()
-//						.getValue());
-//				// TODO: Support bytes?
-//			}
-//		}
-
-		
-		
-		// Inputs
-		ArrayNode inputs = json.arrayNode();
-        for (Entry entry : toolDesc.getInputs().getEntry()) {
-            ObjectNode mapping = json.objectNode();
-            mapping.put("port", entry.getString());
-            ObjectNode input = json.objectNode();
-            mapping.put("input", input);
-
-            ScriptInputUser scriptInput = entry
-                    .getDeUniLuebeckInbKnowarcUsecasesScriptInputUser();
-            input.put("tag", scriptInput.getTag());
-            input.put("file", scriptInput.isFile());
-            input.put("tempFile", scriptInput.isTempFile());
-            input.put("binary", scriptInput.isBinary());
-
-            input.put("charsetName", scriptInput.getCharsetName());
-            input.put("forceCopy", scriptInput.isForceCopy());
-            input.put("list", scriptInput.isList());
-            input.put("concatenate", scriptInput.isConcatenate());
-        }
-		if (inputs.size() > 0)
-		    json.put("inputs", inputs);
-//		for (Entry entry : toolDesc.getInputs().getEntry()) {
-//			String portName = entry.getString();
-//			ScriptInputUser scriptInput = entry.getDeUniLuebeckInbKnowarcUsecasesScriptInputUser();
-//			PropertyResource portDef = generatePortDefinition(portName, scriptInput.getTag(),
-//					scriptInput.getCharsetName(), true, scriptInput.isList(),
-//					scriptInput.isBinary(), scriptInput.isFile(), scriptInput.isTempFile(),
-//					scriptInput.isForceCopy(), scriptInput.isConcatenate(), false, parserState);
-//			configResource.addProperty(Scufl2Tools.PORT_DEFINITION.resolve("#inputPortDefinition"),
-//					portDef);
-//		}
-		
-		// Outputs		
-		ArrayNode outputs = json.arrayNode();
-		for (Entry entry : toolDesc.getOutputs().getEntry()) {
-			ObjectNode mapping = json.objectNode();
-			mapping.put("port", entry.getString());
-			ObjectNode output = json.objectNode();
-			mapping.put("output", output);
-
-			ScriptOutput scriptOutput = entry
-					.getDeUniLuebeckInbKnowarcUsecasesScriptOutput();
-			output.put("path", scriptOutput.getPath());
-			output.put("binary", scriptOutput.isBinary());
-		}
-		if (outputs.size() > 0)
-			json.put("outputs", outputs);
-//		for (Entry entry : toolDesc.getOutputs().getEntry()) {
-//			String portName = entry.getString();
-//			ScriptOutput scriptOutput = entry.getDeUniLuebeckInbKnowarcUsecasesScriptOutput();
-//			PropertyResource portDef = generatePortDefinition(portName, scriptOutput.getPath(),
-//					null, false, false, scriptOutput.isBinary(), true, false, false, false, false,
-//					parserState);
-//			configResource.addProperty(
-//					Scufl2Tools.PORT_DEFINITION.resolve("#outputPortDefinition"), portDef);
-        // }
-
-        json.put("includeStdIn", toolDesc.isIncludeStdIn());
-        json.put("includeStdOut", toolDesc.isIncludeStdOut());
-        json.put("includeStdErr", toolDesc.isIncludeStdErr());
-
-//		if (toolDesc.isIncludeStdIn()) {
-//			InputActivityPort stdin = new InputActivityPort(parserState.getCurrentActivity(), STDIN);
-//			stdin.setDepth(0);
-//		}
-//		if (toolDesc.isIncludeStdOut()) {
-//			OutputActivityPort stdout = new OutputActivityPort(parserState.getCurrentActivity(),
-//					STDOUT);
-//			stdout.setDepth(0);
-//			stdout.setGranularDepth(0);
-//		}
-//		if (toolDesc.isIncludeStdErr()) {
-//			OutputActivityPort stderr = new OutputActivityPort(parserState.getCurrentActivity(),
-//					STDERR);
-//			stderr.setDepth(0);
-//			stderr.setGranularDepth(0);
-//		}
-
-		return description;
-	}
-//
-//	private PropertyResource generatePortDefinition(String portName, String tag, String charSet,
-//			boolean isInput, boolean isList, boolean isBinary, boolean isFile, boolean isTempFile,
-//			boolean isForceCopy, boolean isConcatenate, boolean isStatic, ParserState parserState) {
-//
-//		ActivityPort actPort;
-//		if (isStatic) {
-//			resource.setTypeURI(ACTIVITY_URI.resolve("#StaticInput"));
-//		} else {
-//
-//			if (isInput) {
-//				resource.setTypeURI(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"));
-//				actPort = new InputActivityPort(parserState.getCurrentActivity(), portName);
-//				URI portUri = uriTools.relativeUriForBean(actPort,
-//						parserState.getCurrentConfiguration());
-//				resource.addPropertyReference(
-//						Scufl2Tools.PORT_DEFINITION.resolve("#definesInputPort"), portUri);
-//			} else {
-//				resource.setTypeURI(Scufl2Tools.PORT_DEFINITION.resolve("#OutputPortDefinition"));
-//				actPort = new OutputActivityPort(parserState.getCurrentActivity(), portName);
-//				URI portUri = uriTools.relativeUriForBean(actPort,
-//						parserState.getCurrentConfiguration());
-//				resource.addPropertyReference(
-//						Scufl2Tools.PORT_DEFINITION.resolve("#definesOutputPort"), portUri);
-//			}
-//
-//			if (isList) {
-//				actPort.setDepth(1);
-//			} else {
-//				actPort.setDepth(0);
-//			}
-//		}
-//
-//		URI dataType = PropertyLiteral.XSD_STRING;
-//		if (isFile || isTempFile) {
-//			if (isForceCopy) {
-//				resource.addProperty(ACTIVITY_URI.resolve("#forceCopy"), new PropertyLiteral(true));
-//			}
-//
-//			if (isBinary) {
-//				// FIXME: Is there a good URI for raw bytes? xsd:byte is just
-//				// one byte,
-//				// xsd:hexBinary and xsd:base64Binary both mandate an encoding
-//				dataType = Scufl2Tools.PORT_DEFINITION.resolve("#binary");
-//			} else if (charSet != null) {
-//				resource.addPropertyReference(ACTIVITY_URI.resolve("#charset"),
-//						CHARSET.resolve("#" + uriTools.validFilename(charSet)));
-//				// TODO: Check with
-//				// http://www.w3.org/International/www-international.html if
-//				// this URI scheme really make sense
-//			} else {
-//				resource.addPropertyReference(ACTIVITY_URI.resolve("#charset"),
-//						CHARSET.resolve("#UTF-8"));
-//			}
-//		}
-//		resource.addPropertyReference(Scufl2Tools.PORT_DEFINITION.resolve("#dataType"), dataType);
-//
-//		resource.addPropertyAsString(ACTIVITY_URI.resolve("#substitutes"), tag);
-//		URI subsitutionType;
-//		if (isFile) {
-//			subsitutionType = ACTIVITY_URI.resolve("#File");
-//		} else if (isTempFile) {
-//			subsitutionType = ACTIVITY_URI.resolve("#TempFile");
-//		} else {
-//			subsitutionType = ACTIVITY_URI.resolve("#Parameter");
-//		}
-//		resource.addPropertyReference(ACTIVITY_URI.resolve("#substitutionType"), subsitutionType);
-//
-//		if (isList && isConcatenate) {
-//			resource.addProperty(ACTIVITY_URI.resolve("#concatenate"), new PropertyLiteral(true));
-//		}
-//
-//		return resource;
-//	}
-
-//	protected PropertyObject parseGroup(Group group) {
-//		PropertyResource propertyResource = new PropertyResource();
-//		propertyResource.setTypeURI(ACTIVITY_URI.resolve("#InvocationGroup"));
-//		return propertyResource;
-//	}
-}


[08/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/defaultActivitiesTaverna2.2.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/defaultActivitiesTaverna2.2.t2flow b/taverna-scufl2-t2flow/src/test/resources/defaultActivitiesTaverna2.2.t2flow
deleted file mode 100644
index 8d8632a..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/defaultActivitiesTaverna2.2.t2flow
+++ /dev/null
@@ -1,890 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="dc227a10-e8f6-44b0-88c5-c946a15ff669" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>Beanshell</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <script>the
-script;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies>
-    <string>a.jar</string>
-    <string>b.jar</string>
-  </localDependencies>
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>in1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>in2</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out1</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>out2</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Nested_workflow</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>dataflow-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</class><inputMap /><outputMap /><configBean encoding="dataflow"><dataflow ref="a838d861-e4b8-4e7f-839c-e0fc748749b9" /></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>
 net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Rshell</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>rshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.rshell.RshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean xmlns="">
-  <rVersion>false</rVersion>
-  <script>rshell
-script</script>
-  <connectionSettings>
-    <host>localhost</host>
-    <port>6311</port>
-    <username>user</username>
-    <password>passwd</password>
-    <keepSessionAlive>true</keepSessionAlive>
-    <newRVersion>false</newRVersion>
-  </connectionSettings>
-  <inputSymanticTypes>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>in1</name>
-      <symanticType>STRING</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>in2</name>
-      <symanticType>DOUBLE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>in3</name>
-      <symanticType>INTEGER_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-  </inputSymanticTypes>
-  <outputSymanticTypes>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out1</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out2</name>
-      <symanticType>PNG_FILE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out3</name>
-      <symanticType>STRING_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out4</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[2]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-  </outputSymanticTypes>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>in1</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>in2</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>in3</name>
-      <depth>1</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out1</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out2</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>out3</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out4</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>SpreadsheetImport</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>spreadsheet-import-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration xmlns="">
-  <columnRange>
-    <start>0</start>
-    <end>2</end>
-    <excludes />
-  </columnRange>
-  <rowRange>
-    <start>1</start>
-    <end>-1</end>
-    <excludes />
-  </rowRange>
-  <emptyCellValue>empty</emptyCellValue>
-  <columnNames>
-    <entry>
-      <string>A</string>
-      <string>fish</string>
-    </entry>
-    <entry>
-      <string>B</string>
-      <string>soup</string>
-    </entry>
-  </columnNames>
-  <allRows>true</allRows>
-  <excludeFirstRow>true</excludeFirstRow>
-  <ignoreBlankRows>true</ignoreBlankRows>
-  <emptyCellPolicy>USER_DEFINED</emptyCellPolicy>
-  <outputFormat>PORT_PER_COLUMN</outputFormat>
-  <csvDelimiter>,</csvDelimiter>
-</net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.2&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;script&gt;sdsdsd&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies&gt;&#xD;
-    &lt;string&gt;a.jar&lt;/string&gt;&#xD;
-  &lt;/localDependencies&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;handledReferenceSchemes /&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-      &lt;name&gt;in1&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;mimeTypes&gt;&#xD;
-        &lt;string&gt;text/plain&lt;/string&gt;&#xD;
-      &lt;/mimeTypes&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-      &lt;name&gt;out1&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;mimeTypes /&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="comparison" value="custom" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>String_constant</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>string</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>14</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.2&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;script&gt;loop = "" + ! value.equals("ssdsd"); &#xD;
-if ("true".matches(loop)) {&#xD;
-   Thread.sleep(500);&#xD;
-}&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies /&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-      &lt;name&gt;value&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-      &lt;name&gt;loop&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="compareValue" value="ssdsd" />
-    <property name="delay" value="0.5" />
-    <property name="comparePort" value="value" />
-    <property name="isFeedBack" value="true" />
-    <property name="comparison" value="EqualTo" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>150</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>5</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>localWorker_bytearray</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EncodeBase64</localworkerName>
-  <script>import org.apache.commons.codec.binary.Base64;
-
-base64 = new String(Base64.encodeBase64(bytes));</script>
-  <dependencies class="java.util.Collections$SingletonList">
-    <element class="string">commons-codec:commons-codec:1.3</element>
-  </dependencies>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>1.3</version>
-      <hashCode>1635363350</hashCode>
-      <string>commons-codec:commons-codec:1.3</string>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-  </artifactDependencies>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>bytes</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'application/octet-stream'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>base64</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>localWorker</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.FlattenList</localworkerName>
-  <script>flatten(inputs, outputs, depth) {
-	for (i = inputs.iterator(); i.hasNext();) {
-	    element = i.next();
-		if (element instanceof Collection &amp;&amp; depth &gt; 0) {
-			flatten(element, outputs, depth - 1);
-		} else {
-			outputs.add(element);
-		}
-	}
-}
-
-outputlist = new ArrayList();
-
-flatten(inputlist, outputlist, 1);</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>2</depth>
-      <mimeTypes>
-        <string>l(l(''))</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>mobyObject</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>biomoby-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean xmlns="">
-  <mobyEndpoint>http://moby.ucalgary.ca/moby/MOBY-Central.pl</mobyEndpoint>
-  <serviceName>AlleleAssociation</serviceName>
-  <authorityName>cegen.upf.es</authorityName>
-</net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>mobyService</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>biomoby-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.biomoby.BiomobyActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean xmlns="">
-  <mobyEndpoint>http://moby.ucalgary.ca/moby/MOBY-Central.pl</mobyEndpoint>
-  <serviceName>getTmhmmPrediction</serviceName>
-  <authorityName>mips.gsf.de</authorityName>
-  <category />
-  <serviceType />
-  <secondaries />
-</net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>soaplab</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>soaplab-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.soaplab.SoaplabActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean xmlns="">
-  <endpoint>http://www.ebi.ac.uk/soaplab/services/feature_tables.coderet</endpoint>
-  <pollingInterval>4</pollingInterval>
-  <pollingBackoff>1.1</pollingBackoff>
-  <pollingIntervalMax>5</pollingIntervalMax>
-</net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>wsdl_document</name><inputPorts /><outputPorts><port><name>queryStatusOutput</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap /><outputMap><map from="queryStatusOutput" to="queryStatusOutput" /></outputMap><configBean encoding="xstream
 "><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://webservices.genouest.org/typedservices/InterProScan.wsdl</wsdl>
-  <operation>queryStatus</operation>
-  <securityProfile>HTTPBasicAuthNPlainTextPassword</securityProfile>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>xmlSplitter</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitte
 r.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="queryStatusOutput" name="queryStatusOutput" qname="{http://nbcr.sdsc.edu/opal/types}queryStatusOutput"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="int" name="code" qname="StatusOutputType&amp;gt;code" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="message" qname="StatusOutputType&amp;gt;message" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="anyURI" name="baseURL" qname="StatusOutputType&amp;gt;baseURL" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>code</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>message</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>baseURL</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>wsdl_rpc</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://soap.genome.jp/KEGG.wsdl</wsdl>
-  <operation>get_compounds_by_enzyme</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>wsdl_secured</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://soap.genome.jp/KEGG.wsdl</wsdl>
-  <operation>get_genes_by_organism</operation>
-  <securityProfile>WSSecurityTimestampUsernameTokenPlainTextPassword</securityProfile>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>biomart</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>biomart-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.biomart.BiomartActivity</class><inputMap /><outputMap /><configBean encoding="jdomxml"><MartQuery xmlns=""><MartService location="http://www.biomart.org/biomart/martservice" /><MartDataset displayName="Drosophila melanogaster features (BDGP5.13)" nam
 e="dmelanogaster_feature_set" type="TableSet" initialBatchSize="200" maximumBatchSize="50000" visible="false" interface="default" modified="2010-06-07 11:08:23"><MartURLLocation database="functional_genomics_mart_58" default="0" displayName="ENSEMBL FUNCTIONAL GENOMICS 58 (SANGER UK)" host="www.biomart.org" includeDatasets="" martUser="" name="functional_genomics" path="/biomart/martservice" port="80" serverVirtualSchema="default" virtualSchema="default" visible="1" redirect="0" /></MartDataset><Query virtualSchemaName="default" count="0" uniqueRows="0" softwareVersion="0.6" requestId="taverna"><Dataset name="dmelanogaster_feature_set"><Attribute name="cell_type_display_label_1048" /><Attribute name="name_1011" /><Attribute name="display_label_1049" /><Filter name="chromosome_name" value="2L" /><Filter name="end" value="10000000" /><Filter name="start" value="1" /></Dataset></Query></MartQuery></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><
 group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Send_an_Email</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.SendEmail</localworkerName>
-  <script>import javax.mail.Message;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.InternetAddress;
-
-if (subject == void) {
-	subject = "No subject";
-}
-if (body == void) {
-	throw new Exception("No body specified for message");
-}
-
-Properties mailProps = System.getProperties();
-if (smtpserver != void) {
-	mailProps.put("mail.smtp.host", smtpserver);
-}
-
-Session session = Session.getDefaultInstance(mailProps, null);
-MimeMessage message = new MimeMessage(session);
-message.setFrom(new InternetAddress(from));
-message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
-message.setSubject(subject);
-message.setText(body);
-Transport.send(message);
-</script>
-  <dependencies>
-    <string>javax.mail:mail:1.4</string>
-    <string>javax.activation:activation:1.1</string>
-  </dependencies>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>javax.mail</groupId>
-      <artifactId>mail</artifactId>
-      <version>1.4</version>
-      <hashCode>789035249</hashCode>
-      <string>javax.mail:mail:1.4</string>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>javax.activation</groupId>
-      <artifactId>activation</artifactId>
-      <version>1.1</version>
-      <hashCode>518094512</hashCode>
-      <string>javax.activation:activation:1.1</string>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-  </artifactDependencies>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>to</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>from</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>subject</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>body</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>smtpserver</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs />
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>TavernaResearchObject</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>apiconsumer-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean xmlns="">
-  <apiConsumerName>No name</apiConsumerName>
-  <apiConsumerDescription>No description</apiConsumerDescription>
-  <description />
-  <className>org.apache.taverna.scufl2.api.container.TavernaResearchObject</className>
-  <methodName>TavernaResearchObject</methodName>
-  <parameterNames />
-  <parameterDimensions />
-  <parameterTypes />
-  <returnType>org.apache.taverna.scufl2.api.container.TavernaResearchObject</returnType>
-  <returnDimension>0</returnDimension>
-  <isMethodStatic>false</isMethodStatic>
-  <isMethodConstructor>true</isMethodConstructor>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs />
-  <outputs />
-</net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>setWorkflows</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>apiconsumer-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean xmlns="">
-  <apiConsumerName>No name</apiConsumerName>
-  <apiConsumerDescription>No description</apiConsumerDescription>
-  <description />
-  <className>org.apache.taverna.scufl2.api.container.TavernaResearchObject</className>
-  <methodName>setWorkflows</methodName>
-  <parameterNames>
-    <string>workflows</string>
-  </parameterNames>
-  <parameterDimensions>
-    <int>0</int>
-  </parameterDimensions>
-  <parameterTypes>
-    <string>java.util.Set</string>
-  </parameterTypes>
-  <returnType>void</returnType>
-  <returnDimension>0</returnDimension>
-  <isMethodStatic>false</isMethodStatic>
-  <isMethodConstructor>false</isMethodConstructor>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies>
-    <string>a.jar</string>
-  </localDependencies>
-  <artifactDependencies />
-  <inputs />
-  <outputs />
-</net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>run</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="parameters" to="parameters" /></inputMap><outputMap>
 <map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.ebi.ac.uk/Tools/services/soap/wublast?wsdl</wsdl>
-  <operation>run</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>run_input</name><inputPorts /><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap /><outputMap><map from="output" to="outp
 ut" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="run" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}run"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="email" qname="&amp;gt;run&amp;gt;email" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="title" qname="&amp;gt;run&amp;gt;title" /&gt;&lt;s:complextype optional="false" unbounded="false" typename="InputParameters" name="parameters" qname="&amp;gt;run&amp;gt;parameters"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="program" qname="InputParameters&amp;gt;program" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="exp" qname="InputParameters&amp;gt;exp" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="int" name="alignments" qname="InputParameters&amp;gt
 ;alignments" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="int" name="scores" qname="InputParameters&amp;gt;scores" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="int" name="align" qname="InputParameters&amp;gt;align" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="matrix" qname="InputParameters&amp;gt;matrix" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="stats" qname="InputParameters&amp;gt;stats" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sensitivity" qname="InputParameters&amp;gt;sensitivity" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="topcombon" qname="InputParameters&amp;gt;topcombon" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="boolean" name="viewfilter" qname="InputParameters&amp;gt;viewfilter" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="filter" qname="InputPar
 ameters&amp;gt;filter" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="strand" qname="InputParameters&amp;gt;strand" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sort" qname="InputParameters&amp;gt;sort" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="stype" qname="InputParameters&amp;gt;stype" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sequence" qname="InputParameters&amp;gt;sequence" /&gt;&lt;s:arraytype optional="false" unbounded="false" wrapped="true" typename="ArrayOfString" name="database" qname="InputParameters&amp;gt;database"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>email</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>title</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>parameters</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>run_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter
 .XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="runResponse" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}runResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="jobId" qname="&amp;gt;runResponse&amp;gt;jobId" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>jobId</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>xmlSplitter</processor><port>input</port></sink><source type="processor"><processor>wsdl_document</processor><port>queryStatusOutput</port></source></datalink><datalink><sink type="processor"><processor>run</processor><port>parameters</port></sink><source type="processor"><processor>run_input</processor><port>output</port></source></datalink><datalink><sink typ
 e="processor"><processor>run_output</processor><port>input</port></sink><source type="processor"><processor>run</pr

<TRUNCATED>

[38/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/prov-o.rdf
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/prov-o.rdf b/taverna-robundle/src/main/resources/ontologies/prov-o.rdf
deleted file mode 100644
index 8af1179..0000000
--- a/taverna-robundle/src/main/resources/ontologies/prov-o.rdf
+++ /dev/null
@@ -1,1787 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://www.w3.org/ns/prov#"
-     xml:base="http://www.w3.org/ns/prov"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-    <owl:Ontology rdf:about="http://www.w3.org/ns/prov-o#">
-        <rdfs:label xml:lang="en">W3C PROVenance Interchange Ontology (PROV-O)</rdfs:label>
-        <owl:versionInfo xml:lang="en">Recommendation version 2013-04-30</owl:versionInfo>
-        <rdfs:comment xml:lang="en">This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page). 
-
-If you wish to make comments regarding this document, please send them to public-prov-comments@w3.org (subscribe public-prov-comments-request@w3.org, archives http://lists.w3.org/Archives/Public/public-prov-comments/). All feedback is welcome.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-o/"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov"/>
-        <specializationOf rdf:resource="http://www.w3.org/ns/prov-o"/>
-        <wasRevisionOf rdf:resource="http://www.w3.org/ns/prov-o-20120312"/>
-        <owl:versionIRI rdf:resource="http://www.w3.org/ns/prov-o-20130430"/>
-    </owl:Ontology>
-    
-    <owl:Ontology rdf:about="http://www.w3.org/ns/prov#"/>
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Annotation properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#unqualifiedForm">
-        <rdfs:comment xml:lang="en">Classes and properties used to qualify relationships are annotated with prov:unqualifiedForm to indicate the property used to assert an unqualified provenance relation.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#wasRevisionOf">
-        <rdfs:label>wasRevisionOf</rdfs:label>
-        <component>derivations</component>
-        <rdfs:comment xml:lang="en">A revision is a derivation that revises an entity into a revised version.</rdfs:comment>
-        <inverse>hadRevision</inverse>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedRevision"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#aq">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#sharesDefinitionWith">
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#definition">
-        <rdfs:comment xml:lang="en">A definition quoted from PROV-DM or PROV-CONSTRAINTS that describes the concept expressed with this OWL term.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorialNote">
-        <rdfs:comment xml:lang="en">A note by the OWL development team about how this term expresses the PROV-DM concept, or how it should be used in context of semantic web or linked data.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;label">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#inverse">
-        <rdfs:comment xml:lang="en">PROV-O does not define all property inverses. The directionalities defined in PROV-O should be given preference over those not defined. However, if users wish to name the inverse of a PROV-O property, the local name given by prov:inverse should be used.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/prov-o/#names-of-inverse-properties"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;comment">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#constraints">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;seeAlso">
-        <rdfs:comment xml:lang="en"></rdfs:comment>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&owl;versionInfo"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#specializationOf">
-        <rdfs:label>specializationOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-specialization</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-specialization</n>
-        <component>alternate</component>
-        <inverse>generalizationOf</inverse>
-        <category>expanded</category>
-        <definition xml:lang="en">An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#dm">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-DM document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#category">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into three categories, including &#39;starting-point&#39;, &#39;qualifed&#39;, and &#39;extended&#39;. This classification is used by the prov-o html document to gently introduce prov-o terms to its users. </rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#order">
-        <rdfs:comment xml:lang="en">The position that this OWL term should be listed within documentation. The scope of the documentation (e.g., among all terms, among terms within a prov:category, among properties applying to a particular class, etc.) is unspecified.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="&rdfs;isDefinedBy"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#editorsDefinition">
-        <rdfs:comment xml:lang="en">When the prov-o term does not have a definition drawn from prov-dm, and the prov-o editor provides one.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#definition"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#component">
-        <rdfs:comment xml:lang="en">Classify prov-o terms into six components according to prov-dm, including &#39;agents-responsibility&#39;, &#39;alternate&#39;, &#39;annotations&#39;, &#39;collections&#39;, &#39;derivations&#39;, and &#39;entities-activities&#39;. This classification is used so that readers of prov-o specification can find its correspondence with the prov-dm specification.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#qualifiedForm">
-        <rdfs:comment xml:lang="en">This annotation property links a subproperty of prov:wasInfluencedBy with the subclass of prov:Influence and the qualifying property that are used to qualify it. 
-
-Example annotation:
-
-    prov:wasGeneratedBy prov:qualifiedForm prov:qualifiedGeneration, prov:Generation .
-
-Then this unqualified assertion:
-
-    :entity1 prov:wasGeneratedBy :activity1 .
-
-can be qualified by adding:
-
-   :entity1 prov:qualifiedGeneration :entity1Gen .
-   :entity1Gen 
-       a prov:Generation, prov:Influence;
-       prov:activity :activity1;
-       :customValue 1337 .
-
-Note how the value of the unqualified influence (prov:wasGeneratedBy :activity1) is mirrored as the value of the prov:activity (or prov:entity, or prov:agent) property on the influence class.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#todo"/>
-    <owl:AnnotationProperty rdf:about="http://www.w3.org/ns/prov#n">
-        <rdfs:comment xml:lang="en">A reference to the principal section of the PROV-DM document that describes this concept.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:AnnotationProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#actedOnBehalfOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#actedOnBehalfOf">
-        <rdfs:label>actedOnBehalfOf</rdfs:label>
-        <component>agents-responsibility</component>
-        <inverse>hadDelegate</inverse>
-        <rdfs:comment xml:lang="en">An object property to express the accountability of an agent towards another agent. The subordinate agent acted on behalf of the responsible agent in an actual activity. </rdfs:comment>
-        <category>starting-point</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Delegation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedDelegation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedDelegation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#agent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#activity -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#activity">
-        <rdfs:label>activity</rdfs:label>
-        <editorsDefinition>The prov:activity property references an prov:Activity which influenced a resource. This property applies to an prov:ActivityInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent.</editorsDefinition>
-        <inverse>activityOfInfluence</inverse>
-        <editorialNote xml:lang="en">This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple.</editorialNote>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#ActivityInfluence"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influencer"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#agent -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#agent">
-        <rdfs:label>agent</rdfs:label>
-        <editorsDefinition xml:lang="en">The prov:agent property references an prov:Agent which influenced a resource. This property applies to an prov:AgentInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent.</editorsDefinition>
-        <inverse>agentOfInfluence</inverse>
-        <editorialNote xml:lang="en">This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple.</editorialNote>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influencer"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#alternateOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#alternateOf">
-        <rdfs:label>alternateOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-alternate</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-alternate</n>
-        <definition xml:lang="en">Two alternate entities present aspects of the same thing. These aspects may be the same or different, and the alternate entities may or may not overlap in time.</definition>
-        <category>expanded</category>
-        <component>alternate</component>
-        <inverse>alternateOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#specializationOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#atLocation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#atLocation">
-        <rdfs:label>atLocation</rdfs:label>
-        <rdfs:comment xml:lang="en">The Location of any resource.</rdfs:comment>
-        <inverse>locationOf</inverse>
-        <editorialNote xml:lang="en">The naming of prov:atLocation parallels prov:atTime, and is not named prov:hadLocation to avoid conflicting with the convention that prov:had* properties are used on prov:Influence classes.</editorialNote>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <editorialNote xml:lang="en">This property is not functional because the many values could be at a variety of granularies (In this building, in this room, in that chair).</editorialNote>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Location"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Location"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#entity -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#entity">
-        <rdfs:label>entity</rdfs:label>
-        <editorsDefinition>The prov:entity property references an prov:Entity which influenced a resource. This property applies to an prov:EntityInfluence, which is given by a subproperty of prov:qualifiedInfluence from the influenced prov:Entity, prov:Activity or prov:Agent.</editorsDefinition>
-        <inverse>entityOfInfluence</inverse>
-        <editorialNote xml:lang="en">This property behaves in spirit like rdf:object; it references the object of a prov:wasInfluencedBy triple.</editorialNote>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influencer"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#generated -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#generated">
-        <rdfs:label>generated</rdfs:label>
-        <component>entities-activities</component>
-        <inverse>wasGeneratedBy</inverse>
-        <category>expanded</category>
-        <editorialNote xml:lang="en">prov:generated is one of few inverse property defined, to allow Activity-oriented assertions in addition to Entity-oriented assertions.</editorialNote>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influenced"/>
-        <owl:inverseOf rdf:resource="http://www.w3.org/ns/prov#wasGeneratedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadActivity -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadActivity">
-        <rdfs:label>hadActivity</rdfs:label>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <rdfs:comment xml:lang="en">The _optional_ Activity of an Influence, which used, generated, invalidated, or was the responsibility of some Entity. This property is _not_ used by ActivityInfluence (use prov:activity instead).</rdfs:comment>
-        <editorialNote xml:lang="en">The multiple rdfs:domain assertions are intended. One is simpler and works for OWL-RL, the union is more specific but is not recognized by OWL-RL.</editorialNote>
-        <component>derivations</component>
-        <category>qualified</category>
-        <inverse>wasActivityOfInfluence</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Delegation"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Derivation"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#End"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Start"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadGeneration -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadGeneration">
-        <rdfs:label>hadGeneration</rdfs:label>
-        <inverse>generatedAsDerivation</inverse>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Generation involved in an Entity&#39;s Derivation.</rdfs:comment>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadMember -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadMember">
-        <rdfs:label>hadMember</rdfs:label>
-        <category>expanded</category>
-        <component>expanded</component>
-        <inverse>wasMemberOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Collection"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Collection"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment xml:lang="en">A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections.</rdfs:comment>
-        <dm>http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-collection</dm>
-        <owl:annotatedProperty rdf:resource="&rdfs;range"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#hadMember"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadPlan -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadPlan">
-        <rdfs:label>hadPlan</rdfs:label>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <inverse>wasPlanOf</inverse>
-        <rdfs:comment xml:lang="en">The _optional_ Plan adopted by an Agent in Association with some Activity. Plan specifications are out of the scope of this specification.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Plan"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Plan"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadPrimarySource -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadPrimarySource">
-        <rdfs:label>hadPrimarySource</rdfs:label>
-        <component>derivations</component>
-        <category>expanded</category>
-        <inverse>wasPrimarySourceOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#PrimarySource"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedPrimarySource"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedPrimarySource"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>hadPrimarySource property is a particular case of wasDerivedFrom (see http://www.w3.org/TR/prov-dm/#term-original-source) that aims to give credit to the source that originated some information.</rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#hadPrimarySource"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadRole -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadRole">
-        <rdfs:label>hadRole</rdfs:label>
-        <component>agents-responsibility</component>
-        <inverse>wasRoleIn</inverse>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Role that an Entity assumed in the context of an Activity. For example, :baking prov:used :spoon; prov:qualified [ a prov:Usage; prov:entity :spoon; prov:hadRole roles:mixing_implement ].</rdfs:comment>
-        <editorsDefinition xml:lang="en">prov:hadRole references the Role (i.e. the function of an entity with respect to an activity), in the context of an instantaneous usage, generation, association, start, and end.</editorsDefinition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Role"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Role"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Association"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#hadUsage -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#hadUsage">
-        <rdfs:label>hadUsage</rdfs:label>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The _optional_ Usage involved in an Entity&#39;s Derivation.</rdfs:comment>
-        <inverse>wasUsedInDerivation</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#influenced -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#influenced">
-        <rdfs:label>influenced</rdfs:label>
-        <inverse>wasInfluencedBy</inverse>
-        <component>agents-responsibility</component>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <owl:inverseOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#influencer -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#influencer">
-        <rdfs:label>influencer</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <category>qualified</category>
-        <inverse>hadInfluence</inverse>
-        <rdfs:comment xml:lang="en">Subproperties of prov:influencer are used to cite the object of an unqualified PROV-O triple whose predicate is a subproperty of prov:wasInfluencedBy (e.g. prov:used, prov:wasGeneratedBy). prov:influencer is used much like rdf:object is used.</rdfs:comment>
-        <editorialNote xml:lang="en">This property and its subproperties are used in the same way as the rdf:object property, i.e. to reference the object of an unqualified prov:wasInfluencedBy or prov:influenced triple.</editorialNote>
-        <editorsDefinition xml:lang="en">This property is used as part of the qualified influence pattern. Subclasses of prov:Influence use these subproperties to reference the resource (Entity, Agent, or Activity) whose influence is being qualified.</editorsDefinition>
-        <rdfs:range rdf:resource="&owl;Thing"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#invalidated -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#invalidated">
-        <rdfs:label>invalidated</rdfs:label>
-        <category>expanded</category>
-        <inverse>wasInvalidatedBy</inverse>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">prov:invalidated is one of few inverse property defined, to allow Activity-oriented assertions in addition to Entity-oriented assertions.</editorialNote>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#influenced"/>
-        <owl:inverseOf rdf:resource="http://www.w3.org/ns/prov#wasInvalidatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedAssociation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedAssociation">
-        <rdfs:label>qualifiedAssociation</rdfs:label>
-        <inverse>qualifiedAssociationOf</inverse>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasAssociatedWith Agent :ag, then it can qualify the Association using prov:qualifiedAssociation [ a prov:Association;  prov:agent :ag; :foo :bar ].</rdfs:comment>
-        <component>agents-responsibility</component>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAssociatedWith"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedAttribution -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedAttribution">
-        <rdfs:label>qualifiedAttribution</rdfs:label>
-        <inverse>qualifiedAttributionOf</inverse>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasAttributedTo Agent :ag, then it can qualify how it was influenced using prov:qualifiedAttribution [ a prov:Attribution;  prov:agent :ag; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Attribution"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Attribution"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedCommunication -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedCommunication">
-        <rdfs:label>qualifiedCommunication</rdfs:label>
-        <inverse>qualifiedCommunicationOf</inverse>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasInformedBy Activity :a, then it can qualify how it was influenced using prov:qualifiedCommunication [ a prov:Communication;  prov:activity :a; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedDelegation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedDelegation">
-        <rdfs:label>qualifiedDelegation</rdfs:label>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">If this Agent prov:actedOnBehalfOf Agent :ag, then it can qualify how with prov:qualifiedResponsibility [ a prov:Responsibility;  prov:agent :ag; :foo :bar ].</rdfs:comment>
-        <inverse>qualifiedDelegationOf</inverse>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Delegation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Delegation"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#actedOnBehalfOf"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedDerivation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedDerivation">
-        <rdfs:label>qualifiedDerivation</rdfs:label>
-        <component>derivations</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasDerivedFrom Entity :e, then it can qualify how it was derived using prov:qualifiedDerivation [ a prov:Derivation;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <inverse>qualifiedDerivationOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedEnd -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedEnd">
-        <rdfs:label>qualifiedEnd</rdfs:label>
-        <category>qualified</category>
-        <inverse>qualifiedEndOf</inverse>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasEndedBy Entity :e1, then it can qualify how it was ended using prov:qualifiedEnd [ a prov:End;  prov:entity :e1; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasEndedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedGeneration -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedGeneration">
-        <rdfs:label>qualifiedGeneration</rdfs:label>
-        <inverse>qualifiedGenerationOf</inverse>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">If this Activity prov:generated Entity :e, then it can qualify how it performed the Generation using prov:qualifiedGeneration [ a prov:Generation;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasGeneratedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedInfluence -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedInfluence">
-        <rdfs:label>qualifiedInfluence</rdfs:label>
-        <rdfs:comment xml:lang="en">Because prov:qualifiedInfluence is a broad relation, the more specific relations (qualifiedCommunication, qualifiedDelegation, qualifiedEnd, etc.) should be used when applicable.</rdfs:comment>
-        <category>qualified</category>
-        <inverse>qualifiedInfluenceOf</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedInvalidation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedInvalidation">
-        <rdfs:label>qualifiedInvalidation</rdfs:label>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasInvalidatedBy Activity :a, then it can qualify how it was invalidated using prov:qualifiedInvalidation [ a prov:Invalidation;  prov:activity :a; :foo :bar ].</rdfs:comment>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <inverse>qualifiedInvalidationOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInvalidatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedPrimarySource -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedPrimarySource">
-        <rdfs:label>qualifiedPrimarySource</rdfs:label>
-        <rdfs:comment xml:lang="en">If this Entity prov:hadPrimarySource Entity :e, then it can qualify how using prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :e; :foo :bar ].</rdfs:comment>
-        <component>derivations</component>
-        <category>qualified</category>
-        <inverse>qualifiedSourceOf</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#PrimarySource"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#PrimarySource"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#hadPrimarySource"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedQuotation -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedQuotation">
-        <rdfs:label>qualifiedQuotation</rdfs:label>
-        <category>qualified</category>
-        <inverse>qualifiedQuotationOf</inverse>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Quotation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Quotation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasQuotedFrom"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedRevision -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedRevision">
-        <rdfs:label>qualifiedRevision</rdfs:label>
-        <rdfs:comment xml:lang="en">If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision;  prov:entity :e; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <inverse>revisedEntity</inverse>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasRevisionOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedStart -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedStart">
-        <rdfs:label>qualifiedStart</rdfs:label>
-        <inverse>qualifiedStartOf</inverse>
-        <category>qualified</category>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:wasStartedBy Entity :e1, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start;  prov:entity :e1; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasStartedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#qualifiedUsage -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#qualifiedUsage">
-        <rdfs:label>qualifiedUsage</rdfs:label>
-        <category>qualified</category>
-        <inverse>qualifiedUsingActivity</inverse>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">If this Activity prov:used Entity :e, then it can qualify how it used it using prov:qualifiedUsage [ a prov:Usage; prov:entity :e; :foo :bar ].</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#used"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#specializationOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#specializationOf">
-        <rdfs:label>specializationOf</rdfs:label>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-specialization</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-specialization</n>
-        <component>alternate</component>
-        <category>expanded</category>
-        <inverse>generalizationOf</inverse>
-        <definition xml:lang="en">An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#alternateOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#used -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#used">
-        <rdfs:label>used</rdfs:label>
-        <inverse>wasUsedBy</inverse>
-        <rdfs:comment xml:lang="en">A prov:Entity that was used by this prov:Activity. For example, :baking prov:used :spoon, :egg, :oven .</rdfs:comment>
-        <category>starting-point</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Usage"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedUsage"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedUsage"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasAssociatedWith -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasAssociatedWith">
-        <rdfs:label>wasAssociatedWith</rdfs:label>
-        <component>agents-responsibility</component>
-        <inverse>wasAssociateFor</inverse>
-        <rdfs:comment xml:lang="en">An prov:Agent that had some (unspecified) responsibility for the occurrence of this prov:Activity.</rdfs:comment>
-        <category>starting-point</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Association"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedAssociation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedAssociation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#agent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasAttributedTo -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasAttributedTo">
-        <rdfs:label>wasAttributedTo</rdfs:label>
-        <component>agents-responsibility</component>
-        <category>starting-point</category>
-        <inverse>contributed</inverse>
-        <definition xml:lang="en">Attribution is the ascribing of an entity to an agent.</definition>
-        <rdfs:comment xml:lang="en">Attribution is the ascribing of an entity to an agent.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Agent"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Attribution"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedAttribution"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedAttribution"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#agent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Attribution is a particular case of trace (see http://www.w3.org/TR/prov-dm/#concept-trace), in the sense that it links an entity to the agent that ascribed it.</rdfs:comment>
-        <definition>IF wasAttributedTo(e2,ag1,aAttr) holds, THEN wasInfluencedBy(e2,ag1) also holds. </definition>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasAttributedTo"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasDerivedFrom -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasDerivedFrom">
-        <rdfs:label>wasDerivedFrom</rdfs:label>
-        <inverse>hadDerivation</inverse>
-        <definition xml:lang="en">A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.</definition>
-        <category>starting-point</category>
-        <rdfs:comment xml:lang="en">The more specific subproperties of prov:wasDerivedFrom (i.e., prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource) should be used when applicable.</rdfs:comment>
-        <component>derivations</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Derivation"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedDerivation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedDerivation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Derivation is a particular case of trace (see http://www.w3.org/TR/prov-dm/#term-trace), since it links an entity to another entity that contributed to its existence.</rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasEndedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasEndedBy">
-        <rdfs:label>wasEndedBy</rdfs:label>
-        <category>expanded</category>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">End is when an activity is deemed to have ended. An end may refer to an entity, known as trigger, that terminated the activity.</rdfs:comment>
-        <inverse>ended</inverse>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedEnd"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedEnd"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasGeneratedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasGeneratedBy">
-        <rdfs:label>wasGeneratedBy</rdfs:label>
-        <inverse>generated</inverse>
-        <category>starting-point</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedGeneration"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedGeneration"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#activity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasInfluencedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasInfluencedBy">
-        <rdfs:label>wasInfluencedBy</rdfs:label>
-        <rdfs:comment xml:lang="en">Because prov:wasInfluencedBy is a broad relation, its more specific subproperties (e.g. prov:wasInformedBy, prov:actedOnBehalfOf, prov:wasEndedBy, etc.) should be used when applicable.</rdfs:comment>
-        <editorialNote xml:lang="en">The sub-properties of prov:wasInfluencedBy can be elaborated in more detail using the Qualification Pattern. For example, the binary relation :baking prov:used :spoon can be qualified by asserting :baking prov:qualifiedUsage [ a prov:Usage; prov:entity :spoon; prov:atLocation :kitchen ] .
-
-Subproperties of prov:wasInfluencedBy may also be asserted directly without being qualified.
-
-prov:wasInfluencedBy should not be used without also using one of its subproperties. 
-</editorialNote>
-        <rdfs:comment>This property has multiple RDFS domains to suit multiple OWL Profiles. See &lt;a href=&quot;#owl-profile&quot;&gt;PROV-O OWL Profile&lt;/a&gt;.</rdfs:comment>
-        <category>qualified</category>
-        <inverse>influenced</inverse>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedInfluence"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-        <rdfs:range>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:range>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <definition>influencer: an identifier (o1) for an ancestor entity, activity, or agent that the former depends on;</definition>
-        <dm>http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <owl:annotatedProperty rdf:resource="&rdfs;range"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:annotatedTarget>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </owl:annotatedTarget>
-    </owl:Axiom>
-    <owl:Axiom>
-        <definition>influencee: an identifier (o2) for an entity, activity, or agent; </definition>
-        <dm>http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-influence</dm>
-        <owl:annotatedProperty rdf:resource="&rdfs;domain"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:annotatedTarget>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Activity"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Agent"/>
-                    <rdf:Description rdf:about="http://www.w3.org/ns/prov#Entity"/>
-                </owl:unionOf>
-            </owl:Class>
-        </owl:annotatedTarget>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasInformedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasInformedBy">
-        <rdfs:label>wasInformedBy</rdfs:label>
-        <inverse>informed</inverse>
-        <rdfs:comment xml:lang="en">An activity a2 is dependent on or informed by another activity a1, by way of some unspecified entity that is generated by a1 and used by a2.</rdfs:comment>
-        <category>starting-point</category>
-        <component>entities-activities</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Communication"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedCommunication"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedCommunication"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#activity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasInvalidatedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasInvalidatedBy">
-        <rdfs:label>wasInvalidatedBy</rdfs:label>
-        <component>entities-activities</component>
-        <inverse>invalidated</inverse>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedInvalidation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedInvalidation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#activity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasQuotedFrom -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasQuotedFrom">
-        <rdfs:label>wasQuotedFrom</rdfs:label>
-        <category>expanded</category>
-        <component>derivations</component>
-        <inverse>quotedAs</inverse>
-        <rdfs:comment xml:lang="en">An entity is derived from an original entity by copying, or &#39;quoting&#39;, some or all of it.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Quotation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedQuotation"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedQuotation"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Quotation is a particular case of derivation (see http://www.w3.org/TR/prov-dm/#term-quotation) in which an entity is derived from an original entity by copying, or &quot;quoting&quot;, some or all of it. </rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasQuotedFrom"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasRevisionOf -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasRevisionOf">
-        <rdfs:label>wasRevisionOf</rdfs:label>
-        <rdfs:comment xml:lang="en">A revision is a derivation that revises an entity into a revised version.</rdfs:comment>
-        <component>derivations</component>
-        <inverse>hadRevision</inverse>
-        <category>expanded</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Revision"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedRevision"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedRevision"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    <owl:Axiom>
-        <rdfs:comment>Revision is a derivation (see http://www.w3.org/TR/prov-dm/#term-Revision). Moreover, according to 
-http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#term-Revision 23 April 2012 &#39;wasRevisionOf is a strict sub-relation of wasDerivedFrom since two entities e2 and e1 may satisfy wasDerivedFrom(e2,e1) without being a variant of each other.&#39;</rdfs:comment>
-        <owl:annotatedProperty rdf:resource="&rdfs;subPropertyOf"/>
-        <owl:annotatedTarget rdf:resource="http://www.w3.org/ns/prov#wasDerivedFrom"/>
-        <owl:annotatedSource rdf:resource="http://www.w3.org/ns/prov#wasRevisionOf"/>
-    </owl:Axiom>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#wasStartedBy -->
-
-    <owl:ObjectProperty rdf:about="http://www.w3.org/ns/prov#wasStartedBy">
-        <rdfs:label>wasStartedBy</rdfs:label>
-        <inverse>started</inverse>
-        <category>expanded</category>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">Start is when an activity is deemed to have started. A start may refer to an entity, known as trigger, that initiated the activity.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <rdfs:range rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#qualifiedStart"/>
-        <rdfs:subPropertyOf rdf:resource="http://www.w3.org/ns/prov#wasInfluencedBy"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#qualifiedStart"/>
-            <rdf:Description rdf:about="http://www.w3.org/ns/prov#entity"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/prov#atTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#atTime">
-        <rdfs:label>atTime</rdfs:label>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">The time at which an InstantaneousEvent occurred, in the form of xsd:dateTime.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <sharesDefinitionWith rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#endedAtTime"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#generatedAtTime"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#invalidatedAtTime"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#startedAtTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#endedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#endedAtTime">
-        <rdfs:label>endedAtTime</rdfs:label>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedEnd o prov:atTime) rdfs:subPropertyOf prov:endedAtTime.</editorialNote>
-        <rdfs:comment xml:lang="en">The time at which an activity ended. See also prov:startedAtTime.</rdfs:comment>
-        <category>starting-point</category>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#End"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#generatedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#generatedAtTime">
-        <rdfs:label>generatedAtTime</rdfs:label>
-        <category>expanded</category>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedGeneration o prov:atTime) rdfs:subPropertyOf prov:generatedAtTime.</editorialNote>
-        <rdfs:comment xml:lang="en">The time at which an entity was completely created and is available for use.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Generation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#invalidatedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#invalidatedAtTime">
-        <rdfs:label>invalidatedAtTime</rdfs:label>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedInvalidation o prov:atTime) rdfs:subPropertyOf prov:invalidatedAtTime.</editorialNote>
-        <category>expanded</category>
-        <rdfs:comment xml:lang="en">The time at which an entity was invalidated (i.e., no longer usable).</rdfs:comment>
-        <component>entities-activities</component>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Invalidation"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#startedAtTime -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#startedAtTime">
-        <rdfs:label>startedAtTime</rdfs:label>
-        <category>starting-point</category>
-        <editorialNote xml:lang="en">It is the intent that the property chain holds: (prov:qualifiedStart o prov:atTime) rdfs:subPropertyOf prov:startedAtTime.</editorialNote>
-        <component>entities-activities</component>
-        <rdfs:comment xml:lang="en">The time at which an activity started. See also prov:endedAtTime.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTime"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Activity"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#Start"/>
-        <qualifiedForm rdf:resource="http://www.w3.org/ns/prov#atTime"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#value -->
-
-    <owl:DatatypeProperty rdf:about="http://www.w3.org/ns/prov#value">
-        <rdfs:label>value</rdfs:label>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribute-value</dm>
-        <category>expanded</category>
-        <editorialNote>The editor&#39;s definition comes from http://www.w3.org/TR/rdf-primer/#rdfvalue</editorialNote>
-        <definition xml:lang="en">Provides a value that is a direct representation of an entity.</definition>
-        <component>entities-activities</component>
-        <editorialNote xml:lang="en">This property serves the same purpose as rdf:value, but has been reintroduced to avoid some of the definitional ambiguity in the RDF specification (specifically, &#39;may be used in describing structured values&#39;).</editorialNote>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:domain rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/2002/07/owl#Thing -->
-
-    <owl:Class rdf:about="&owl;Thing"/>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Activity -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Activity">
-        <rdfs:label>Activity</rdfs:label>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Activity</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Activity</n>
-        <component>entities-activities</component>
-        <category>starting-point</category>
-        <definition>An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#ActivityInfluence -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#ActivityInfluence">
-        <rdfs:label>ActivityInfluence</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://www.w3.org/ns/prov#hadActivity"/>
-                <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">0</owl:maxCardinality>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <editorsDefinition xml:lang="en">ActivitiyInfluence is the capacity of an activity to have an effect on the character, development, or behavior of another by means of generation, invalidation, communication, or other.</editorsDefinition>
-        <rdfs:comment xml:lang="en">ActivityInfluence provides additional descriptions of an Activity&#39;s binary influence upon any other kind of resource. Instances of ActivityInfluence use the prov:activity property to cite the influencing Activity.</rdfs:comment>
-        <rdfs:comment xml:lang="en">It is not recommended that the type ActivityInfluence be asserted without also asserting one of its more specific subclasses.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#activity"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Agent -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Agent">
-        <rdfs:label>Agent</rdfs:label>
-        <owl:disjointWith rdf:resource="http://www.w3.org/ns/prov#InstantaneousEvent"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Agent</n>
-        <definition xml:lang="en">An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent&#39;s activity. </definition>
-        <category>starting-point</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#AgentInfluence -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#AgentInfluence">
-        <rdfs:label>AgentInfluence</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Influence"/>
-        <editorsDefinition xml:lang="en">AgentInfluence is the capacity of an agent to have an effect on the character, development, or behavior of another by means of attribution, association, delegation, or other.</editorsDefinition>
-        <rdfs:comment xml:lang="en">AgentInfluence provides additional descriptions of an Agent&#39;s binary influence upon any other kind of resource. Instances of AgentInfluence use the prov:agent property to cite the influencing Agent.</rdfs:comment>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">It is not recommended that the type AgentInfluence be asserted without also asserting one of its more specific subclasses.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <rdfs:seeAlso rdf:resource="http://www.w3.org/ns/prov#agent"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Association -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Association">
-        <rdfs:label>Association</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Association</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Association</n>
-        <component>agents-responsibility</component>
-        <rdfs:comment xml:lang="en">An instance of prov:Association provides additional descriptions about the binary prov:wasAssociatedWith relation from an prov:Activity to some prov:Agent that had some responsiblity for it. For example, :baking prov:wasAssociatedWith :baker; prov:qualifiedAssociation [ a prov:Association; prov:agent :baker; :foo :bar ].</rdfs:comment>
-        <category>qualified</category>
-        <definition xml:lang="en">An activity association is an assignment of responsibility to an agent for an activity, indicating that the agent had a role in the activity. It further allows for a plan to be specified, which is the plan intended by the agent to achieve some goals in the context of this activity.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAssociatedWith"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Attribution -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Attribution">
-        <rdfs:label>Attribution</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-attribution</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-attribution</n>
-        <rdfs:comment xml:lang="en">An instance of prov:Attribution provides additional descriptions about the binary prov:wasAttributedTo relation from an prov:Entity to some prov:Agent that had some responsible for it. For example, :cake prov:wasAttributedTo :baker; prov:qualifiedAttribution [ a prov:Attribution; prov:entity :baker; :foo :bar ].</rdfs:comment>
-        <definition xml:lang="en">Attribution is the ascribing of an entity to an agent.
-
-When an entity e is attributed to agent ag, entity e was generated by some unspecified activity that in turn was associated to agent ag. Thus, this relation is useful when the activity is not known, or irrelevant.</definition>
-        <category>qualified</category>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasAttributedTo"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Bundle -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Bundle">
-        <rdfs:label>Bundle</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-bundle-entity</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-bundle-declaration</n>
-        <category>expanded</category>
-        <definition xml:lang="en">A bundle is a named set of provenance descriptions, and is itself an Entity, so allowing provenance of provenance to be expressed.</definition>
-        <rdfs:comment xml:lang="en">Note that there are kinds of bundles (e.g. handwritten letters, audio recordings, etc.) that are not expressed in PROV-O, but can be still be described by PROV-O.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Collection -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Collection">
-        <rdfs:label>Collection</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#Entity"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-collection</dm>
-        <component>collections</component>
-        <category>expanded</category>
-        <definition xml:lang="en">A collection is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the collections.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Communication -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Communication">
-        <rdfs:label>Communication</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#ActivityInfluence"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Communication</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-wasInformedBy</n>
-        <component>entities-activities</component>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">An instance of prov:Communication provides additional descriptions about the binary prov:wasInformedBy relation from an informed prov:Activity to the prov:Activity that informed it. For example, :you_jumping_off_bridge prov:wasInformedBy :everyone_else_jumping_off_bridge; prov:qualifiedCommunication [ a prov:Communication; prov:activity :everyone_else_jumping_off_bridge; :foo :bar ].</rdfs:comment>
-        <definition>Communication is the exchange of an entity by two activities, one activity using the entity generated by the other.</definition>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#wasInformedBy"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Delegation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Delegation">
-        <rdfs:label>Delegation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#AgentInfluence"/>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-delegation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-delegation</n>
-        <category>qualified</category>
-        <rdfs:comment xml:lang="en">An instance of prov:Delegation provides additional descriptions about the binary prov:actedOnBehalfOf relation from a performing prov:Agent to some prov:Agent for whom it was performed. For example, :mixing prov:wasAssociatedWith :toddler . :toddler prov:actedOnBehalfOf :mother; prov:qualifiedDelegation [ a prov:Delegation; prov:entity :mother; :foo :bar ].</rdfs:comment>
-        <definition xml:lang="en">Delegation is the assignment of authority and responsibility to an agent (by itself or by another agent) to carry out a specific activity as a delegate or representative, while the agent it acts on behalf of retains some responsibility for the outcome of the delegated work.
-
-For example, a student acted on behalf of his supervisor, who acted on behalf of the department chair, who acted on behalf of the university; all those agents are responsible in some way for the activity that took place but we do not say explicitly who bears responsibility and to what degree.</definition>
-        <component>agents-responsibility</component>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        <unqualifiedForm rdf:resource="http://www.w3.org/ns/prov#actedOnBehalfOf"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/prov#Derivation -->
-
-    <owl:Class rdf:about="http://www.w3.org/ns/prov#Derivation">
-        <rdfs:label>Derivation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov#EntityInfluence"/>
-        <constraints rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-constraints-20130430/#prov-dm-constraints-fig</constraints>
-        <dm rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-Derivation</dm>
-        <n rdf:datatype="&xsd;anyURI">http://www.w3.org/TR/2013/REC-prov-n-20130430/#Derivation-Relation</n>
-        <definition xml:lang="en">A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.</definition>
-        <component>derivations</component>
-        <rdfs:comment xml:lang="en">An instance of prov:Derivation provides additional descriptions about the binary prov:wasDerivedFrom relation from some derived prov:Entity to another prov:Entity from which it was derived. For example, :chewed_bubble_gum prov:wasDerivedFrom :unwrapped_bubble_gum; prov:qualifiedDerivation [ a prov:Derivation; prov:entity :unwrapped_bubble_gum; :foo :bar ].</rdfs:comment>
-        <rdfs:comment xml:lang="en">The more specific forms of prov:Der

<TRUNCATED>

[46/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/workflowrun.prov.ttl
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/workflowrun.prov.ttl b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/workflowrun.prov.ttl
deleted file mode 100644
index 9560e99..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/workflowrun.prov.ttl
+++ /dev/null
@@ -1,2296 +0,0 @@
-# @base <file:/C:/Users/stain/Desktop/ebi_interproscan/ebi-wfrun-2013-05-31/workflowrun.prov.ttl> .
-@prefix cnt: <http://www.w3.org/2011/content#> .
-@prefix dcterms: <http://purl.org/dc/terms/> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix prov: <http://www.w3.org/ns/prov#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix scufl2: <http://ns.taverna.org.uk/2010/scufl2#> .
-@prefix tavernaprov: <http://ns.taverna.org.uk/2012/tavernaprov/> .
-@prefix wfdesc: <http://purl.org/wf4ever/wfdesc#> .
-@prefix wfprov: <http://purl.org/wf4ever/wfprov#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-:taverna-prov-export rdfs:label "taverna-prov export of workflow run provenance" ;
-	prov:qualifiedAssociation _:node17rt1p9vpx1 ;
-	prov:startedAtTime "2013-05-31T11:23:10.463+01:00"^^xsd:dateTime ;
-	prov:wasAssociatedWith :taverna-engine ;
-	prov:wasInformedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> .
-
-_:node17rt1p9vpx1 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2011/software/taverna-2.4.0> .
-
-<> prov:wasGeneratedBy :taverna-prov-export .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b583a556-39f3-41b5-b0e8-2efcf4cc1b80/> , <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/edefdb77-e27e-4092-90ba-045111708b8f/> , <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c26f5fa0-170b-4e94-b908-1c837ebff924/> ;
-	wfprov:describedByWorkflow <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> , <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> ;
-	wfprov:wasEnactedBy :taverna-engine ;
-	a wfprov:WorkflowRun ;
-	rdfs:label "Workflow run of EBI_InterproScan_NewServices" ;
-	prov:endedAtTime "2013-05-31T11:21:46.726+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx2 ;
-	prov:qualifiedUsage _:node17rt1p9vpx3 , _:node17rt1p9vpx4 ;
-	prov:startedAtTime "2013-05-31T11:20:57.914+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> , <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> ;
-	prov:wasAssociatedWith :taverna-engine .
-
-_:node17rt1p9vpx2 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/> .
-
-_:node17rt1p9vpx3 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/in/email> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/in/email> rdfs:label "Workflow input email" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/in/email> .
-
-_:node17rt1p9vpx4 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/in/sequence> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/in/sequence> rdfs:label "Workflow input sequence" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/in/sequence> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/47b742dc-fa5d-4a95-92da-8e9736b56289> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/Workflow16_getStatus_output_status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx5 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> .
-
-_:node17rt1p9vpx5 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/Workflow16_getStatus_output_status> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/Workflow16_getStatus_output_status> rdfs:label "Workflow output Workflow16_getStatus_output_status" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/3d2b01af-a184-4ed5-b15d-877285be39a6> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/Graphical_output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx6 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> .
-
-_:node17rt1p9vpx6 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/Graphical_output> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/Graphical_output> rdfs:label "Workflow output Graphical_output" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0390b429-3021-4d7c-a614-a8a15e0d5ee1> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/getResult_3_output_output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx7 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> .
-
-_:node17rt1p9vpx7 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/getResult_3_output_output> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/getResult_3_output_output> rdfs:label "Workflow output getResult_3_output_output" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/8aa09e32-5c01-441c-9d2e-280ec3422fce> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/getResult_output_output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx8 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> .
-
-_:node17rt1p9vpx8 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/getResult_output_output> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/out/getResult_output_output> rdfs:label "Workflow output getResult_output_output" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b583a556-39f3-41b5-b0e8-2efcf4cc1b80/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution text (facade0:EBI_InterproScan_NewServices:text)" ;
-	prov:endedAtTime "2013-05-31T11:21:03.711+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx9 ;
-	prov:startedAtTime "2013-05-31T11:21:01.216+01:00"^^xsd:dateTime .
-
-_:node17rt1p9vpx9 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/> rdfs:label "Processor text" .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/> dcterms:hasPart <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/> ;
-	wfdesc:hasSubProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/a8fba0e7-10a6-4fed-afd9-3a15fd24ba8e> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/out/value> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b583a556-39f3-41b5-b0e8-2efcf4cc1b80/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx10 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b583a556-39f3-41b5-b0e8-2efcf4cc1b80/> .
-
-_:node17rt1p9vpx10 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b583a556-39f3-41b5-b0e8-2efcf4cc1b80/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/out/value> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/text/out/value> rdfs:label "text output value" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/edefdb77-e27e-4092-90ba-045111708b8f/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution visual_png (facade0:EBI_InterproScan_NewServices:visual_png)" ;
-	prov:endedAtTime "2013-05-31T11:21:03.711+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx11 ;
-	prov:startedAtTime "2013-05-31T11:21:01.279+01:00"^^xsd:dateTime .
-
-_:node17rt1p9vpx11 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/> rdfs:label "Processor visual_png" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/b3dd41e8-e94b-4e14-9080-1e44efa8ab66> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/out/value> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/edefdb77-e27e-4092-90ba-045111708b8f/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx12 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/edefdb77-e27e-4092-90ba-045111708b8f/> .
-
-_:node17rt1p9vpx12 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/edefdb77-e27e-4092-90ba-045111708b8f/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/out/value> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/visual_png/out/value> rdfs:label "visual_png output value" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c26f5fa0-170b-4e94-b908-1c837ebff924/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution xml (facade0:EBI_InterproScan_NewServices:xml)" ;
-	prov:endedAtTime "2013-05-31T11:21:03.711+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx13 ;
-	prov:startedAtTime "2013-05-31T11:21:01.305+01:00"^^xsd:dateTime .
-
-_:node17rt1p9vpx13 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/> rdfs:label "Processor xml" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94a5377e-5752-433c-aa8b-c39bb461505f> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/out/value> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c26f5fa0-170b-4e94-b908-1c837ebff924/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx14 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c26f5fa0-170b-4e94-b908-1c837ebff924/> .
-
-_:node17rt1p9vpx14 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c26f5fa0-170b-4e94-b908-1c837ebff924/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/out/value> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/xml/out/value> rdfs:label "xml output value" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b11a96e0-b42b-4ca3-b325-06929549254c/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution run_input_2 (facade0:EBI_InterproScan_NewServices:run_input_2)" ;
-	prov:endedAtTime "2013-05-31T11:21:03.711+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx15 ;
-	prov:qualifiedUsage _:node17rt1p9vpx16 ;
-	prov:startedAtTime "2013-05-31T11:21:01.420+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2412779b-e7a0-429b-9911-a86f1a2470a2/> , <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/723b9dee-4ace-4809-8e52-f3916122abd1/> , <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b11a96e0-b42b-4ca3-b325-06929549254c/> , <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c7f4bb74-7e4c-40af-b97a-b57e01f0a905/> .
-
-_:node17rt1p9vpx15 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/> rdfs:label "Processor run_input_2" .
-
-_:node17rt1p9vpx16 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/in/sequence> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/in/sequence> rdfs:label "run_input_2 input sequence" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/e510beef-a303-4961-9a25-28f022e40780> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/in/sequence> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/28ccca88-6e06-4d5a-a43e-93ad263c6abd> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b11a96e0-b42b-4ca3-b325-06929549254c/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx17 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b11a96e0-b42b-4ca3-b325-06929549254c/> .
-
-_:node17rt1p9vpx17 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/b11a96e0-b42b-4ca3-b325-06929549254c/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/out/output> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input_2/out/output> rdfs:label "run_input_2 output output" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c7f4bb74-7e4c-40af-b97a-b57e01f0a905/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/28ccca88-6e06-4d5a-a43e-93ad263c6abd> , <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution run_input (facade0:EBI_InterproScan_NewServices:run_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:03.911+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx18 ;
-	prov:qualifiedUsage _:node17rt1p9vpx19 , _:node17rt1p9vpx20 ;
-	prov:startedAtTime "2013-05-31T11:21:03.837+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/28ccca88-6e06-4d5a-a43e-93ad263c6abd> , <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> .
-
-_:node17rt1p9vpx18 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/> rdfs:label "Processor run_input" .
-
-_:node17rt1p9vpx19 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/28ccca88-6e06-4d5a-a43e-93ad263c6abd> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/in/parameters> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/in/parameters> rdfs:label "run_input input parameters" .
-
-_:node17rt1p9vpx20 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/in/email> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/in/email> rdfs:label "run_input input email" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/9837426c-3c43-428b-93ff-cacae5108541> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/in/email> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0bd05e27-46d6-4de5-b76b-0988638f9231> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c7f4bb74-7e4c-40af-b97a-b57e01f0a905/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx21 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c7f4bb74-7e4c-40af-b97a-b57e01f0a905/> .
-
-_:node17rt1p9vpx21 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c7f4bb74-7e4c-40af-b97a-b57e01f0a905/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/out/output> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_input/out/output> rdfs:label "run_input output output" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2412779b-e7a0-429b-9911-a86f1a2470a2/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0bd05e27-46d6-4de5-b76b-0988638f9231> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution run (facade0:EBI_InterproScan_NewServices:run)" ;
-	prov:endedAtTime "2013-05-31T11:21:06.500+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx22 ;
-	prov:qualifiedUsage _:node17rt1p9vpx23 ;
-	prov:startedAtTime "2013-05-31T11:21:03.938+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0bd05e27-46d6-4de5-b76b-0988638f9231> .
-
-_:node17rt1p9vpx22 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/> rdfs:label "Processor run" .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/> dcterms:hasPart <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/> ;
-	wfdesc:hasSubProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/> .
-
-_:node17rt1p9vpx23 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0bd05e27-46d6-4de5-b76b-0988638f9231> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/in/parameters> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/in/parameters> rdfs:label "run input parameters" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0c29c209-b442-49c5-bee2-5b5efdacad0e> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2412779b-e7a0-429b-9911-a86f1a2470a2/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx24 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2412779b-e7a0-429b-9911-a86f1a2470a2/> .
-
-_:node17rt1p9vpx24 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2412779b-e7a0-429b-9911-a86f1a2470a2/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/out/parameters> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run/out/parameters> rdfs:label "run output parameters" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/723b9dee-4ace-4809-8e52-f3916122abd1/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0c29c209-b442-49c5-bee2-5b5efdacad0e> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution run_output (facade0:EBI_InterproScan_NewServices:run_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:06.641+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx25 ;
-	prov:qualifiedUsage _:node17rt1p9vpx26 ;
-	prov:startedAtTime "2013-05-31T11:21:06.581+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0c29c209-b442-49c5-bee2-5b5efdacad0e> .
-
-_:node17rt1p9vpx25 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/> rdfs:label "Processor run_output" .
-
-_:node17rt1p9vpx26 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0c29c209-b442-49c5-bee2-5b5efdacad0e> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/in/input> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/in/input> rdfs:label "run_output input input" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/in/JobID> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/out/jobId> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/723b9dee-4ace-4809-8e52-f3916122abd1/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx27 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/723b9dee-4ace-4809-8e52-f3916122abd1/> .
-
-_:node17rt1p9vpx27 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/723b9dee-4ace-4809-8e52-f3916122abd1/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/out/jobId> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/run_output/out/jobId> rdfs:label "run_output output jobId" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14158dd8-90f4-4489-bb3c-9cb0e0dc5433/> wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> ;
-	rdfs:label "Processor execution Status (facade0:EBI_InterproScan_NewServices:Status)" ;
-	prov:endedAtTime "2013-05-31T11:21:45.636+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx28 ;
-	prov:qualifiedUsage _:node17rt1p9vpx29 ;
-	prov:startedAtTime "2013-05-31T11:21:06.668+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14158dd8-90f4-4489-bb3c-9cb0e0dc5433/> .
-
-_:node17rt1p9vpx28 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/> rdfs:label "Processor Status" .
-
-_:node17rt1p9vpx29 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/in/JobID> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/in/JobID> rdfs:label "Status input JobID" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/47b742dc-fa5d-4a95-92da-8e9736b56289> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/out/getStatus_output_status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14158dd8-90f4-4489-bb3c-9cb0e0dc5433/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx30 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14158dd8-90f4-4489-bb3c-9cb0e0dc5433/> .
-
-_:node17rt1p9vpx30 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14158dd8-90f4-4489-bb3c-9cb0e0dc5433/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/out/getStatus_output_status> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/EBI_InterproScan_NewServices/processor/Status/out/getStatus_output_status> rdfs:label "Status output getStatus_output_status" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d2a68617-6098-4d9c-849f-e5cd0862404b/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d2a68617-6098-4d9c-849f-e5cd0862404b/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d2a68617-6098-4d9c-849f-e5cd0862404b/> ;
-	rdfs:label "Processor execution getStatus_input (facade0:EBI_InterproScan_NewServices:Status:invocation8:facade1:Workflow16:getStatus_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:06.767+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx31 ;
-	prov:qualifiedUsage _:node17rt1p9vpx32 ;
-	prov:startedAtTime "2013-05-31T11:21:06.723+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-_:node17rt1p9vpx31 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> rdfs:label "Processor getStatus_input" .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/> dcterms:hasPart <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfdesc:hasSubProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-_:node17rt1p9vpx32 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> rdfs:label "getStatus_input input jobId" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/c4776372-5fa1-4b05-92bc-585ccb4344af> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d2a68617-6098-4d9c-849f-e5cd0862404b/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx33 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d2a68617-6098-4d9c-849f-e5cd0862404b/> .
-
-_:node17rt1p9vpx33 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d2a68617-6098-4d9c-849f-e5cd0862404b/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> rdfs:label "getStatus_input output output" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/1d2dd54d-0e20-4a59-88c0-9ebc50ba1610/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/1d2dd54d-0e20-4a59-88c0-9ebc50ba1610/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/c4776372-5fa1-4b05-92bc-585ccb4344af> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/1d2dd54d-0e20-4a59-88c0-9ebc50ba1610/> ;
-	rdfs:label "Processor execution getStatus (facade0:EBI_InterproScan_NewServices:Status:invocation8:facade1:Workflow16:getStatus)" ;
-	prov:endedAtTime "2013-05-31T11:21:08.932+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx34 ;
-	prov:qualifiedUsage _:node17rt1p9vpx35 ;
-	prov:startedAtTime "2013-05-31T11:21:06.794+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/c4776372-5fa1-4b05-92bc-585ccb4344af> .
-
-_:node17rt1p9vpx34 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> rdfs:label "Processor getStatus" .
-
-_:node17rt1p9vpx35 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/c4776372-5fa1-4b05-92bc-585ccb4344af> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> rdfs:label "getStatus input parameters" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/268a47b4-34aa-42d0-96ad-98b99601a4e5> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/1d2dd54d-0e20-4a59-88c0-9ebc50ba1610/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx36 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/1d2dd54d-0e20-4a59-88c0-9ebc50ba1610/> .
-
-_:node17rt1p9vpx36 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/1d2dd54d-0e20-4a59-88c0-9ebc50ba1610/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> rdfs:label "getStatus output parameters" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/f5bddcfe-9756-48d6-a5c5-ae78e2da2c76/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/f5bddcfe-9756-48d6-a5c5-ae78e2da2c76/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/268a47b4-34aa-42d0-96ad-98b99601a4e5> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/f5bddcfe-9756-48d6-a5c5-ae78e2da2c76/> ;
-	rdfs:label "Processor execution getStatus_output (facade0:EBI_InterproScan_NewServices:Status:invocation8:facade1:Workflow16:getStatus_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:09.025+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx37 ;
-	prov:qualifiedUsage _:node17rt1p9vpx38 ;
-	prov:startedAtTime "2013-05-31T11:21:08.971+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/268a47b4-34aa-42d0-96ad-98b99601a4e5> .
-
-_:node17rt1p9vpx37 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> rdfs:label "Processor getStatus_output" .
-
-_:node17rt1p9vpx38 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/268a47b4-34aa-42d0-96ad-98b99601a4e5> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> rdfs:label "getStatus_output input input" .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/2a91a135-c649-4735-a02f-6db45b9c847e> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/f5bddcfe-9756-48d6-a5c5-ae78e2da2c76/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx39 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/f5bddcfe-9756-48d6-a5c5-ae78e2da2c76/> .
-
-_:node17rt1p9vpx39 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/f5bddcfe-9756-48d6-a5c5-ae78e2da2c76/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> .
-
-<http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> rdfs:label "getStatus_output output status" .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/0a214ea6-373b-4e08-8c85-85d6a0d76dfc/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/0a214ea6-373b-4e08-8c85-85d6a0d76dfc/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/0a214ea6-373b-4e08-8c85-85d6a0d76dfc/> ;
-	rdfs:label "Processor execution getStatus_input (facade0:EBI_InterproScan_NewServices:Status:invocation12:facade2:Workflow16:getStatus_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:09.803+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx40 ;
-	prov:qualifiedUsage _:node17rt1p9vpx41 ;
-	prov:startedAtTime "2013-05-31T11:21:09.776+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-_:node17rt1p9vpx40 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> .
-
-_:node17rt1p9vpx41 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/8618bc0b-9852-457d-b0b7-16af5526faaf> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/0a214ea6-373b-4e08-8c85-85d6a0d76dfc/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx42 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/0a214ea6-373b-4e08-8c85-85d6a0d76dfc/> .
-
-_:node17rt1p9vpx42 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/0a214ea6-373b-4e08-8c85-85d6a0d76dfc/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/a584e5c5-9652-48b3-a894-67947b8cbb75/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/a584e5c5-9652-48b3-a894-67947b8cbb75/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/8618bc0b-9852-457d-b0b7-16af5526faaf> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/a584e5c5-9652-48b3-a894-67947b8cbb75/> ;
-	rdfs:label "Processor execution getStatus (facade0:EBI_InterproScan_NewServices:Status:invocation12:facade2:Workflow16:getStatus)" ;
-	prov:endedAtTime "2013-05-31T11:21:11.931+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx43 ;
-	prov:qualifiedUsage _:node17rt1p9vpx44 ;
-	prov:startedAtTime "2013-05-31T11:21:09.819+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/8618bc0b-9852-457d-b0b7-16af5526faaf> .
-
-_:node17rt1p9vpx43 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> .
-
-_:node17rt1p9vpx44 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/8618bc0b-9852-457d-b0b7-16af5526faaf> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/a58b2fcd-fb4c-4445-be36-b5c00b96a813> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/a584e5c5-9652-48b3-a894-67947b8cbb75/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx45 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/a584e5c5-9652-48b3-a894-67947b8cbb75/> .
-
-_:node17rt1p9vpx45 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/a584e5c5-9652-48b3-a894-67947b8cbb75/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/40953f14-43c4-4826-ad77-5c0dac95fe23/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/40953f14-43c4-4826-ad77-5c0dac95fe23/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/a58b2fcd-fb4c-4445-be36-b5c00b96a813> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/40953f14-43c4-4826-ad77-5c0dac95fe23/> ;
-	rdfs:label "Processor execution getStatus_output (facade0:EBI_InterproScan_NewServices:Status:invocation12:facade2:Workflow16:getStatus_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:11.976+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx46 ;
-	prov:qualifiedUsage _:node17rt1p9vpx47 ;
-	prov:startedAtTime "2013-05-31T11:21:11.949+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/a58b2fcd-fb4c-4445-be36-b5c00b96a813> .
-
-_:node17rt1p9vpx46 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-_:node17rt1p9vpx47 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/a58b2fcd-fb4c-4445-be36-b5c00b96a813> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/00548907-43e1-4484-9582-bfa8727d44ca> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/40953f14-43c4-4826-ad77-5c0dac95fe23/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx48 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/40953f14-43c4-4826-ad77-5c0dac95fe23/> .
-
-_:node17rt1p9vpx48 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/40953f14-43c4-4826-ad77-5c0dac95fe23/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/78b09996-2aeb-41a6-8ec5-b59197ef0a6f/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/78b09996-2aeb-41a6-8ec5-b59197ef0a6f/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/78b09996-2aeb-41a6-8ec5-b59197ef0a6f/> ;
-	rdfs:label "Processor execution getStatus_input (facade0:EBI_InterproScan_NewServices:Status:invocation16:facade3:Workflow16:getStatus_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:12.533+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx49 ;
-	prov:qualifiedUsage _:node17rt1p9vpx50 ;
-	prov:startedAtTime "2013-05-31T11:21:12.508+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-_:node17rt1p9vpx49 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> .
-
-_:node17rt1p9vpx50 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/d69fe838-97dd-43cc-9a08-567cfb842f1a> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/78b09996-2aeb-41a6-8ec5-b59197ef0a6f/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx51 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/78b09996-2aeb-41a6-8ec5-b59197ef0a6f/> .
-
-_:node17rt1p9vpx51 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/78b09996-2aeb-41a6-8ec5-b59197ef0a6f/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/31a0976e-444e-483c-bd85-22c9e4199e2b/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/31a0976e-444e-483c-bd85-22c9e4199e2b/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/d69fe838-97dd-43cc-9a08-567cfb842f1a> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/31a0976e-444e-483c-bd85-22c9e4199e2b/> ;
-	rdfs:label "Processor execution getStatus (facade0:EBI_InterproScan_NewServices:Status:invocation16:facade3:Workflow16:getStatus)" ;
-	prov:endedAtTime "2013-05-31T11:21:14.685+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx52 ;
-	prov:qualifiedUsage _:node17rt1p9vpx53 ;
-	prov:startedAtTime "2013-05-31T11:21:12.550+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/d69fe838-97dd-43cc-9a08-567cfb842f1a> .
-
-_:node17rt1p9vpx52 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> .
-
-_:node17rt1p9vpx53 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/d69fe838-97dd-43cc-9a08-567cfb842f1a> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/111e5771-37b7-4ef8-9888-e50eadbc2a5c> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/31a0976e-444e-483c-bd85-22c9e4199e2b/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx54 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/31a0976e-444e-483c-bd85-22c9e4199e2b/> .
-
-_:node17rt1p9vpx54 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/31a0976e-444e-483c-bd85-22c9e4199e2b/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2a103410-36f1-4339-9159-038d363a2614/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2a103410-36f1-4339-9159-038d363a2614/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/111e5771-37b7-4ef8-9888-e50eadbc2a5c> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2a103410-36f1-4339-9159-038d363a2614/> ;
-	rdfs:label "Processor execution getStatus_output (facade0:EBI_InterproScan_NewServices:Status:invocation16:facade3:Workflow16:getStatus_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:14.746+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx55 ;
-	prov:qualifiedUsage _:node17rt1p9vpx56 ;
-	prov:startedAtTime "2013-05-31T11:21:14.710+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/111e5771-37b7-4ef8-9888-e50eadbc2a5c> .
-
-_:node17rt1p9vpx55 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-_:node17rt1p9vpx56 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/111e5771-37b7-4ef8-9888-e50eadbc2a5c> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/cc26451d-53c7-490d-8d9f-ac7a1f45e30e> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2a103410-36f1-4339-9159-038d363a2614/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx57 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2a103410-36f1-4339-9159-038d363a2614/> .
-
-_:node17rt1p9vpx57 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/2a103410-36f1-4339-9159-038d363a2614/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/058942d2-ba45-4215-9046-67b7fc33f250/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/058942d2-ba45-4215-9046-67b7fc33f250/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/058942d2-ba45-4215-9046-67b7fc33f250/> ;
-	rdfs:label "Processor execution getStatus_input (facade0:EBI_InterproScan_NewServices:Status:invocation20:facade4:Workflow16:getStatus_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:15.328+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx58 ;
-	prov:qualifiedUsage _:node17rt1p9vpx59 ;
-	prov:startedAtTime "2013-05-31T11:21:15.280+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-_:node17rt1p9vpx58 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> .
-
-_:node17rt1p9vpx59 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0f93d00f-131b-42ec-bbba-22b50582903e> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/058942d2-ba45-4215-9046-67b7fc33f250/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx60 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/058942d2-ba45-4215-9046-67b7fc33f250/> .
-
-_:node17rt1p9vpx60 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/058942d2-ba45-4215-9046-67b7fc33f250/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d6408d1d-f3ee-41a7-be16-49fe3448c404/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d6408d1d-f3ee-41a7-be16-49fe3448c404/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0f93d00f-131b-42ec-bbba-22b50582903e> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d6408d1d-f3ee-41a7-be16-49fe3448c404/> ;
-	rdfs:label "Processor execution getStatus (facade0:EBI_InterproScan_NewServices:Status:invocation20:facade4:Workflow16:getStatus)" ;
-	prov:endedAtTime "2013-05-31T11:21:17.492+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx61 ;
-	prov:qualifiedUsage _:node17rt1p9vpx62 ;
-	prov:startedAtTime "2013-05-31T11:21:15.355+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0f93d00f-131b-42ec-bbba-22b50582903e> .
-
-_:node17rt1p9vpx61 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> .
-
-_:node17rt1p9vpx62 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/0f93d00f-131b-42ec-bbba-22b50582903e> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5b5357f1-3062-43ab-adab-e0f3e3721dcc> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d6408d1d-f3ee-41a7-be16-49fe3448c404/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx63 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d6408d1d-f3ee-41a7-be16-49fe3448c404/> .
-
-_:node17rt1p9vpx63 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d6408d1d-f3ee-41a7-be16-49fe3448c404/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c04f9da1-5bb8-4525-9b6d-d3605981b137/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c04f9da1-5bb8-4525-9b6d-d3605981b137/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5b5357f1-3062-43ab-adab-e0f3e3721dcc> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c04f9da1-5bb8-4525-9b6d-d3605981b137/> ;
-	rdfs:label "Processor execution getStatus_output (facade0:EBI_InterproScan_NewServices:Status:invocation20:facade4:Workflow16:getStatus_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:17.544+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx64 ;
-	prov:qualifiedUsage _:node17rt1p9vpx65 ;
-	prov:startedAtTime "2013-05-31T11:21:17.512+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5b5357f1-3062-43ab-adab-e0f3e3721dcc> .
-
-_:node17rt1p9vpx64 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-_:node17rt1p9vpx65 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5b5357f1-3062-43ab-adab-e0f3e3721dcc> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/079d289b-796e-45cf-a759-82f91a0aa3d5> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c04f9da1-5bb8-4525-9b6d-d3605981b137/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx66 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c04f9da1-5bb8-4525-9b6d-d3605981b137/> .
-
-_:node17rt1p9vpx66 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/c04f9da1-5bb8-4525-9b6d-d3605981b137/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/178bd85c-0965-4acd-87b2-62618dfdb419/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/178bd85c-0965-4acd-87b2-62618dfdb419/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/178bd85c-0965-4acd-87b2-62618dfdb419/> ;
-	rdfs:label "Processor execution getStatus_input (facade0:EBI_InterproScan_NewServices:Status:invocation24:facade5:Workflow16:getStatus_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:18.106+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx67 ;
-	prov:qualifiedUsage _:node17rt1p9vpx68 ;
-	prov:startedAtTime "2013-05-31T11:21:18.077+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-_:node17rt1p9vpx67 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> .
-
-_:node17rt1p9vpx68 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5bb72df1-fc1d-43d8-9206-dcab6ced0437> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/178bd85c-0965-4acd-87b2-62618dfdb419/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx69 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/178bd85c-0965-4acd-87b2-62618dfdb419/> .
-
-_:node17rt1p9vpx69 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/178bd85c-0965-4acd-87b2-62618dfdb419/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/ab24cf8d-50fa-46bd-b34d-8e36bbfafe3b/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/ab24cf8d-50fa-46bd-b34d-8e36bbfafe3b/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5bb72df1-fc1d-43d8-9206-dcab6ced0437> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/ab24cf8d-50fa-46bd-b34d-8e36bbfafe3b/> ;
-	rdfs:label "Processor execution getStatus (facade0:EBI_InterproScan_NewServices:Status:invocation24:facade5:Workflow16:getStatus)" ;
-	prov:endedAtTime "2013-05-31T11:21:20.255+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx70 ;
-	prov:qualifiedUsage _:node17rt1p9vpx71 ;
-	prov:startedAtTime "2013-05-31T11:21:18.125+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5bb72df1-fc1d-43d8-9206-dcab6ced0437> .
-
-_:node17rt1p9vpx70 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> .
-
-_:node17rt1p9vpx71 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/5bb72df1-fc1d-43d8-9206-dcab6ced0437> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/67958fa2-98dd-4f82-b9f6-96537cea9528> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/ab24cf8d-50fa-46bd-b34d-8e36bbfafe3b/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx72 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/ab24cf8d-50fa-46bd-b34d-8e36bbfafe3b/> .
-
-_:node17rt1p9vpx72 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/ab24cf8d-50fa-46bd-b34d-8e36bbfafe3b/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14d82d6b-4f7e-4333-824b-79d95b8039b3/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14d82d6b-4f7e-4333-824b-79d95b8039b3/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/67958fa2-98dd-4f82-b9f6-96537cea9528> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14d82d6b-4f7e-4333-824b-79d95b8039b3/> ;
-	rdfs:label "Processor execution getStatus_output (facade0:EBI_InterproScan_NewServices:Status:invocation24:facade5:Workflow16:getStatus_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:20.297+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx73 ;
-	prov:qualifiedUsage _:node17rt1p9vpx74 ;
-	prov:startedAtTime "2013-05-31T11:21:20.273+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/67958fa2-98dd-4f82-b9f6-96537cea9528> .
-
-_:node17rt1p9vpx73 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-_:node17rt1p9vpx74 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/67958fa2-98dd-4f82-b9f6-96537cea9528> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/77ede682-e556-4d89-b429-219adfbe48be> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14d82d6b-4f7e-4333-824b-79d95b8039b3/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx75 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14d82d6b-4f7e-4333-824b-79d95b8039b3/> .
-
-_:node17rt1p9vpx75 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/14d82d6b-4f7e-4333-824b-79d95b8039b3/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d963595c-dd6f-4614-95d3-4aeef0aa3372/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d963595c-dd6f-4614-95d3-4aeef0aa3372/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d963595c-dd6f-4614-95d3-4aeef0aa3372/> ;
-	rdfs:label "Processor execution getStatus_input (facade0:EBI_InterproScan_NewServices:Status:invocation28:facade6:Workflow16:getStatus_input)" ;
-	prov:endedAtTime "2013-05-31T11:21:20.851+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx76 ;
-	prov:qualifiedUsage _:node17rt1p9vpx77 ;
-	prov:startedAtTime "2013-05-31T11:21:20.826+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> .
-
-_:node17rt1p9vpx76 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/> .
-
-_:node17rt1p9vpx77 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/94d65aea-ed02-488c-aa38-d3b9840e4b65> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/in/jobId> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/3792ebd6-6210-4af9-bc3f-74e3934a52ef> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d963595c-dd6f-4614-95d3-4aeef0aa3372/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx78 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d963595c-dd6f-4614-95d3-4aeef0aa3372/> .
-
-_:node17rt1p9vpx78 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/d963595c-dd6f-4614-95d3-4aeef0aa3372/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_input/out/output> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/234f29d3-f4a3-4607-b24f-175a2ddd57f1/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/234f29d3-f4a3-4607-b24f-175a2ddd57f1/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/3792ebd6-6210-4af9-bc3f-74e3934a52ef> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/234f29d3-f4a3-4607-b24f-175a2ddd57f1/> ;
-	rdfs:label "Processor execution getStatus (facade0:EBI_InterproScan_NewServices:Status:invocation28:facade6:Workflow16:getStatus)" ;
-	prov:endedAtTime "2013-05-31T11:21:22.978+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx79 ;
-	prov:qualifiedUsage _:node17rt1p9vpx80 ;
-	prov:startedAtTime "2013-05-31T11:21:20.867+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/3792ebd6-6210-4af9-bc3f-74e3934a52ef> .
-
-_:node17rt1p9vpx79 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/> .
-
-_:node17rt1p9vpx80 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/3792ebd6-6210-4af9-bc3f-74e3934a52ef> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/in/parameters> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/f7e2a950-6426-4e3f-b9f0-844bfae9ed96> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> , <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/234f29d3-f4a3-4607-b24f-175a2ddd57f1/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx81 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/234f29d3-f4a3-4607-b24f-175a2ddd57f1/> .
-
-_:node17rt1p9vpx81 a prov:Generation ;
-	prov:activity <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/234f29d3-f4a3-4607-b24f-175a2ddd57f1/> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus/out/parameters> .
-
-<http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/cf3c14d7-7090-4cef-b274-fb2b926f583b/> dcterms:hasPart <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/cf3c14d7-7090-4cef-b274-fb2b926f583b/> ;
-	wfprov:describedByProcess <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> ;
-	wfprov:usedInput <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/f7e2a950-6426-4e3f-b9f0-844bfae9ed96> ;
-	wfprov:wasPartOfWorkflowRun <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/cf3c14d7-7090-4cef-b274-fb2b926f583b/> ;
-	rdfs:label "Processor execution getStatus_output (facade0:EBI_InterproScan_NewServices:Status:invocation28:facade6:Workflow16:getStatus_output)" ;
-	prov:endedAtTime "2013-05-31T11:21:23.022+01:00"^^xsd:dateTime ;
-	prov:qualifiedAssociation _:node17rt1p9vpx82 ;
-	prov:qualifiedUsage _:node17rt1p9vpx83 ;
-	prov:startedAtTime "2013-05-31T11:21:22.996+01:00"^^xsd:dateTime ;
-	prov:used <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/f7e2a950-6426-4e3f-b9f0-844bfae9ed96> .
-
-_:node17rt1p9vpx82 a prov:Association ;
-	prov:agent :taverna-engine ;
-	prov:hadPlan <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/> .
-
-_:node17rt1p9vpx83 a prov:Usage ;
-	prov:entity <http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/f7e2a950-6426-4e3f-b9f0-844bfae9ed96> ;
-	prov:hadRole <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/in/input> .
-
-<http://ns.taverna.org.uk/2011/data/33e28aa5-6445-45f7-b14c-e151e0295ea0/ref/7ceba67b-46e2-4c4b-9cec-e5f0e11c43e9> wfprov:describedByParameter <http://ns.taverna.org.uk/2010/workflowBundle/d129e8d7-9c02-4dae-9f8f-aeede867556a/workflow/Status/processor/getStatus_output/out/status> ;
-	wfprov:wasOutputFrom <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/cf3c14d7-7090-4cef-b274-fb2b926f583b/> ;
-	prov:qualifiedGeneration _:node17rt1p9vpx84 ;
-	prov:wasGeneratedBy <http://ns.taverna.org.uk/2011/run/33e28aa5-6445-45f7-b14c-e151e0295ea0/process/cf3c14d7-7090-4cef-b274-fb2b926f583b/> .
-
-_:node17rt1p9vpx84 a prov:Generation ;
-	pr

<TRUNCATED>

[07/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/dispatchlayers.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/dispatchlayers.t2flow b/taverna-scufl2-t2flow/src/test/resources/dispatchlayers.t2flow
deleted file mode 100644
index 0c10d59..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/dispatchlayers.t2flow
+++ /dev/null
@@ -1,153 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.3.0"><dataflow id="3805e4de-40e6-4052-a292-8adc6515618c" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>retries</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>retries</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>3</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>retries_custom</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>retries</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.13</backoffFactor>
-  <initialDelay>1337</initialDelay>
-  <maxDelay>7000</maxDelay>
-  <maxRetries>5</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>parallelise</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>parallelise</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>5</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>alternates</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>edit me!</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>edit me!</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap><map from="value" to="notValue" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>notValue</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script />
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>0</initialDelay>
-  <maxDelay>0</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>looping</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>looping</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.3&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;name&gt;value&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;name&gt;loop&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies /&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;script&gt;loop = "" + ! value.equals("fred"); &#xD;
-if ("true".matches(loop)) {&#xD;
-   Thread.sleep(500);&#xD;
-}&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="compareValue" value="fred" />
-    <property name="delay" value="0.5" />
-    <property name="comparePort" value="value" />
-    <property name="isFeedBack" value="false" />
-    <property name="comparison" value="EqualTo" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>looping_2</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>looping</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.3&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;name&gt;value&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;name&gt;loop&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies /&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;script&gt;loop = "" + ! value.equals("fred"); &#xD;
-if ("true".matches(loop)) {&#xD;
-   Thread.sleep(500);&#xD;
-}&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="compareValue" value="fred" />
-    <property name="comparePort" value="value" />
-    <property name="delay" value="0.5" />
-    <property name="comparison" value="EqualTo" />
-    <property name="isFeedBack" value="false" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks /><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>3805e4de-40e6-4052-a292-8adc6515618c</identification>
-      </annotationBean>
-      <date>2011-09-14 14:23:05.364 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/fasta_and_pscan.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/fasta_and_pscan.t2flow b/taverna-scufl2-t2flow/src/test/resources/fasta_and_pscan.t2flow
deleted file mode 100644
index 0dfcacb..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/fasta_and_pscan.t2flow
+++ /dev/null
@@ -1,101 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="a5b440ec-9bc1-4dc6-98b1-6c41fa17a21a" role="top"><name>Workflow1</name><inputPorts><port><name>ID</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>P15409</text>
-      </annotationBean>
-      <date>2013-07-25 10:20:45.653 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>sequence</name><annotations /></port><port><name>pscanOut</name><annotations /></port></outputPorts><processors><processor><name>Get_Protein_FASTA</name><inputPorts><port><name>id</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outputText</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="id" to="id" /></inputMap><outputMap><map from="outputText" to="outputText" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>id</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>outputText</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>if ((id == void) || (id == null) || id.equals("")) {
-	throw new RunTimeException("port id must have a non-empty value");
-}
-
-URL url = new URL ("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?rettype=fasta&amp;db=protein&amp;retmode=text&amp;id=" + id);
-
-BufferedReader reader = new BufferedReader (new InputStreamReader(url.openStream()));
-StringWriter writer = new StringWriter();
-
-char[] buffer = new char[1024];
-    while (true) {
-        int r = reader.read(buffer);
-        if (r &lt;= 0) {
-            break;
-        }
-        writer.write(buffer, 0, r);
-    }
-reader.close();
-outputText = writer.toString();
-</script>
-  <dependencies />
-  <localworkerName>net.sourceforge.taverna.scuflworkers.ncbi.ProteinFastaWorker</localworkerName>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="id" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>pscan</name><inputPorts><port><name>sequence_direct_data</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outfile</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>soaplab-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.soaplab.SoaplabActivity</class><in
 putMap><map from="sequence_direct_data" to="sequence_direct_data" /></inputMap><outputMap><map from="outfile" to="outfile" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean xmlns="">
-  <endpoint>http://wsembnet.vital-it.ch/soaplab2/services/protein_motifs.pscan</endpoint>
-  <pollingInterval>0</pollingInterval>
-  <pollingBackoff>1.0</pollingBackoff>
-  <pollingIntervalMax>0</pollingIntervalMax>
-</net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="sequence_direct_data" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Get_Protein_FASTA</processor><port>id</port></sink><source type="dataflow"><port>ID</port></source></datalink><datalink><sink type="processor"><processor>pscan</processor><port>sequence_direct_data</port></sink><source type="processor"><processor>Get_Protein_FASTA</processor><port>outputText</port></source></datalink><datalink><sink type="dataflo
 w"><port>sequence</port></sink><source type="processor"><processor>Get_Protein_FASTA</processor><port>outputText</port></source></datalink><datalink><sink type="dataflow"><port>pscanOut</port></sink><source type="processor"><processor>pscan</processor><port>outfile</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ce96163a-d930-4e1a-b000-a35b847ef7b4</identification>
-      </annotationBean>
-      <date>2013-07-25 10:20:51.37 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>a5b440ec-9bc1-4dc6-98b1-6c41fa17a21a</identification>
-      </annotationBean>
-      <date>2013-07-25 10:24:17.837 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/fasta_pscan_and_dbfetch.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/fasta_pscan_and_dbfetch.t2flow b/taverna-scufl2-t2flow/src/test/resources/fasta_pscan_and_dbfetch.t2flow
deleted file mode 100644
index 83f1404..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/fasta_pscan_and_dbfetch.t2flow
+++ /dev/null
@@ -1,150 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="1c78b8e1-9700-43a5-9452-20a77aecfe46" role="top"><name>Workflow1</name><inputPorts><port><name>ID</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>P15409</text>
-      </annotationBean>
-      <date>2013-07-25 10:20:45.653 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>sequence</name><annotations /></port><port><name>pscanOut</name><annotations /></port><port><name>dbfetch_responseBody</name><annotations /></port></outputPorts><processors><processor><name>Get_Protein_FASTA</name><inputPorts><port><name>id</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outputText</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="id" to="id" /></inputMap><outputMap><map from="outputText" to="outputText" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>id</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>outputText</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>if ((id == void) || (id == null) || id.equals("")) {
-	throw new RunTimeException("port id must have a non-empty value");
-}
-
-URL url = new URL ("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?rettype=fasta&amp;db=protein&amp;retmode=text&amp;id=" + id);
-
-BufferedReader reader = new BufferedReader (new InputStreamReader(url.openStream()));
-StringWriter writer = new StringWriter();
-
-char[] buffer = new char[1024];
-    while (true) {
-        int r = reader.read(buffer);
-        if (r &lt;= 0) {
-            break;
-        }
-        writer.write(buffer, 0, r);
-    }
-reader.close();
-outputText = writer.toString();
-</script>
-  <dependencies />
-  <localworkerName>net.sourceforge.taverna.scuflworkers.ncbi.ProteinFastaWorker</localworkerName>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="id" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>pscan</name><inputPorts><port><name>sequence_direct_data</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outfile</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>soaplab-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.soaplab.SoaplabActivity</class><in
 putMap><map from="sequence_direct_data" to="sequence_direct_data" /></inputMap><outputMap><map from="outfile" to="outfile" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean xmlns="">
-  <endpoint>http://wsembnet.vital-it.ch/soaplab2/services/protein_motifs.pscan</endpoint>
-  <pollingInterval>0</pollingInterval>
-  <pollingBackoff>1.0</pollingBackoff>
-  <pollingIntervalMax>0</pollingIntervalMax>
-</net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="sequence_direct_data" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>dbfetch</name><inputPorts><port><name>id</name><depth>0</depth></port><port><name>db</name><depth>0</depth></port></inputPorts><outputPorts><port><name>responseBody</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>rest-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.
 t2.activities.rest.RESTActivity</class><inputMap><map from="id" to="id" /><map from="db" to="db" /></inputMap><outputMap><map from="responseBody" to="responseBody" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean xmlns="">
-  <httpMethod>GET</httpMethod>
-  <urlSignature>http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/{db}/{id}</urlSignature>
-  <acceptsHeaderValue>text/html</acceptsHeaderValue>
-  <contentTypeForUpdates>application/xml</contentTypeForUpdates>
-  <outgoingDataFormat>String</outgoingDataFormat>
-  <sendHTTPExpectRequestHeader>false</sendHTTPExpectRequestHeader>
-  <showRedirectionOutputPort>false</showRedirectionOutputPort>
-  <showActualUrlPort>false</showActualUrlPort>
-  <showResponseHeadersPort>false</showResponseHeadersPort>
-  <escapeParameters>true</escapeParameters>
-  <otherHTTPHeaders />
-  <activityInputs>
-    <entry>
-      <string>id</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-    <entry>
-      <string>db</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-  </activityInputs>
-</net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="id" depth="0" /><port name="db" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>db_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><ma
 p from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>uniprotkb</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Get_Protein_FASTA</processor><port>id</port></sink><source type="dataflow"><port>ID</port></source></datalink><datalink><sink type="processor"><processor>pscan</processor><port>sequence_direct_data</port></sink><source type="processor"><processor>Get_Protein_FASTA</processor><port>outputText</port></source></datalink><datalink><sink type="processor"><processor>dbfetch</processor><port>id</port></sink><source type="
 dataflow"><port>ID</port></source></datalink><datalink><sink type="processor"><processor>dbfetch</processor><port>db</port></sink><source type="processor"><processor>db_value</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>sequence</port></sink><source type="processor"><processor>Get_Protein_FASTA</processor><port>outputText</port></source></datalink><datalink><sink type="dataflow"><port>pscanOut</port></sink><source type="processor"><processor>pscan</processor><port>outfile</port></source></datalink><datalink><sink type="dataflow"><port>dbfetch_responseBody</port></sink><source type="processor"><processor>dbfetch</processor><port>responseBody</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ce96163a-d930-4e1a-b000-a35b847ef7b4</identification>
-      </annotationBean>
-      <date>2013-07-25 10:20:51.37 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>1c78b8e1-9700-43a5-9452-20a77aecfe46</identification>
-      </annotationBean>
-      <date>2013-07-25 10:27:47.55 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>a5b440ec-9bc1-4dc6-98b1-6c41fa17a21a</identification>
-      </annotationBean>
-      <date>2013-07-25 10:24:17.837 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/interaction-with-strange-loop.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/interaction-with-strange-loop.t2flow b/taverna-scufl2-t2flow/src/test/resources/interaction-with-strange-loop.t2flow
deleted file mode 100644
index 39c2d0c..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/interaction-with-strange-loop.t2flow
+++ /dev/null
@@ -1,212 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="185649fa-f9da-48a2-8941-dc6354091db4" role="top"><name>Workflow74</name><inputPorts><port><name>flag</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>mask_id</name><annotations /></port><port><name>created</name><annotations /></port></outputPorts><processors><processor><name>BioSTIFInteraction</name><inputPorts /><outputPorts><port><name>maskID</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>interaction-activity</artifact><version>1.0.0</version></raven><class>net.sf.taverna.t2.activities.interaction.InteractionActivity</class><inputMap /><outputMap><map from="maskID" to="maskID" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.interaction.InteractionActivityConfi
 gurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>dataURI</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>contentType</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>label</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>layer</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>sourceURIs</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>sourceCopyURIs</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>resultURIs</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>maskID</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <presentationOrigin>http://biovel.iais.fraunhofer.de/biostif/interaction.debug.jsp</presentationOrigin>
-  <interactionActivityType>LocallyPresentedHtml</interactionActivityType>
-  <progressNotification>false</progressNotification>
-</net.sf.taverna.t2.activities.interaction.InteractionActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <properties />
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>created</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="x
 stream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>1</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="dataflow"><port>mask_id</port></sink><source type="processor"><processor>BioSTIFInteraction</processor><port>maskID</port></source></datalink><datalink><sink type="dataflow"><port>created</port></sink><source type="processor"><processor>created</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>dc87f7e5-6333-499d-9b33-7d1ca0b7b1b9</identification>
-      </annotationBean>
-      <date>2012-12-19 13:13:08.837 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>b529d630-93fa-4381-bc15-22c706a40564</identification>
-      </annotationBean>
-      <date>2012-12-19 13:12:19.329 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>28c20604-adbb-40a0-b22c-b901894a06ab</identification>
-      </annotationBean>
-      <date>2012-12-07 18:06:36.700 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>c85532d6-3fad-4a55-acc0-53e1785c3396</identification>
-      </annotationBean>
-      <date>2012-12-07 19:09:14.619 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>4acb2e1a-3d6d-4c6d-ae3d-8bd02f3083f9</identification>
-      </annotationBean>
-      <date>2012-12-07 17:48:04.813 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>e86b8475-20a4-4c99-a719-e55cfee24de7</identification>
-      </annotationBean>
-      <date>2012-12-07 19:18:34.1 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ff7441b8-050c-4ace-a306-19f8d65d3d05</identification>
-      </annotationBean>
-      <date>2012-12-07 19:10:12.606 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>185649fa-f9da-48a2-8941-dc6354091db4</identification>
-      </annotationBean>
-      <date>2012-12-19 18:03:16.733 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>1192812b-ff79-42ac-a88d-25e2e9522298</identification>
-      </annotationBean>
-      <date>2012-12-07 19:42:21.20 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>78a253fd-4c6f-4c2e-bf00-4d31f1b84ce0</identification>
-      </annotationBean>
-      <date>2012-12-07 17:51:52.894 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>82d3bff2-13c4-4c98-be7e-0588dd612cdd</identification>
-      </annotationBean>
-      <date>2012-12-07 19:12:35.324 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/interaction_multiple_choice.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/interaction_multiple_choice.t2flow b/taverna-scufl2-t2flow/src/test/resources/interaction_multiple_choice.t2flow
deleted file mode 100644
index e41c969..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/interaction_multiple_choice.t2flow
+++ /dev/null
@@ -1,109 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-biodiversity-2.5.0"><dataflow id="da58acd5-937d-419d-aaf4-79ade8491adf" role="top"><name>Workflow3</name><inputPorts /><outputPorts><port><name>answers</name><lastPredictedDepth>1</lastPredictedDepth><annotations /></port></outputPorts><processors><processor><name>Interaction</name><inputPorts><port><name>selectionValues</name><depth>1</depth></port></inputPorts><outputPorts><port><name>answers</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>interaction-activity</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.activities.interaction.InteractionActivity</class><inputMap><map from="selectionValues" to="selectionValues" /></inputMap><outputMap><map from="answers" to="answers" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.interaction.
 InteractionActivityConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>selectionValues</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>answers</name>
-      <depth>1</depth>
-      <mimeTypes />
-      <granularDepth>1</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <presentationOrigin>http://build.mygrid.org.uk/taverna/internal/biovel/multiple_selection.html</presentationOrigin>
-  <interactionActivityType>LocallyPresentedHtml</interactionActivityType>
-  <progressNotification>false</progressNotification>
-</net.sf.taverna.t2.activities.interaction.InteractionActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="selectionValues" depth="1" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Split_string_into_string_list_by_regular_expression</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.5</version></raven><class>net.sf.taverna.t
 2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>string</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>regex</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>split</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-      <granularDepth>1</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>List split = new ArrayList();
-if (!string.equals("")) {
-	String regexString = ",";
-	if (regex != void) {
-		regexString = regex;
-	}
-	String[] result = string.split(regexString);
-	for (int i = 0; i &lt; result.length; i++) {
-		split.add(result[i]);
-	}
-}
-</script>
-  <dependencies />
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>string_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="v
 alue" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>a,b,c,d</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Interaction</processor><port>selectionValues</port></sink><source type="processor"><processor>Split_string_into_string_list_by_regular_expression</processor><port>split</port></source></datalink><datalink><sink type="processor"><processor>Split_string_into_string_list_by_regular_expression</processor><port>string</port></sink><source type="processor"><processor>string_value</processor><port>value</port></source></d
 atalink><datalink><sink type="dataflow"><port>answers</port></sink><source type="processor"><processor>Interaction</processor><port>answers</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>da58acd5-937d-419d-aaf4-79ade8491adf</identification>
-      </annotationBean>
-      <date>2014-06-23 09:58:44.268 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file


[35/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/combine/DirectoryMadness.omex
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/combine/DirectoryMadness.omex b/taverna-robundle/src/test/resources/combine/DirectoryMadness.omex
deleted file mode 100644
index 4721646..0000000
Binary files a/taverna-robundle/src/test/resources/combine/DirectoryMadness.omex and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/combine/DirectoryMadnessZipped.omex
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/combine/DirectoryMadnessZipped.omex b/taverna-robundle/src/test/resources/combine/DirectoryMadnessZipped.omex
deleted file mode 100644
index 3fff30c..0000000
Binary files a/taverna-robundle/src/test/resources/combine/DirectoryMadnessZipped.omex and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/combine/aslanidi_purkinje_model_2009.zip
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/combine/aslanidi_purkinje_model_2009.zip b/taverna-robundle/src/test/resources/combine/aslanidi_purkinje_model_2009.zip
deleted file mode 100644
index 0ccb776..0000000
Binary files a/taverna-robundle/src/test/resources/combine/aslanidi_purkinje_model_2009.zip and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/document.odt
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/document.odt b/taverna-robundle/src/test/resources/document.odt
deleted file mode 100644
index 6dc7126..0000000
Binary files a/taverna-robundle/src/test/resources/document.odt and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/helloworld.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/helloworld.wfbundle b/taverna-robundle/src/test/resources/helloworld.wfbundle
deleted file mode 100644
index ed4cd76..0000000
Binary files a/taverna-robundle/src/test/resources/helloworld.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/manifest.json
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/manifest.json b/taverna-robundle/src/test/resources/manifest.json
deleted file mode 100644
index 65b57b0..0000000
--- a/taverna-robundle/src/test/resources/manifest.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "@context":  [
-        "https://w3id.org/bundle/context"
-    ],
-    "id": "/",
-    "manifest":  "manifest.json",
-    "createdOn": "2013-03-05T17:29:03Z",
-    "createdBy": {
-        "uri":     "http://example.com/foaf#alice",
-        "orcid":   "http://orcid.org/0000-0002-1825-0097",
-        "name":    "Alice W. Land" },
-    "history":   "evolution.ttl",
-    "aggregates": [
-       { "uri":  "/folder/soup.jpeg" },
-       { "uri":  "http://example.com/blog/" },
-       { "uri":      "/README.txt",
-         "mediatype": "text/plain",
-         "createdBy": {
-             "uri":     "http://example.com/foaf#bob",
-             "name":    "Bob Builder" },
-         "createdOn": "2013-02-12T19:37:32.939Z" },
-       { "uri":    "http://example.com/comments.txt",
-         "bundledAs": {
-            "uri":    "urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644",
-            "folder":   "/folder/",
-            "filename": "external.txt" }
-       }
-    ],
-    "annotations": [
-      { "uri":     "urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf",
-        "about":   "/folder/soup.jpeg",
-        "content": "annotations/soup-properties.ttl" },
-
-      { "about":   "urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644",
-        "content": "http://example.com/blog/they-aggregated-our-file" },
-
-      { "about":   [ "/", "urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf" ],
-        "content": "annotations/a-meta-annotation-in-this-ro.txt" }
-    ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/motifAnalysis.zip
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/motifAnalysis.zip b/taverna-robundle/src/test/resources/motifAnalysis.zip
deleted file mode 100644
index 66b59f2..0000000
Binary files a/taverna-robundle/src/test/resources/motifAnalysis.zip and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/win8.url
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/win8.url b/taverna-robundle/src/test/resources/win8.url
deleted file mode 100644
index 4fbc727..0000000
--- a/taverna-robundle/src/test/resources/win8.url
+++ /dev/null
@@ -1,5 +0,0 @@
-[{000214A0-0000-0000-C000-000000000046}]
-Prop3=19,2
-[InternetShortcut]
-IDList=
-URL=http://example.com/made-in-windows-8

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/workflowrun.bundle.zip
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/workflowrun.bundle.zip b/taverna-robundle/src/test/resources/workflowrun.bundle.zip
deleted file mode 100644
index 00b4aec..0000000
Binary files a/taverna-robundle/src/test/resources/workflowrun.bundle.zip and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-annotation/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-annotation/pom.xml b/taverna-scufl2-annotation/pom.xml
deleted file mode 100644
index 5e25ff0..0000000
--- a/taverna-scufl2-annotation/pom.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-annotation</artifactId>
-	<name>Apache Taverna Scufl 2 annotations</name>
-	<description>Convenience methods for working with SCUFL2 annotations</description>
-	<dependencies>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-api</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-t2flow</artifactId>
-			<version>${project.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.jena</groupId>
-			<artifactId>jena-arq</artifactId>
-      <version>${jena.version}</version>
-		</dependency>
-	</dependencies>
-		<build>
-	<plugins>
-	            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-                 <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-            
-            </plugins>
-            </build>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-annotation/src/main/java/org/apache/taverna/scufl2/annotation/AnnotationTools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-annotation/src/main/java/org/apache/taverna/scufl2/annotation/AnnotationTools.java b/taverna-scufl2-annotation/src/main/java/org/apache/taverna/scufl2/annotation/AnnotationTools.java
deleted file mode 100644
index ef169c3..0000000
--- a/taverna-scufl2-annotation/src/main/java/org/apache/taverna/scufl2/annotation/AnnotationTools.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package org.apache.taverna.scufl2.annotation;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.Iterator;
-import java.util.logging.Logger;
-
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.riot.RDFLanguages;
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage.ResourceEntry;
-
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.NodeFactory;
-import com.hp.hpl.jena.query.Dataset;
-import com.hp.hpl.jena.query.DatasetFactory;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.sparql.core.Quad;
-
-public class AnnotationTools {
-	private static final String EXAMPLE_DATA_PREDICATE = "http://biocatalogue.org/attribute/exampleData";
-	public static final URI EXAMPLE_DATA = URI.create(EXAMPLE_DATA_PREDICATE);
-	private static final String TITLE_PREDICATE = "http://purl.org/dc/terms/title";
-	public static final URI TITLE = URI.create(TITLE_PREDICATE);
-	private static final String DESCRIPTION_PREDICATE = "http://purl.org/dc/terms/description";
-	public static final URI DESCRIPTION = URI.create(DESCRIPTION_PREDICATE);
-	private static final String CREATOR_PREDICATE = "http://purl.org/dc/elements/1.1/creator";
-	public static final URI CREATOR = URI.create(CREATOR_PREDICATE);
-
-	private static Logger logger = Logger.getLogger(AnnotationTools.class
-			.getCanonicalName());
-
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private URITools uritools = new URITools();
-
-	public Dataset annotationDatasetFor(Child<?> workflowBean) {
-		Dataset dataset = DatasetFactory.createMem();
-		for (Annotation ann : scufl2Tools.annotationsFor(workflowBean)) {
-			WorkflowBundle bundle = ann.getParent();
-			URI annUri = uritools.uriForBean(ann);
-			String bodyUri = bundle.getGlobalBaseURI().resolve(ann.getBody())
-					.toASCIIString();
-
-			if (ann.getBody().isAbsolute()) {
-				logger.info("Skipping absolute annotation body URI: "
-						+ ann.getBody());
-				// TODO: Optional loading of external annotation bodies
-				continue;
-			}
-			String path = ann.getBody().getPath();
-
-			ResourceEntry resourceEntry = bundle.getResources()
-					.getResourceEntry(path);
-			if (resourceEntry == null) {
-				logger.warning("Can't find annotation body: " + path);
-				continue;
-			}
-			String contentType = resourceEntry.getMediaType();
-			Lang lang = RDFLanguages.contentTypeToLang(contentType);
-			if (lang == null) {
-				lang = RDFLanguages.filenameToLang(path);
-			}
-			if (lang == null) {
-				logger.warning("Can't find media type of annotation body: "
-						+ ann.getBody());
-				continue;
-			}
-			Model model = ModelFactory.createDefaultModel();
-			try (InputStream inStream = bundle.getResources()
-					.getResourceAsInputStream(path)) {
-				RDFDataMgr.read(model, inStream, bodyUri, lang);
-			} catch (IOException e) {
-				logger.warning("Can't read annotation body: " + path);
-				continue;
-			}
-			dataset.addNamedModel(annUri.toString(), model);
-		}
-
-		return dataset;
-	}
-
-	public String getTitle(Child<?> workflowBean) {
-		return getLiteral(workflowBean, TITLE_PREDICATE);
-	}
-
-	private String getLiteral(Child<?> workflowBean, String propertyUri) {
-		Dataset annotations = annotationDatasetFor(workflowBean);
-		URI beanUri = uritools.uriForBean(workflowBean);
-		Node subject = NodeFactory.createURI(beanUri.toString());
-		Node property = NodeFactory.createURI(propertyUri);
-
-		Iterator<Quad> found = annotations.asDatasetGraph().find(null, subject,
-				property, null);
-		if (!found.hasNext()) {
-			return null;
-		}
-		return found.next().getObject().toString(false);
-	}
-
-	public String getCreator(Child<?> workflowBean) {
-		return getLiteral(workflowBean, CREATOR_PREDICATE);
-	}
-
-	public String getExampleValue(Child<?> workflowBean) {
-		return getLiteral(workflowBean, EXAMPLE_DATA_PREDICATE);
-	}
-
-	public String getDescription(Child<?> workflowBean) {
-		return getLiteral(workflowBean, DESCRIPTION_PREDICATE);
-	}
-
-	/**
-	 * Create a new annotation attached to the given 
-	 * @param workflowBundle
-	 * @param subject
-	 * @param predicate
-	 * @param value
-	 * @return
-	 * @throws IOException
-	 */
-	public Annotation createNewAnnotation(WorkflowBundle workflowBundle,
-			Child<?> subject, URI predicate, String value) throws IOException {
-		Object parent = subject.getParent();
-		while (parent instanceof Child)
-			parent = ((Child<?>) parent).getParent();
-		if (parent != workflowBundle)
-			throw new IllegalStateException(
-					"annotations can only be added to bundles that their subjects are already a member of");
-		if (predicate == null)
-			throw new IllegalArgumentException(
-					"annotation predicate must be non-null");
-		if (value == null)
-			throw new IllegalArgumentException(
-					"annotation value must be non-null");
-		
-		// Add the annotation
-		Annotation annotation = new Annotation();
-		Calendar now = new GregorianCalendar();
-		annotation.setParent(workflowBundle);
-
-		String path = "annotation/" + annotation.getName() + ".ttl";
-		URI bodyURI = URI.create(path);
-
-		annotation.setTarget(subject);
-		annotation.setAnnotatedAt(now);
-		// annotation.setAnnotator();//FIXME
-		annotation.setSerializedAt(now);
-		URI annotatedSubject = uritools.relativeUriForBean(subject, annotation);
-		StringBuilder turtle = new StringBuilder();
-		turtle.append("<");
-		turtle.append(annotatedSubject.toASCIIString());
-		turtle.append("> ");
-
-		turtle.append("<");
-		turtle.append(predicate.toASCIIString());
-		turtle.append("> ");
-
-		// A potentially multi-line string
-		turtle.append("\"\"\"");
-		// Escape existing \ to \\
-		String escaped = value.replace("\\", "\\\\");
-		// Escape existing " to \" (beware Java's escaping of \ and " below)
-		escaped = escaped.replace("\"", "\\\"");
-		turtle.append(escaped);
-		turtle.append("\"\"\"");
-		turtle.append(" .");
-		try {
-			workflowBundle.getResources().addResource(turtle.toString(), path,
-					"text/turtle");
-		} catch (IOException e) {
-			workflowBundle.getAnnotations().remove(annotation);
-			throw e;
-		}
-        annotation.setBody(bodyURI);
-        return annotation;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-annotation/src/test/java/org/apache/taverna/scufl2/annotation/TestAnnotationTools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-annotation/src/test/java/org/apache/taverna/scufl2/annotation/TestAnnotationTools.java b/taverna-scufl2-annotation/src/test/java/org/apache/taverna/scufl2/annotation/TestAnnotationTools.java
deleted file mode 100644
index ef5dd94..0000000
--- a/taverna-scufl2-annotation/src/test/java/org/apache/taverna/scufl2/annotation/TestAnnotationTools.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package org.apache.taverna.scufl2.annotation;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.apache.taverna.scufl2.annotation.AnnotationTools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.hp.hpl.jena.query.Dataset;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-import com.hp.hpl.jena.query.QuerySolution;
-import com.hp.hpl.jena.query.ResultSet;
-
-
-public class TestAnnotationTools {
-
-	WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-	WorkflowBundle helloanyone;
-	AnnotationTools annotations = new AnnotationTools();
-	private WorkflowBundle component;
-	
-	@Before
-	public void loadHelloAnyone() throws ReaderException, IOException {
-		URL url = getClass().getResource("/helloanyone.t2flow");
-		assertNotNull(url);
-		helloanyone = bundleIO.readBundle(url, null);
-	}
-	
-	@Before
-	public void loadComponent() throws ReaderException, IOException {
-		URL url = getClass().getResource("/valid_component_imagemagickconvert.t2flow");
-		assertNotNull(url);
-		component = bundleIO.readBundle(url, null);
-	}
-	
-	
-	@Test
-	public void getTitle() {
-		assertEquals("Hello Anyone", annotations.getTitle(helloanyone.getMainWorkflow()));
-	}
-	
-	@Test
-	public void getCreator() {
-		assertEquals("Stian Soiland-Reyes", annotations.getCreator(helloanyone.getMainWorkflow()));
-	}
-
-	
-	@Test
-	public void getDescription() {
-		InputWorkflowPort name = helloanyone.getMainWorkflow().getInputPorts().getByName("name");
-		String desc = annotations.getDescription(name);
-		assertEquals("Your name for the greeting", desc);
-	}
-	
-	@Test
-	public void getExample() throws Exception {
-		InputWorkflowPort name = helloanyone.getMainWorkflow().getInputPorts().getByName("name");
-		String example = annotations.getExampleValue(name);
-		assertEquals("World!", example);	
-	}
-	
-	@Test
-	public void componentStuff() throws Exception {
-		Dataset dataset = annotations.annotationDatasetFor(component.getMainWorkflow());
-		String query = "PREFIX comp: <http://purl.org/DP/components#> "
-				+ "SELECT ?fits ?from ?to WHERE { "
-				+ " GRAPH ?any { "
-				+ "?w comp:fits ?fits ; "
-				+ "   comp:migrates ?path . "
-				+ "?path comp:fromMimetype ?from ; "
-				+ "      comp:toMimetype ?to . "
-				+ "  }"
-				+ "}";
-		
-		ResultSet select = QueryExecutionFactory.create(query, dataset).execSelect();
-		assertTrue(select.hasNext());
-		QuerySolution solution = select.next();
-		assertEquals("image/tiff", solution.getLiteral("from").toString());
-		assertEquals("image/tiff", solution.getLiteral("to").toString());
-		assertEquals("MigrationAction", solution.getResource("fits").getLocalName());
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-annotation/src/test/resources/helloanyone.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-annotation/src/test/resources/helloanyone.t2flow b/taverna-scufl2-annotation/src/test/resources/helloanyone.t2flow
deleted file mode 100644
index 9fb9f52..0000000
--- a/taverna-scufl2-annotation/src/test/resources/helloanyone.t2flow
+++ /dev/null
@@ -1,195 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="01348671-5aaa-4cc2-84cc-477329b70b0d" role="top"><name>Hello_Anyone</name><inputPorts><port><name>name</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>World!</text>
-      </annotationBean>
-      <date>2012-01-03 15:13:04.106 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Your name for the greeting</text>
-      </annotationBean>
-      <date>2012-01-03 15:13:12.530 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>greeting</name><annotations /></port></outputPorts><processors><processor><name>hello</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Hello, </value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Concatenate_two_strings</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivi
 ty</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string1" depth="0" /><port name="string2" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>hello</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="dataflow"><port>name</port></source></datalink><datalin
 k><sink type="dataflow"><port>greeting</port></sink><source type="processor"><processor>Concatenate_two_strings</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8781d5f4-d0ba-48a8-a1d1-14281bd8a917</identification>
-      </annotationBean>
-      <date>2012-01-03 15:12:21.684 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ca7dba1d-1fdf-476f-b911-714d09227d70</identification>
-      </annotationBean>
-      <date>2012-01-03 15:14:18.734 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Stian Soiland-Reyes</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:48.73 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello Anyone</text>
-      </annotationBean>
-      <date>2012-01-03 15:14:25.703 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello World</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:54.167 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible, outputting the String Constant "Hello world!"</text>
-      </annotationBean>
-      <date>2012-01-03 15:11:14.557 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>An extension to helloworld.t2flow - this workflow takes a workflow input "name" which is combined with the string constant "Hello, " using the local worker "Concatenate two strings", and outputs the produced string to the workflow output "greeting".</text>
-      </annotationBean>
-      <date>2012-01-03 15:14:13.847 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible. No workflow input ports, a single workflow output port "greeting",  outputting "Hello, world!" as produced by the String Constant "hello".</text>
-      </annotationBean>
-      <date>2012-01-03 15:12:15.643 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>01348671-5aaa-4cc2-84cc-477329b70b0d</identification>
-      </annotationBean>
-      <date>2012-01-03 15:14:30.45 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-annotation/src/test/resources/valid_component_imagemagickconvert.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-annotation/src/test/resources/valid_component_imagemagickconvert.t2flow b/taverna-scufl2-annotation/src/test/resources/valid_component_imagemagickconvert.t2flow
deleted file mode 100644
index 89489cf..0000000
--- a/taverna-scufl2-annotation/src/test/resources/valid_component_imagemagickconvert.t2flow
+++ /dev/null
@@ -1,394 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="8d2f9ef0-09ca-4103-b4fd-0ee0a40d8263" role="top"><name>Imagemagick_convert_</name><inputPorts><port><name>from_uri</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>in.tiff</text>
-      </annotationBean>
-      <date>2013-03-06 15:58:34.431 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>URI to the input object</text>
-      </annotationBean>
-      <date>2013-03-06 15:58:35.192 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-        <mimeType>text/rdf+n3</mimeType>
-        <content>&lt;&gt;    &lt;http://purl.org/DP/components#portType&gt;
-              &lt;http://purl.org/DP/components#FromURIPort&gt; .
-</content>
-      </annotationBean>
-      <date>2013-03-06 15:36:17.856 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></port><port><name>to_uri</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>out.tiff</text>
-      </annotationBean>
-      <date>2013-03-06 15:58:28.756 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-        <mimeType>text/rdf+n3</mimeType>
-        <content>&lt;&gt;    &lt;http://purl.org/DP/components#portType&gt;
-              &lt;http://purl.org/DP/components#ToURIPort&gt; .
-</content>
-      </annotationBean>
-      <date>2013-03-06 15:36:10.390 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>URI to the input object</text>
-      </annotationBean>
-      <date>2013-03-06 15:58:27.713 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>compression</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-        <mimeType>text/rdf+n3</mimeType>
-        <content>&lt;&gt;    &lt;http://purl.org/DP/components#acceptsPredefinedParameter&gt;
-              [ a &lt;http://purl.org/DP/components#PredefinedParameter&gt; ;
-                &lt;http://purl.org/DP/components#parameterValue&gt;
-                        "none" ;
-                &lt;http://purl.org/DP/components#parameterDescription&gt;
-                        "no compression"
-              ] .
-
-              &lt;&gt;    &lt;http://purl.org/DP/components#acceptsPredefinedParameter&gt;
-              [ a &lt;http://purl.org/DP/components#PredefinedParameter&gt; ;
-                &lt;http://purl.org/DP/components#parameterValue&gt;
-                        "Group4" ;
-                &lt;http://purl.org/DP/components#parameterDescription&gt;
-                        "CCITT Group 4"
-              ] .
-
-              &lt;&gt;    &lt;http://purl.org/DP/components#acceptsPredefinedParameter&gt;
-              [ a &lt;http://purl.org/DP/components#PredefinedParameter&gt; ;
-                &lt;http://purl.org/DP/components#parameterValue&gt;
-                        "RLE" ;
-                &lt;http://purl.org/DP/components#parameterDescription&gt;
-                        "run length encoding"
-              ] .
-</content>
-      </annotationBean>
-      <date>2013-03-06 16:09:38.742 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Imagemagick convert compress parameter</text>
-      </annotationBean>
-      <date>2013-03-06 15:57:39.167 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>none</text>
-      </annotationBean>
-      <date>2013-03-06 15:57:42.109 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>status</name><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>STDOUT and STDERR of the action</text>
-      </annotationBean>
-      <date>2013-03-06 15:59:16.363 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-        <mimeType>text/rdf+n3</mimeType>
-        <content>&lt;&gt;    &lt;http://purl.org/DP/components#portType&gt;
-              &lt;http://purl.org/DP/components#ActionStatusPort&gt; .
-</content>
-      </annotationBean>
-      <date>2013-03-06 15:35:48.882 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></port></outputPorts><processors><processor><name>convert</name><inputPorts><port><name>from_uri</name><depth>0</depth></port><port><name>to_uri</name><depth>0</depth></port><port><name>compression</name><depth>0</depth></port></inputPorts><outputPorts><port><name>STDOUT</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>STDERR</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-        <mimeType>text/rdf+n3</mimeType>
-        <content>&lt;&gt;    &lt;http://purl.org/DP/components#hasDependency&gt;
-              &lt;http://scape.keep.pt/vocab/dependencies#digital-preservation-migration-image-imagemagick-image2tiff&gt; .
-</content>
-      </annotationBean>
-      <date>2013-03-06 19:59:47.611 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>external-tool-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.externaltool.ExternalToolActivity</class><inputMap><map from="to_uri" to="to_uri" /><map from="compression" to="compression" /><map from="from_uri" to="from_uri" /></inputMap><outputMap><map from="STDERR" to="STDERR" /><map from="STDOUT" to="STDOUT" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean xmlns="">
-  <mechanismType>789663B8-DA91-428A-9F7D-B3F3DA185FD4</mechanismType>
-  <mechanismName>default local</mechanismName>
-  <mechanismXML>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#xD;
-&lt;localInvocation&gt;&lt;shellPrefix&gt;/bin/sh -c&lt;/shellPrefix&gt;&lt;linkCommand&gt;/bin/ln -s %%PATH_TO_ORIGINAL%% %%TARGET_NAME%%&lt;/linkCommand&gt;&lt;/localInvocation&gt;&#xD;
-</mechanismXML>
-  <externaltoolid>a69089e9-f0e9-4ca8-b151-3aa93621a97b</externaltoolid>
-  <useCaseDescription>
-    <usecaseid />
-    <description />
-    <command>convert -compress "%%compression%%" "%%from_uri%%" tiff:"%%to_uri%%"</command>
-    <preparingTimeoutInSeconds>1200</preparingTimeoutInSeconds>
-    <executionTimeoutInSeconds>1800</executionTimeoutInSeconds>
-    <tags>
-      <string>compression</string>
-      <string>from_uri</string>
-      <string>to_uri</string>
-    </tags>
-    <REs />
-    <queue__preferred />
-    <queue__deny />
-    <static__inputs />
-    <inputs>
-      <entry>
-        <string>to_uri</string>
-        <de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-          <tag>to_uri</tag>
-          <file>false</file>
-          <tempFile>false</tempFile>
-          <binary>false</binary>
-          <charsetName>UTF-8</charsetName>
-          <forceCopy>false</forceCopy>
-          <list>false</list>
-          <concatenate>false</concatenate>
-          <mime />
-        </de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-      </entry>
-      <entry>
-        <string>compression</string>
-        <de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-          <tag>compression</tag>
-          <file>false</file>
-          <tempFile>false</tempFile>
-          <binary>false</binary>
-          <charsetName>UTF-8</charsetName>
-          <forceCopy>false</forceCopy>
-          <list>false</list>
-          <concatenate>false</concatenate>
-          <mime />
-        </de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-      </entry>
-      <entry>
-        <string>from_uri</string>
-        <de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-          <tag>from_uri</tag>
-          <file>false</file>
-          <tempFile>false</tempFile>
-          <binary>false</binary>
-          <charsetName>UTF-8</charsetName>
-          <forceCopy>false</forceCopy>
-          <list>false</list>
-          <concatenate>false</concatenate>
-          <mime />
-        </de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-      </entry>
-    </inputs>
-    <outputs />
-    <includeStdIn>false</includeStdIn>
-    <includeStdOut>true</includeStdOut>
-    <includeStdErr>true</includeStdErr>
-    <validReturnCodes>
-      <int>0</int>
-    </validReturnCodes>
-  </useCaseDescription>
-  <edited>false</edited>
-</net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="from_uri" depth="0" /><port name="to_uri" depth="0" /><port name="compression" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>convert</processor><port>from_uri</port></sink><source type="dataflow"><port>from_uri</port></source></datalink><datalink><sink type="processor"><processor>convert</processor><port>to_uri</port></sink><source type="dataflow"><port>to_uri</port></source></datalink><datalink><sink type="proce
 ssor"><processor>convert</processor><port>compression</port></sink><source type="dataflow"><port>compression</port></source></datalink><datalink><sink type="merge"><port>status</port></sink><source type="processor"><processor>convert</processor><port>STDOUT</port></source></datalink><datalink><sink type="merge"><port>status</port></sink><source type="processor"><processor>convert</processor><port>STDERR</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8d2f9ef0-09ca-4103-b4fd-0ee0a40d8263</identification>
-      </annotationBean>
-      <date>2013-03-06 21:41:51.284 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-        <mimeType>text/rdf+n3</mimeType>
-        <content>&lt;&gt;    &lt;http://purl.org/DP/components#fits&gt;
-              &lt;http://purl.org/DP/components#MigrationAction&gt; .
-
-&lt;&gt;    &lt;http://purl.org/DP/components#migrates&gt;
-              [ a       &lt;http://purl.org/DP/components#MigrationPath&gt; ;
-                &lt;http://purl.org/DP/components#fromMimetype&gt;
-                        "image/tiff" ;
-                &lt;http://purl.org/DP/components#toMimetype&gt;
-                        "image/tiff"
-              ] .
-</content>
-      </annotationBean>
-      <date>2013-03-06 21:41:35.890 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Markus</text>
-      </annotationBean>
-      <date>2013-03-06 15:56:07.430 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>890bb055-628d-42ad-bcee-61077e3e763c</identification>
-      </annotationBean>
-      <date>2013-03-06 16:10:40.753 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Converts tiff to tiff using imagemagick convert with the provided compression</text>
-      </annotationBean>
-      <date>2013-03-06 15:56:46.924 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8c741630-ac74-42f2-827a-501fa7e53bd7</identification>
-      </annotationBean>
-      <date>2013-03-06 15:44:03.459 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>472b15c2-0b16-4ebd-b865-0c268d5f42b4</identification>
-      </annotationBean>
-      <date>2013-03-06 15:59:49.673 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>dfc4edbb-582f-4853-bb47-02b43abd82ee</identification>
-      </annotationBean>
-      <date>2013-03-06 15:49:55.477 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>49d15e90-99a8-4970-84b3-5d26d77a1a58</identification>
-      </annotationBean>
-      <date>2013-03-06 19:59:59.809 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>6190a4fa-5178-43cf-9b43-dbbc6476ee00</identification>
-      </annotationBean>
-      <date>2013-03-06 15:48:57.814 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>58fc3bb3-9020-4fe5-83db-19fa2e1017e1</identification>
-      </annotationBean>
-      <date>2013-03-06 15:48:25.73 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Imagemagick convert - tiff2tiff - compression</text>
-      </annotationBean>
-      <date>2013-03-06 15:56:22.628 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/.gitignore b/taverna-scufl2-api/.gitignore
deleted file mode 100644
index 054ea92..0000000
--- a/taverna-scufl2-api/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-target
-.settings
-.project

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/pom.xml b/taverna-scufl2-api/pom.xml
deleted file mode 100644
index d315341..0000000
--- a/taverna-scufl2-api/pom.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-api</artifactId>
-	<packaging>bundle</packaging>
-	<name>Apache Taverna Scufl 2 API</name>
-	<description>Taverna workflow language API</description>
-	<dependencies>
-		<dependency>
-			<groupId>commons-beanutils</groupId>
-			<artifactId>commons-beanutils</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-ucfpackage</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-                <dependency>
-                        <groupId>com.fasterxml.jackson.core</groupId>
-                        <artifactId>jackson-core</artifactId>
-                </dependency>
-                <dependency>
-                        <groupId>com.fasterxml.jackson.core</groupId>
-                        <artifactId>jackson-databind</artifactId>
-                </dependency>
-	</dependencies>
-  <build>
-    <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </plugin>
-                 <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-          </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.3.7</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-
-  </build>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/Activity.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/Activity.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/Activity.java
deleted file mode 100644
index 6d70d23..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/Activity.java
+++ /dev/null
@@ -1,270 +0,0 @@
-package org.apache.taverna.scufl2.api.activity;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Configurable;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Ported;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.Typed;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-/**
- * An Activity specifies a way of implementing a {@link Processor Processor}
- * within a {@link Workflow Workflow}.
- * <p>
- * When the Workflow is run, a particular Activity will be specified as bound to
- * the Processor and {@link Configuration Configuration} information will be
- * specified for the Activity.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public class Activity extends AbstractNamed implements Configurable,
-		Child<Profile>, Typed, Ported {
-	private final NamedSet<InputActivityPort> inputPorts = new NamedSet<>();
-	private final NamedSet<OutputActivityPort> outputPorts = new NamedSet<>();
-
-	private URI type;
-	private Profile parent;
-
-	/**
-	 * Constructs an <code>Activity</code> with a random UUID as the name.
-	 */
-	public Activity() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>Activity</code> with the specified name.
-	 * 
-	 * @param name
-	 *            the name of the Activity. <strong>Must not</strong> be
-	 *            <code>null</code> or an empty String.
-	 */
-	public Activity(String name) {
-		super(name);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this)) {
-			List<Iterable<? extends WorkflowBean>> children = new ArrayList<>();
-			children.add(getInputPorts());
-			children.add(getOutputPorts());
-			outer: for (Iterable<? extends WorkflowBean> child : children)
-				for (WorkflowBean bean : child)
-					if (!bean.accept(visitor))
-						break outer;
-		}
-		return visitor.visitLeave(this);
-	}
-
-	/**
-	 * Returns the type of the <code>Activity</code>.
-	 * 
-	 * @return the type of the <code>Activity</code>
-	 */
-	@Override
-	public URI getType() {
-		return type;
-	}
-
-	/**
-	 * Returns the <code>InputActivityPort</code>s.
-	 * 
-	 * If there are no <code>InputActivityPort</code>s an empty set is returned.
-	 * 
-	 * @return the <code>InputActivityPort</code>s.
-	 */
-	@Override
-	public NamedSet<InputActivityPort> getInputPorts() {
-		return inputPorts;
-	}
-
-	/**
-	 * Returns the <code>OutputActivityPort</code>s.
-	 * 
-	 * If there are no <code>OutputActivityPort</code>s an empty set is
-	 * returned.
-	 * 
-	 * @return the <code>OutputActivityPort</code>s.
-	 */
-	@Override
-	public NamedSet<OutputActivityPort> getOutputPorts() {
-		return outputPorts;
-	}
-
-	@Override
-	public Profile getParent() {
-		return parent;
-	}
-
-	/**
-	 * Sets the type of the <code>Activity</code>.
-	 * 
-	 * @param type
-	 *            the type of the <code>Activity</code>
-	 */
-	@Override
-	public void setType(URI type) {
-		this.type = type;
-	}
-
-	/**
-	 * Set the <code>InputActivityPort</code>s to be the contents of the
-	 * specified set.
-	 * <p>
-	 * <code>InputActivityPort</code>s can be added by using
-	 * {@link #getInputPorts()}.add(inputPort).
-	 * 
-	 * @param inputPorts
-	 *            the <code>InputActivityPort</code>s. <strong>Must not</strong>
-	 *            be null
-	 */
-	public void setInputPorts(Set<InputActivityPort> inputPorts) {
-		this.inputPorts.clear();
-		this.inputPorts.addAll(inputPorts);
-	}
-
-	/**
-	 * Set the <code>OutputActivityPort</code>s to be the contents of the
-	 * specified set.
-	 * <p>
-	 * <code>OutputActivityPort</code>s can be added by using
-	 * {@link #getOutputPorts()}.add(outputPort).
-	 * 
-	 * @param outputPorts
-	 *            the <code>OutputActivityPort</code>s. <strong>Must
-	 *            not</strong> be null
-	 */
-	public void setOutputPorts(Set<OutputActivityPort> outputPorts) {
-		this.outputPorts.clear();
-		this.outputPorts.addAll(outputPorts);
-	}
-
-	@Override
-	public void setParent(Profile parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getActivities().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getActivities().add(this);
-	}
-
-	@Override
-	public String toString() {
-		return "Activity " + getType() + " \"" + getName() + '"';
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		Activity cloneActivity = (Activity) clone;
-		cloneActivity.setType(getType());
-	}
-
-	// Derived operations, implemented via Scufl2Tools
-
-	/**
-	 * Get all the configurations that are associated with this activity.
-	 * Assumes that {@link #setParent(Profile)} has already been called.
-	 * 
-	 * @see Scufl2Tools#configurationsFor(Activity,Profile)
-	 */
-	public List<Configuration> getConfigurations() {
-		return getTools().configurationsFor(this, getParent());
-	}
-
-	/**
-	 * Get the configuration for this activity. Assumes that
-	 * {@link #setParent(Profile)} has already been called.
-	 * 
-	 * @throws IllegalStateException
-	 *             If there are more than one configuration for the activity.
-	 * @throws IndexOutOfBoundsException
-	 *             If there aren't any configurations for the activity.
-	 * @see Scufl2Tools#configurationFor(Activity,Profile)
-	 */
-	public Configuration getConfiguration() {
-		return getTools().configurationFor(this, getParent());
-	}
-
-	/**
-	 * Creates a configuration for this activity. Note that much code may assume
-	 * that there is only one configuration per activity; this method does
-	 * <i>not</i> enforce that and the underlying workflow model does not
-	 * require that.
-	 * 
-	 * @param configType
-	 *            The URI of the type of the configuration (i.e., the type of
-	 *            the Activity: Beanshell, WSDL, REST, Component, etc.)
-	 * @see Scufl2Tools#createConfigurationFor(Activity,URI)
-	 */
-	public Configuration createConfiguration(URI configType) {
-		return getTools().createConfigurationFor(this, configType);
-	}
-
-	/**
-	 * Create the ports on this activity to match the given processor.
-	 * 
-	 * @see Scufl2Tools#createActivityPortsFromProcessor(Activity,Processor)
-	 */
-	public void createPorts(Processor processor) {
-		getTools().createActivityPortsFromProcessor(this, processor);
-	}
-
-	/**
-	 * Get all processors that have a binding to this activity.
-	 * 
-	 * @return a list of processor bindings (which can be queried for the
-	 *         processors themselves).
-	 * @see Scufl2Tools#processorBindingsToActivity(Activity)
-	 */
-	public List<ProcessorBinding> getBoundProcessors() {
-		return getTools().processorBindingsToActivity(this);
-	}
-
-	/**
-	 * Create a processor and binding to match the given activity.
-	 * 
-	 * @see Scufl2Tools#createProcessorAndBindingFromActivity(Activity)
-	 */
-	public ProcessorBinding createProcessorAndBinding() {
-		return getTools().createProcessorAndBindingFromActivity(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/package-info.java
deleted file mode 100644
index c1d9112..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/activity/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-
-package org.apache.taverna.scufl2.api.activity;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Annotation.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Annotation.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Annotation.java
deleted file mode 100644
index fe4de98..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/annotation/Annotation.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package org.apache.taverna.scufl2.api.annotation;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Named;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-
-/**
- * An annotation of a WorkflowBean.
- * <p>
- * Modelled after http://openannotation.org/spec/core/20120509
- * 
- * @author Stian Soiland-Reyes
- */
-public class Annotation extends AbstractNamed implements Named,
-		Child<WorkflowBundle> {
-	private Calendar annotatedAt;
-	private URI annotatedBy;
-	private Calendar serializedAt = new GregorianCalendar();
-	private URI serializedBy;
-	private WorkflowBean target;
-	private WorkflowBundle parent;
-	private URI body;
-
-	public Annotation(WorkflowBean target) {
-		setTarget(target);
-	}
-
-	public Annotation() {
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	public Calendar getAnnotatedAt() {
-		return annotatedAt;
-	}
-
-	public URI getAnnotatedBy() {
-		return annotatedBy;
-	}
-
-	public Calendar getSerializedAt() {
-		return serializedAt;
-	}
-
-	public URI getSerializedBy() {
-		return serializedBy;
-	}
-
-	public WorkflowBean getTarget() {
-		if (target == null)
-			return this;
-		return target;
-	}
-
-	public void setAnnotatedAt(Calendar annotatedAt) {
-		this.annotatedAt = annotatedAt;
-	}
-
-	public void setAnnotatedBy(URI annotatedBy) {
-		this.annotatedBy = annotatedBy;
-	}
-
-	public void setSerializedAt(Calendar serializedAt) {
-		this.serializedAt = serializedAt;
-	}
-
-	public void setSerializedBy(URI serializedBy) {
-		this.serializedBy = serializedBy;
-	}
-
-	public void setTarget(WorkflowBean target) {
-		if (target == null)
-			throw new NullPointerException("Target can't be null");
-		this.target = target;
-	}
-
-	@Override
-	public WorkflowBundle getParent() {
-		return this.parent;
-	}
-
-	@Override
-	public void setParent(WorkflowBundle parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getAnnotations().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getAnnotations().add(this);
-	}
-
-	public URI getBody() {
-		return body;
-	}
-
-	public void setBody(URI body) {
-		this.body = body;
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		Annotation cloneAnnotation = (Annotation) clone;
-		if (getAnnotatedAt() != null)
-			cloneAnnotation.setAnnotatedAt((Calendar) getAnnotatedAt().clone());
-		cloneAnnotation.setAnnotatedBy(getAnnotatedBy());
-		cloneAnnotation.setBody(getBody());
-		if (getSerializedAt() != null)
-			cloneAnnotation.setSerializedAt((Calendar) getSerializedAt()
-					.clone());
-		cloneAnnotation.setSerializedBy(getSerializedBy());
-		cloneAnnotation.setTarget(cloning.cloneOrOriginal(getTarget()));
-	}
-
-	/**
-	 * Gets the standard path for the resource in the bundle associated with
-	 * this annotation. The resource will be expected to contain a TTL-encoded
-	 * RDF model.
-	 * 
-	 * @return a resource path.
-	 */
-	public String getResourcePath() {
-		return "annotation/" + getName() + ".ttl";
-	}
-
-	/**
-	 * Gets the content of this annotation. Note that this method does not cache
-	 * the value it reads.
-	 * 
-	 * @return a TTL-encoded RDF model.
-	 * @throws IOException
-	 *             If anything goes wrong reading the resource
-	 */
-	public String getRDFContent() throws IOException {
-		return getParent().getResources()
-				.getResourceAsString(getResourcePath());
-	}
-}


[50/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/main/resources/xsd/xscufl.xsd
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/main/resources/xsd/xscufl.xsd b/taverna-baclava-language/src/main/resources/xsd/xscufl.xsd
deleted file mode 100644
index 75d51b3..0000000
--- a/taverna-baclava-language/src/main/resources/xsd/xscufl.xsd
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha" xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" elementFormDefault="qualified">
-
-   <complexType name="MimeTypesType">
-    	<sequence>
-    		<element ref="s:mimeType" minOccurs="0" maxOccurs="unbounded"></element>
-    	</sequence>
-    </complexType>
-    
-    <element name="metadata" type="s:MetadataType"></element>
-    
-    <complexType name="MetadataType">
-    	<sequence>
-    		<element ref="s:mimeTypes" minOccurs="1" maxOccurs="1"></element>
-    	</sequence>
-    </complexType>
-
-    <element name="mimeTypes" type="s:MimeTypesType"></element>
-
-
-    <element name="mimeType" type="string"></element>
-    
-</schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestExample1.java
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestExample1.java b/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestExample1.java
deleted file mode 100644
index c27dea1..0000000
--- a/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestExample1.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.taverna.baclava;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.util.List;
-
-import javax.xml.bind.JAXBException;
-
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class TestExample1 {
-	
-	private static DataThingMapType dt;
-	
-	private static String[] expectedKeys = new String[] {"status", "proteinIDs", "output"};
-	
-	private static String[] expectedMimeTypes = new String[] {"text/plain", "text/plain", "application/octet-stream"};
-
-	@BeforeClass
-	public static void setUpClass() throws FileNotFoundException, JAXBException {
-		ClassLoader classLoader = TestExample1.class.getClassLoader();
-		File file = new File(classLoader.getResource("example1.xml").getFile());
-		dt = BaclavaReader.readBaclava(new FileReader(file));
-	}
-	
-	@Test
-	public void checkRead() {
-		Assert.assertNotNull("Unable to parse example1.xml", dt);
-	}
-
-	@Test
-	public void checkNumberOfDataThings() {
-		Assert.assertEquals("There should be three data things", 3, dt.getDataThing().size());
-	}
-	
-	@Test
-	public void checkDataThingKeys() {
-		for (String k : expectedKeys) {
-			Assert.assertNotNull(k + " should be there", getDataThingTypeByKey(k));
-		}
-	}
-	
-	@Test
-	public void checkDataThingMimeTypes() {
-		for (int i = 0; i < expectedKeys.length; i++) {
-			String k = expectedKeys[i];
-			DataThingType d = getDataThingTypeByKey(k);
-			MyGridDataDocumentType doc = d.getMyGridDataDocument();
-			Assert.assertNotNull("myGridDataDocument of " + k + " is missing", doc);
-			MetadataType meta = doc.getMetadata();
-			Assert.assertNotNull("metadata of " + k + " is missing", meta);
-			MimeTypesType types = meta.getMimeTypes();
-			Assert.assertNotNull("mimetypes of " + k + " is missing", types);
-			List<String> mimeTypes = types.getMimeType();
-			Assert.assertNotNull("mimetypes of " + k + " is null", mimeTypes);
-			Assert.assertNotEquals("mimetypes of " + k + " is empty", 0, mimeTypes);
-			String firstMimeType = mimeTypes.get(0);
-			Assert.assertEquals("mimetype of " + k + " is wrong", expectedMimeTypes[i], firstMimeType);
-		}
-	}
-	
-	private DataThingType getDataThingTypeByKey(String key) {
-		DataThingType result = null;
-		for (DataThingType d : dt.getDataThing()) {
-			if (d.getKey().equals(key)) {
-				result = d;
-				break;
-			}
-		}
-		return result;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestRoundTrip.java
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestRoundTrip.java b/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestRoundTrip.java
deleted file mode 100644
index 613a252..0000000
--- a/taverna-baclava-language/src/test/java/org/apache/taverna/baclava/TestRoundTrip.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.apache.taverna.baclava;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.bind.JAXBException;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-public class TestRoundTrip {
-	
-	private static String[] fileNames = new String[] {"example1.xml", "example2.xml"};
-
-	@Test
-	public void testRoundTrips() throws JAXBException, FileNotFoundException {
-		for (String fileName : fileNames) {
-			ClassLoader classLoader = getClass().getClassLoader();
-			File file = new File(classLoader.getResource(fileName).getFile());
-			DataThingMapType o = BaclavaReader.readBaclava(new FileReader(file));
-		
-			StringWriter initialWriter = new StringWriter();
-			BaclavaWriter.writeBaclava(o,  initialWriter);
-			String initialString = initialWriter.toString();
-			
-			DataThingMapType reread = BaclavaReader.readBaclava(new StringReader(initialString));
-			StringWriter rewriteWriter = new StringWriter();
-			BaclavaWriter.writeBaclava(reread, rewriteWriter);
-			String rewrittenString = rewriteWriter.toString();
-			Assert.assertEquals(initialString, rewrittenString);
-		}
-
-	}
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/test/resources/example1.xml
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/test/resources/example1.xml b/taverna-baclava-language/src/test/resources/example1.xml
deleted file mode 100644
index c39e73c..0000000
--- a/taverna-baclava-language/src/test/resources/example1.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<b:dataThingMap xmlns:b="http://org.embl.ebi.escience/baclava/0.1alpha">
-  <b:dataThing key="status">
-    <b:myGridDataDocument lsid="" syntactictype="l('text/plain')">
-      <s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-        <s:mimeTypes>
-          <s:mimeType>text/plain</s:mimeType>
-        </s:mimeTypes>
-      </s:metadata>
-      <b:partialOrder lsid="" type="list">
-        <b:relationList />
-        <b:itemList>
-          <b:dataElement lsid="" index="0">
-            <b:dataElementData>RklOSVNIRUQ=</b:dataElementData>
-          </b:dataElement>
-        </b:itemList>
-      </b:partialOrder>
-    </b:myGridDataDocument>
-  </b:dataThing>
-  <b:dataThing key="proteinIDs">
-    <b:myGridDataDocument lsid="" syntactictype="'text/plain'">
-      <s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-        <s:mimeTypes>
-          <s:mimeType>text/plain</s:mimeType>
-        </s:mimeTypes>
-      </s:metadata>
-      <b:dataElement lsid="">
-        <b:dataElementData>UDE1MDE4</b:dataElementData>
-      </b:dataElement>
-    </b:myGridDataDocument>
-  </b:dataThing>
-  <b:dataThing key="output">
-    <b:myGridDataDocument lsid="" syntactictype="l('application/octet-stream')">
-      <s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-        <s:mimeTypes>
-          <s:mimeType>application/octet-stream</s:mimeType>
-        </s:mimeTypes>
-      </s:metadata>
-      <b:partialOrder lsid="" type="list">
-        <b:relationList />
-        <b:itemList>
-          <b:dataElement lsid="" index="0">
-            <b:dataElementData>SUQgICBnaXwxMjYyNzl8c3B8UDE1MDE4LjF8TElGX0hVTUFOCkZUICAgU0lHTkFMICAgICAgICAx
-ICAgICAzMiAgICAgICAKRlQgICBET01BSU4gICAgICAgIDEgICAgICAyICAgICAgIE4tUkVHSU9O
-LgpGVCAgIERPTUFJTiAgICAgICAgMyAgICAgMTQgICAgICAgSC1SRUdJT04uCkZUICAgRE9NQUlO
-ICAgICAgIDE1ICAgICAzMiAgICAgICBDLVJFR0lPTi4KRlQgICBET01BSU4gICAgICAgMzMgICAg
-MjAyICAgICAgIE5PTiBDWVRPUExBU01JQy4KLy8K</b:dataElementData>
-          </b:dataElement>
-        </b:itemList>
-      </b:partialOrder>
-    </b:myGridDataDocument>
-  </b:dataThing>
-</b:dataThingMap>
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/test/resources/example2.xml
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/test/resources/example2.xml b/taverna-baclava-language/src/test/resources/example2.xml
deleted file mode 100644
index ff05414..0000000
--- a/taverna-baclava-language/src/test/resources/example2.xml
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<b:dataThingMap xmlns:b="http://org.embl.ebi.escience/baclava/0.1alpha">
-  <b:dataThing key="strings">
-    <b:myGridDataDocument lsid="" syntactictype="l(l('text/plain'))">
-      <s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
-        <s:mimeTypes>
-          <s:mimeType>text/plain</s:mimeType>
-        </s:mimeTypes>
-      </s:metadata>
-      <b:partialOrder lsid="" type="list">
-        <b:relationList>
-          <b:relation parent="0" child="1" />
-        </b:relationList>
-        <b:itemList>
-          <b:partialOrder lsid="" type="list" index="0">
-            <b:relationList>
-              <b:relation parent="0" child="1" />
-              <b:relation parent="1" child="2" />
-              <b:relation parent="2" child="3" />
-              <b:relation parent="3" child="4" />
-              <b:relation parent="4" child="5" />
-              <b:relation parent="5" child="6" />
-              <b:relation parent="6" child="7" />
-              <b:relation parent="7" child="8" />
-              <b:relation parent="8" child="9" />
-              <b:relation parent="9" child="10" />
-              <b:relation parent="10" child="11" />
-              <b:relation parent="11" child="12" />
-              <b:relation parent="12" child="13" />
-              <b:relation parent="13" child="14" />
-              <b:relation parent="14" child="15" />
-              <b:relation parent="15" child="16" />
-              <b:relation parent="16" child="17" />
-              <b:relation parent="17" child="18" />
-              <b:relation parent="18" child="19" />
-              <b:relation parent="19" child="20" />
-              <b:relation parent="20" child="21" />
-              <b:relation parent="21" child="22" />
-              <b:relation parent="22" child="23" />
-              <b:relation parent="23" child="24" />
-              <b:relation parent="24" child="25" />
-              <b:relation parent="25" child="26" />
-              <b:relation parent="26" child="27" />
-              <b:relation parent="27" child="28" />
-              <b:relation parent="28" child="29" />
-              <b:relation parent="29" child="30" />
-              <b:relation parent="30" child="31" />
-              <b:relation parent="31" child="32" />
-              <b:relation parent="32" child="33" />
-              <b:relation parent="33" child="34" />
-              <b:relation parent="34" child="35" />
-              <b:relation parent="35" child="36" />
-              <b:relation parent="36" child="37" />
-              <b:relation parent="37" child="38" />
-              <b:relation parent="38" child="39" />
-            </b:relationList>
-            <b:itemList>
-              <b:dataElement lsid="" index="0">
-                <b:dataElementData>U3RyaW5nMA==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="1">
-                <b:dataElementData>U3RyaW5nMQ==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="2">
-                <b:dataElementData>U3RyaW5nMg==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="3">
-                <b:dataElementData>U3RyaW5nMw==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="4">
-                <b:dataElementData>U3RyaW5nNA==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="5">
-                <b:dataElementData>U3RyaW5nNQ==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="6">
-                <b:dataElementData>U3RyaW5nNg==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="7">
-                <b:dataElementData>U3RyaW5nNw==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="8">
-                <b:dataElementData>U3RyaW5nOA==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="9">
-                <b:dataElementData>U3RyaW5nOQ==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="10">
-                <b:dataElementData>U3RyaW5nMTA=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="11">
-                <b:dataElementData>U3RyaW5nMTE=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="12">
-                <b:dataElementData>U3RyaW5nMTI=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="13">
-                <b:dataElementData>U3RyaW5nMTM=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="14">
-                <b:dataElementData>U3RyaW5nMTQ=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="15">
-                <b:dataElementData>U3RyaW5nMTU=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="16">
-                <b:dataElementData>U3RyaW5nMTY=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="17">
-                <b:dataElementData>U3RyaW5nMTc=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="18">
-                <b:dataElementData>U3RyaW5nMTg=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="19">
-                <b:dataElementData>U3RyaW5nMTk=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="20">
-                <b:dataElementData>U3RyaW5nMjA=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="21">
-                <b:dataElementData>U3RyaW5nMjE=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="22">
-                <b:dataElementData>U3RyaW5nMjI=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="23">
-                <b:dataElementData>U3RyaW5nMjM=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="24">
-                <b:dataElementData>U3RyaW5nMjQ=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="25">
-                <b:dataElementData>U3RyaW5nMjU=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="26">
-                <b:dataElementData>U3RyaW5nMjY=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="27">
-                <b:dataElementData>U3RyaW5nMjc=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="28">
-                <b:dataElementData>U3RyaW5nMjg=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="29">
-                <b:dataElementData>U3RyaW5nMjk=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="30">
-                <b:dataElementData>U3RyaW5nMzA=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="31">
-                <b:dataElementData>U3RyaW5nMzE=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="32">
-                <b:dataElementData>U3RyaW5nMzI=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="33">
-                <b:dataElementData>U3RyaW5nMzM=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="34">
-                <b:dataElementData>U3RyaW5nMzQ=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="35">
-                <b:dataElementData>U3RyaW5nMzU=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="36">
-                <b:dataElementData>U3RyaW5nMzY=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="37">
-                <b:dataElementData>U3RyaW5nMzc=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="38">
-                <b:dataElementData>U3RyaW5nMzg=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="39">
-                <b:dataElementData>U3RyaW5nMzk=</b:dataElementData>
-              </b:dataElement>
-            </b:itemList>
-          </b:partialOrder>
-          <b:partialOrder lsid="" type="list" index="1">
-            <b:relationList>
-              <b:relation parent="0" child="1" />
-              <b:relation parent="1" child="2" />
-              <b:relation parent="2" child="3" />
-              <b:relation parent="3" child="4" />
-              <b:relation parent="4" child="5" />
-              <b:relation parent="5" child="6" />
-              <b:relation parent="6" child="7" />
-              <b:relation parent="7" child="8" />
-              <b:relation parent="8" child="9" />
-              <b:relation parent="9" child="10" />
-              <b:relation parent="10" child="11" />
-              <b:relation parent="11" child="12" />
-              <b:relation parent="12" child="13" />
-              <b:relation parent="13" child="14" />
-              <b:relation parent="14" child="15" />
-              <b:relation parent="15" child="16" />
-              <b:relation parent="16" child="17" />
-              <b:relation parent="17" child="18" />
-              <b:relation parent="18" child="19" />
-              <b:relation parent="19" child="20" />
-              <b:relation parent="20" child="21" />
-              <b:relation parent="21" child="22" />
-              <b:relation parent="22" child="23" />
-              <b:relation parent="23" child="24" />
-              <b:relation parent="24" child="25" />
-              <b:relation parent="25" child="26" />
-              <b:relation parent="26" child="27" />
-              <b:relation parent="27" child="28" />
-              <b:relation parent="28" child="29" />
-              <b:relation parent="29" child="30" />
-              <b:relation parent="30" child="31" />
-              <b:relation parent="31" child="32" />
-              <b:relation parent="32" child="33" />
-              <b:relation parent="33" child="34" />
-              <b:relation parent="34" child="35" />
-              <b:relation parent="35" child="36" />
-              <b:relation parent="36" child="37" />
-              <b:relation parent="37" child="38" />
-              <b:relation parent="38" child="39" />
-            </b:relationList>
-            <b:itemList>
-              <b:dataElement lsid="" index="0">
-                <b:dataElementData>U3RyaW5nMA==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="1">
-                <b:dataElementData>U3RyaW5nMQ==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="2">
-                <b:dataElementData>U3RyaW5nMg==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="3">
-                <b:dataElementData>U3RyaW5nMw==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="4">
-                <b:dataElementData>U3RyaW5nNA==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="5">
-                <b:dataElementData>U3RyaW5nNQ==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="6">
-                <b:dataElementData>U3RyaW5nNg==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="7">
-                <b:dataElementData>U3RyaW5nNw==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="8">
-                <b:dataElementData>U3RyaW5nOA==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="9">
-                <b:dataElementData>U3RyaW5nOQ==</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="10">
-                <b:dataElementData>U3RyaW5nMTA=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="11">
-                <b:dataElementData>U3RyaW5nMTE=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="12">
-                <b:dataElementData>U3RyaW5nMTI=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="13">
-                <b:dataElementData>U3RyaW5nMTM=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="14">
-                <b:dataElementData>U3RyaW5nMTQ=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="15">
-                <b:dataElementData>U3RyaW5nMTU=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="16">
-                <b:dataElementData>U3RyaW5nMTY=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="17">
-                <b:dataElementData>U3RyaW5nMTc=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="18">
-                <b:dataElementData>U3RyaW5nMTg=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="19">
-                <b:dataElementData>U3RyaW5nMTk=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="20">
-                <b:dataElementData>U3RyaW5nMjA=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="21">
-                <b:dataElementData>U3RyaW5nMjE=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="22">
-                <b:dataElementData>U3RyaW5nMjI=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="23">
-                <b:dataElementData>U3RyaW5nMjM=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="24">
-                <b:dataElementData>U3RyaW5nMjQ=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="25">
-                <b:dataElementData>U3RyaW5nMjU=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="26">
-                <b:dataElementData>U3RyaW5nMjY=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="27">
-                <b:dataElementData>U3RyaW5nMjc=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="28">
-                <b:dataElementData>U3RyaW5nMjg=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="29">
-                <b:dataElementData>U3RyaW5nMjk=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="30">
-                <b:dataElementData>U3RyaW5nMzA=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="31">
-                <b:dataElementData>U3RyaW5nMzE=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="32">
-                <b:dataElementData>U3RyaW5nMzI=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="33">
-                <b:dataElementData>U3RyaW5nMzM=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="34">
-                <b:dataElementData>U3RyaW5nMzQ=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="35">
-                <b:dataElementData>U3RyaW5nMzU=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="36">
-                <b:dataElementData>U3RyaW5nMzY=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="37">
-                <b:dataElementData>U3RyaW5nMzc=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="38">
-                <b:dataElementData>U3RyaW5nMzg=</b:dataElementData>
-              </b:dataElement>
-              <b:dataElement lsid="" index="39">
-                <b:dataElementData>U3RyaW5nMzk=</b:dataElementData>
-              </b:dataElement>
-            </b:itemList>
-          </b:partialOrder>
-        </b:itemList>
-      </b:partialOrder>
-    </b:myGridDataDocument>
-  </b:dataThing>
-</b:dataThingMap>
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/README.md
----------------------------------------------------------------------
diff --git a/taverna-databundle/README.md b/taverna-databundle/README.md
deleted file mode 100644
index dab38b6..0000000
--- a/taverna-databundle/README.md
+++ /dev/null
@@ -1,172 +0,0 @@
-Data bundles API
-================
-
-API for Taverna Data Bundles
-
-[![Build Status](https://travis-ci.org/taverna/taverna-databundle.svg?branch=master)](https://travis-ci.org/taverna/taverna-databundle)
-
-See [Data bundle requirements](http://dev.mygrid.org.uk/wiki/display/TAVOSGI/2013-02+Data+bundle+requirements)
-and [TestDataBundles.java](src/test/java/uk/org/taverna/databundle/TestDataBundles.java)
-
-This API is built on the Java 7 NIO Files and the [RO Bundle API](https://github.com/wf4ever/robundle), which 
-uses the [Java 7 ZIP file provider](http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html) to generate the Data Bundle.
-
-
-The class [org.apache.taverna.databundle.DataBundles](src/main/java/uk/org/taverna/databundle/DataBundles.java) 
-complements the Java 7 [java.nio.Files](http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html)
-API with more specific helper methods to work with Data Bundles.
-
-
-Building
---------
-```mvn clean install```
-
-should normally work, given a recent version of [Maven 3](http://maven.apache.org/download.cgi) and 
-[Java 7 SDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html).
-
-[myGrid's Jenkins installation](http://build.mygrid.org.uk/ci/) has automated 
-builds of both [databundles](http://build.mygrid.org.uk/ci/job/databundles/) 
-and [robundle](http://build.mygrid.org.uk/ci/job/robundle/), which snapshots are deployed to 
-[myGrid's snapshot repository](http://build.mygrid.org.uk/maven/snapshot-repository/uk/org/taverna/databundle/databundle/).
-
-Maven should download the latest snapshot of [robundle](https://github.com/wf4ever/robundle) 
-from [myGrid's snapshot repository](http://build.mygrid.org.uk/maven/snapshot-repository/org/purl/wf4ever/robundle/robundle/), 
-but in some cases you might have to build robundle locally before building this project.
-
-
-Example of use
---------------
-
-Example in full is at [org.apache.taverna.databundle.TestExample](src/test/java/uk/org/taverna/databundle/TestExample.java)
-
-
-Create a new (temporary) data bundle:
-```java
-        Bundle dataBundle = DataBundles.createBundle();
-```
-
-Get the input ports and the port "in1":
-```java        
-        Path inputs = DataBundles.getInputs(dataBundle);
-        Path portIn1 = DataBundles.getPort(inputs, "in1");
-```
-
-Setting a string value for the input port:
-```java
-        DataBundles.setStringValue(portIn1, "Hello");
-```
-
-And retrieving it:
-```java
-        if (DataBundles.isValue(portIn1)) {
-            System.out.println(DataBundles.getStringValue(portIn1));
-        }
-```
-```
-Hello
-```
-
-
-Alternatively, use the regular Files methods:
-```java
-        for (String line : Files
-                .readAllLines(portIn1, Charset.forName("UTF-8"))) {
-            System.out.println(line);
-        }
-```
-
-
-Binaries and large files are done through the Files API
-```java
-        try (OutputStream out = Files.newOutputStream(portIn1,
-                StandardOpenOption.APPEND)) {
-            out.write(32);
-        }
-```
-
-Or Java 7 style:
-```java
-        Path localFile = Files.createTempFile("", ".txt");
-        Files.copy(portIn1, localFile, StandardCopyOption.REPLACE_EXISTING);
-        System.out.println("Written to: " + localFile);
-```
-```
-Written to: C:\Users\stain\AppData\Local\Temp\2009921746200670789.txt
-```
-
-Either direction of copy works, of course:
-```java
-        Files.copy(localFile,
-                DataBundles.getPort(DataBundles.getOutputs(dataBundle), "out1"));
-```
-
-   
-When you get a port, it can become either a value or a list:
-```java        
-        Path port2 = DataBundles.getPort(inputs, "port2");
-        DataBundles.createList(port2); // empty list
-        List<Path> list = DataBundles.getList(port2);
-        assertTrue(list.isEmpty());
-```
-
-Adding items sequentially:
-```java
-        Path item0 = DataBundles.newListItem(port2);
-        DataBundles.setStringValue(item0, "item 0");
-        DataBundles.setStringValue(DataBundles.newListItem(port2), "item 1");
-        DataBundles.setStringValue(DataBundles.newListItem(port2), "item 2");
-```
-        
-Set and get by explicit position:
-```java
-        DataBundles.setStringValue(DataBundles.getListItem(port2, 12), "item 12");
-        System.out.println(DataBundles.getStringValue(DataBundles.getListItem(port2, 2)));
-```
-```
-item 2
-```
-        
-The list is sorted numerically (e.g. 2, 5, 10) and will contain nulls for empty slots:
-```java
-        System.out.println(DataBundles.getList(port2));
-```
-```
-[/inputs/port2/0, /inputs/port2/1, /inputs/port2/2, null, null, null, null, null,
- null, null, null, null, /inputs/port2/12]
-```
-
-Ports can be browsed as a map by port name:
-```java
-        NavigableMap<String, Path> ports = DataBundles.getPorts(inputs);
-        System.out.println(ports.keySet());
-```
-```
-[in1, port2]
-```
-    
-Saving a data bundle:    
-```java
-        Path zip = Files.createTempFile("databundle", ".zip");
-        DataBundles.closeAndSaveBundle(dataBundle, zip);
-        // NOTE: From now dataBundle and its Path's are CLOSED 
-        // and can no longer be accessed
-        System.out.println("Saved to " + zip);
-```
-```
-Saved to C:\Users\stain\AppData\Local\Temp\databundle6905894602121718151.zip
-```
-        
-Inspecting the zip:
-```java        
-        if (Desktop.isDesktopSupported()) {
-            // Open ZIP file for browsing
-            Desktop.getDesktop().open(zip.toFile());
-        }
-```        
-        
-Loading a data bundle back from disk:
-```java
-        try (Bundle dataBundle2 = DataBundles.openBundle(zip)) {
-            // Any modifications here will be saved on (here automatic) close            
-        }     
-```

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-databundle/pom.xml b/taverna-databundle/pom.xml
deleted file mode 100644
index e7ff46e..0000000
--- a/taverna-databundle/pom.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-      	<groupId>org.apache.taverna.language</groupId>
-      	<artifactId>taverna-language</artifactId>
-      	<version>0.16.1-incubating-SNAPSHOT</version>
-    </parent>
-    <artifactId>taverna-databundle</artifactId>
-    <name>Apache Taverna Databundle API</name>
-    <description>API for dealing with Data Bundles</description>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.jena</groupId>
-            <artifactId>jena-arq</artifactId>
-            <version>${jena.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>${project.groupId}</groupId>
-          <artifactId>taverna-scufl2-rdfxml</artifactId>
-          <version>${project.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>${project.groupId}</groupId>
-          <artifactId>taverna-scufl2-t2flow</artifactId>
-          <version>${project.version}</version>
-          <scope>test</scope>
-        </dependency>
-        <dependency>
-          <groupId>${project.groupId}</groupId>
-          <artifactId>taverna-scufl2-wfdesc</artifactId>
-          <version>${project.version}</version>
-          <optional>true</optional>
-        </dependency>
-        <dependency>
-          <groupId>${project.groupId}</groupId>
-          <artifactId>taverna-robundle</artifactId>
-          <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${junit.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>${commons.io.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-
-        <dependency>
-            <groupId>commons-configuration</groupId>
-            <artifactId>commons-configuration</artifactId>
-            <version>${commons.configuration.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.3.2</version>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </plugin>
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-			</plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.3.7</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java b/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
deleted file mode 100644
index 750a23e..0000000
--- a/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
+++ /dev/null
@@ -1,454 +0,0 @@
-package org.apache.taverna.databundle;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.nio.file.Files.createDirectories;
-import static java.nio.file.Files.delete;
-import static java.nio.file.Files.isDirectory;
-import static java.nio.file.Files.isRegularFile;
-import static java.nio.file.Files.newDirectoryStream;
-import static java.nio.file.Files.newInputStream;
-import static java.nio.file.Files.newOutputStream;
-import static java.nio.file.Files.readAllLines;
-import static java.nio.file.Files.write;
-import static java.nio.file.StandardOpenOption.CREATE;
-import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.DirectoryIteratorException;
-import java.nio.file.DirectoryStream;
-import java.nio.file.DirectoryStream.Filter;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NavigableMap;
-import java.util.TreeMap;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * Utility functions for dealing with data bundles.
- * <p>
- * The style of using this class is similar to that of {@link Files}. In fact, a
- * data bundle is implemented as a set of {@link Path}s.
- * 
- * @author Stian Soiland-Reyes
- */
-public class DataBundles extends Bundles {
-	private static final class OBJECT_MAPPER {
-		// Lazy initialization of singleton
-		private static final ObjectMapper instance = new ObjectMapper();
-	}
-
-	protected static final class ExtensionIgnoringFilter implements
-			Filter<Path> {
-		private final String fname;
-
-		private ExtensionIgnoringFilter(Path file) {
-			this.fname = filenameWithoutExtension(file);
-		}
-
-		@Override
-		public boolean accept(Path entry) throws IOException {
-			return fname.equals(filenameWithoutExtension(entry));
-		}
-	}
-
-	private static WorkflowBundleIO wfBundleIO;
-
-	private static Logger logger = Logger.getLogger(DataBundles.class);
-
-	private static final String WFBUNDLE_CONTENT_TYPE = "application/vnd.taverna.scufl2.workflow-bundle";
-	private static final String WFDESC_TURTLE = "text/vnd.wf4ever.wfdesc+turtle";
-	private static final String WORKFLOW = "workflow";
-	private static final String DOT_WFDESC_TTL = ".wfdesc.ttl";
-	private static final String DOT_WFBUNDLE = ".wfbundle";
-	private static final String WORKFLOWRUN_PROV_TTL = "workflowrun.prov.ttl";
-	private static final String WORKFLOWRUN_JSON = "workflowrun.json";
-	private static final String DOT_ERR = ".err";
-	private static final String INPUTS = "inputs";
-	private static final String INTERMEDIATES = "intermediates";
-	private static final String OUTPUTS = "outputs";
-	private static final Charset UTF8 = Charset.forName("UTF-8");
-
-	private static Path anyExtension(Path path) throws IOException {
-		return anyExtension(path.getParent(), path.getFileName().toString());
-	}
-
-	private static Path anyExtension(Path directory, String fileName)
-			throws IOException {
-		Path path = directory.resolve(fileName);
-
-		// Prefer the fileName as it is
-		if (Files.exists(path))
-			return path;
-		// Strip any existing extension
-		String fileNameNoExt = filenameWithoutExtension(path);
-		Path withoutExt = path.resolveSibling(fileNameNoExt);
-		if (Files.exists(withoutExt))
-			return withoutExt;
-
-		// Check directory for path.*
-		for (Path p : newDirectoryStream(directory, fileNameNoExt + ".*"))
-			/*
-			 * We'll just return the first one
-			 * 
-			 * TODO: Should we fail if there's more than one?
-			 */
-			return p;
-
-		/*
-		 * Nothing? Then let's give the existing one; perhaps it is to be
-		 * created.
-		 */
-		return path;
-	}
-
-	private static void checkExistingAnyExtension(Path path)
-			throws IOException, FileAlreadyExistsException {
-		Path existing = anyExtension(path);
-		if (!path.equals(existing))
-			throw new FileAlreadyExistsException(existing.toString());
-	}
-
-	public static void createList(Path path) throws IOException {
-		checkExistingAnyExtension(path);
-		Files.createDirectories(path);
-	}
-
-	public static void deleteAllExtensions(final Path file) throws IOException {
-		Filter<Path> filter = new ExtensionIgnoringFilter(file);
-		try (DirectoryStream<Path> ds = newDirectoryStream(file.getParent(),
-				filter)) {
-			for (Path p : ds)
-				deleteRecursively(p);
-		}
-	}
-
-	protected static String filenameWithoutExtension(Path entry) {
-		String fileName = entry.getFileName().toString();
-		int lastDot = fileName.lastIndexOf(".");
-		if (lastDot < 0)
-			return fileName.replace("/", "");
-		return fileName.substring(0, lastDot);
-	}
-
-	public static ErrorDocument getError(Path path) throws IOException {
-		if (path == null)
-			return null;
-
-		Path errorPath = withExtension(path, DOT_ERR);
-		List<String> errorList = readAllLines(errorPath, UTF8);
-		int split = errorList.indexOf("");
-		if (split == -1 || errorList.size() <= split)
-			throw new IOException("Invalid error document: " + errorPath);
-
-		ErrorDocument errorDoc = new ErrorDocument();
-
-		for (String cause : errorList.subList(0, split))
-			errorDoc.getCausedBy().add(path.resolveSibling(cause));
-
-		errorDoc.setMessage(errorList.get(split + 1));
-
-		StringBuilder errorTrace = new StringBuilder();
-		for (String line : errorList.subList(split + 2, errorList.size())) {
-			errorTrace.append(line);
-			errorTrace.append("\n");
-		}
-		if (errorTrace.length() > 0)
-			// Delete last \n
-			errorTrace.deleteCharAt(errorTrace.length() - 1);
-		errorDoc.setTrace(errorTrace.toString());
-		return errorDoc;
-	}
-
-	public static Path getInputs(Bundle dataBundle) throws IOException {
-		Path inputs = dataBundle.getRoot().resolve(INPUTS);
-		createDirectories(inputs);
-		return inputs;
-	}
-
-	private static long getEntryNumber(Path entry) throws NumberFormatException {
-		String name = filenameWithoutExtension(entry);
-		return Long.parseLong(name);
-	}
-
-	public static List<Path> getList(Path list) throws IOException {
-		if (list == null)
-			return null;
-		List<Path> paths = new ArrayList<>();
-		try (DirectoryStream<Path> ds = newDirectoryStream(list)) {
-			for (Path entry : ds)
-				try {
-					long entryNum = getEntryNumber(entry);
-					while (paths.size() <= entryNum)
-						// Fill any gaps
-						paths.add(null);
-					// NOTE: Don't use add() as these could come in any order!
-					paths.set((int) entryNum, entry);
-				} catch (NumberFormatException ex) {
-				}
-		} catch (DirectoryIteratorException ex) {
-			throw ex.getCause();
-		}
-		return paths;
-	}
-
-	public static Path getListItem(Path list, long position) throws IOException {
-		if (position < 0)
-			throw new IllegalArgumentException(
-					"Position must be 0 or more, not: " + position);
-		return anyExtension(list, Long.toString(position));
-	}
-
-	public static Path getOutputs(Bundle dataBundle) throws IOException {
-		Path inputs = dataBundle.getRoot().resolve(OUTPUTS);
-		createDirectories(inputs);
-		return inputs;
-	}
-
-	public static Path getPort(Path map, String portName) throws IOException {
-		Files.createDirectories(map);
-		return anyExtension(map, portName);
-	}
-
-	public static NavigableMap<String, Path> getPorts(Path path)
-			throws IOException {
-		NavigableMap<String, Path> ports = new TreeMap<>();
-		try (DirectoryStream<Path> ds = newDirectoryStream(path)) {
-			for (Path p : ds)
-				ports.put(filenameWithoutExtension(p), p);
-		}
-		return ports;
-	}
-
-	public static boolean hasInputs(Bundle dataBundle) {
-		Path inputs = dataBundle.getRoot().resolve(INPUTS);
-		return isDirectory(inputs);
-	}
-
-	public static boolean hasOutputs(Bundle dataBundle) {
-		Path outputs = dataBundle.getRoot().resolve(OUTPUTS);
-		return isDirectory(outputs);
-	}
-
-	public static boolean isError(Path path) {
-		return isRegularFile(withExtension(path, DOT_ERR));
-	}
-
-	public static boolean isList(Path path) {
-		return isDirectory(path);
-	}
-
-	public static boolean isMissing(Path item) {
-		return Bundles.isMissing(item) && !isError(item);
-	}
-
-	public static boolean isValue(Path item) {
-		return !isError(item) && Bundles.isValue(item);
-	}
-
-	public static Path newListItem(Path list) throws IOException {
-		createList(list);
-		return list.resolve(Long.toString(getListSize(list)));
-	}
-
-	public static Path setError(Path path, ErrorDocument error)
-			throws IOException {
-		return setError(path, error.getMessage(), error.getTrace(), error
-				.getCausedBy().toArray(new Path[error.getCausedBy().size()]));
-	}
-
-	public static Path setError(Path errorPath, String message, String trace,
-			Path... causedBy) throws IOException {
-		errorPath = withExtension(errorPath, DOT_ERR);
-		// Silly \n-based format
-		List<String> errorDoc = new ArrayList<>();
-		for (Path cause : causedBy) {
-			Path relCause = errorPath.getParent().relativize(cause);
-			errorDoc.add(relCause.toString());
-		}
-		errorDoc.add(""); // Our magic separator
-		errorDoc.add(message);
-		errorDoc.add(trace);
-		checkExistingAnyExtension(errorPath);
-		write(errorPath, errorDoc, UTF8, TRUNCATE_EXISTING, CREATE);
-		return errorPath;
-	}
-
-	public static Path setReference(Path path, URI reference)
-			throws IOException {
-		path = withExtension(path, DOT_URL);
-		checkExistingAnyExtension(path);
-		return Bundles.setReference(path, reference);
-	}
-
-	public static void setStringValue(Path path, String string)
-			throws IOException {
-		checkExistingAnyExtension(path);
-		Bundles.setStringValue(path, string);
-	}
-
-	protected static Path withExtension(Path path, String extension) {
-		String filename = path.getFileName().toString();
-		return path.resolveSibling(withExtensionFilename(filename, extension));
-	}
-
-	protected static String withExtensionFilename(String filename,
-			String extension) {
-		if (!extension.isEmpty() && !extension.startsWith("."))
-			throw new IllegalArgumentException(
-					"Extension must be empty or start with .");
-		if (!extension.isEmpty()
-				&& filename.toLowerCase().endsWith(extension.toLowerCase()))
-			return filename;
-		// Everything after the last . - or just the end
-		return filename.replaceFirst("(\\.[^.]*)?$", extension);
-	}
-
-	public static Path getWorkflowRunProvenance(Bundle dataBundle) {
-		return dataBundle.getRoot().resolve(WORKFLOWRUN_PROV_TTL);
-	}
-
-	public static Path getWorkflowRunReport(Bundle dataBundle) {
-		return dataBundle.getRoot().resolve(WORKFLOWRUN_JSON);
-	}
-
-	public static JsonNode getWorkflowRunReportAsJson(Bundle dataBundle)
-			throws IOException {
-		Path path = getWorkflowRunReport(dataBundle);
-		try (InputStream jsonIn = newInputStream(path)) {
-			return OBJECT_MAPPER.instance.readTree(jsonIn);
-		}
-	}
-
-	public static void setWorkflowRunReport(Bundle dataBundle,
-			JsonNode workflowRunReport) throws IOException {
-		Path path = getWorkflowRunReport(dataBundle);
-		try (OutputStream out = newOutputStream(path)) {
-			OBJECT_MAPPER.instance.writeValue(out, workflowRunReport);
-		}
-	}
-
-	public static Path getWorkflow(Bundle dataBundle) throws IOException {
-		return anyExtension(dataBundle.getRoot(), WORKFLOW);
-	}
-
-	public static Path getWorkflowDescription(Bundle dataBundle)
-			throws IOException {
-		Path annotations = getAnnotations(dataBundle);
-		return annotations.resolve(WORKFLOW + DOT_WFDESC_TTL);
-	}
-
-	public static void setWorkflowBundle(Bundle dataBundle,
-			WorkflowBundle wfBundle) throws IOException {
-		Path bundlePath = withExtension(getWorkflow(dataBundle), DOT_WFBUNDLE);
-		checkExistingAnyExtension(bundlePath);
-
-		// TODO: Save as nested folder?
-		try (OutputStream outputStream = newOutputStream(bundlePath)) {
-			getWfBundleIO().writeBundle(wfBundle, outputStream,
-					WFBUNDLE_CONTENT_TYPE);
-		} catch (WriterException e) {
-			throw new IOException("Can't write workflow bundle to: "
-					+ bundlePath, e);
-		}
-
-		// wfdesc
-		Path wfdescPath = getWorkflowDescription(dataBundle);
-		try (OutputStream outputStream = newOutputStream(wfdescPath)) {
-			getWfBundleIO().writeBundle(wfBundle, outputStream, WFDESC_TURTLE);
-		} catch (IllegalArgumentException | WriterException e) {
-			logger.warn("Can't write wfdesc to: " + bundlePath, e);
-			delete(wfdescPath);
-			// throw new IOException("Can't write wfdesc to: " + bundlePath, e);
-		}
-	}
-
-	public static WorkflowBundle getWorkflowBundle(Bundle dataBundle)
-			throws ReaderException, IOException {
-		Path wf = getWorkflow(dataBundle);
-		// String type = Files.probeContentType(wf);
-		return wfBundleIO.readBundle(newInputStream(wf), null);
-	}
-
-	public static Path getIntermediates(Bundle dataBundle) throws IOException {
-		Path intermediates = dataBundle.getRoot().resolve(INTERMEDIATES);
-		createDirectories(intermediates);
-		return intermediates;
-	}
-
-	public static Path getIntermediate(Bundle dataBundle, UUID uuid)
-			throws IOException {
-		String fileName = uuid.toString();
-		Path intermediates = getIntermediates(dataBundle);
-		// Folder is named after first 2 characters of UUID
-		Path folder = intermediates.resolve(fileName.substring(0, 2));
-		createDirectories(folder);
-		return anyExtension(folder, fileName);
-	}
-
-	public static long getListSize(Path list) throws IOException {
-		// Should fail if list is not a directory
-		try (DirectoryStream<Path> ds = newDirectoryStream(list)) {
-			long max = -1L;
-			for (Path entry : ds)
-				try {
-					long entryNum = getEntryNumber(entry);
-					if (entryNum > max)
-						max = entryNum;
-				} catch (NumberFormatException ex) {
-				}
-			return max + 1;
-		} catch (DirectoryIteratorException ex) {
-			throw ex.getCause();
-		}
-	}
-
-	public static WorkflowBundleIO getWfBundleIO() {
-		if (wfBundleIO == null)
-			wfBundleIO = new WorkflowBundleIO();
-		return wfBundleIO;
-	}
-
-	public static void setWfBundleIO(WorkflowBundleIO wfBundleIO) {
-		if (wfBundleIO == null)
-			throw new NullPointerException();
-		DataBundles.wfBundleIO = wfBundleIO;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/main/java/org/apache/taverna/databundle/ErrorDocument.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/main/java/org/apache/taverna/databundle/ErrorDocument.java b/taverna-databundle/src/main/java/org/apache/taverna/databundle/ErrorDocument.java
deleted file mode 100644
index ec551b8..0000000
--- a/taverna-databundle/src/main/java/org/apache/taverna/databundle/ErrorDocument.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.apache.taverna.databundle;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ErrorDocument {
-	private List<Path> causedBy = new ArrayList<>();
-	private String message = "";
-	private String trace = "";
-
-	public List<Path> getCausedBy() {
-		return causedBy;
-	}
-
-	public String getMessage() {
-		return message;
-	}
-
-	public String getTrace() {
-		return trace;
-	}
-
-	public void setCausedBy(List<Path> causedBy) {
-		this.causedBy.clear();
-		if (causedBy != null)
-			this.causedBy.addAll(causedBy);
-	}
-
-	public void setMessage(String message) {
-		if (message == null)
-			message = "";
-		this.message = message;
-	}
-
-	public void setTrace(String trace) {
-		if (trace == null)
-			trace = "";
-		this.trace = trace;
-	}
-}


[04/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/rshell-2-2.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/rshell-2-2.t2flow b/taverna-scufl2-t2flow/src/test/resources/rshell-2-2.t2flow
deleted file mode 100755
index 798a520..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/rshell-2-2.t2flow
+++ /dev/null
@@ -1,210 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="819135a3-2a42-4494-a98b-0e25148af91e" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>Rshell</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>rshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.rshell.RshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean xmlns="">
-  <rVersion>false</rVersion>
-  <script>a
-script</script>
-  <connectionSettings>
-    <host>localhost</host>
-    <port>6311</port>
-    <username>user</username>
-    <password>passwd</password>
-    <keepSessionAlive>true</keepSessionAlive>
-    <newRVersion>false</newRVersion>
-  </connectionSettings>
-  <inputSymanticTypes>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>num</name>
-      <symanticType>DOUBLE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>int</name>
-      <symanticType>INTEGER</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>str</name>
-      <symanticType>STRING</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>logVec</name>
-      <symanticType>BOOL_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>numVec</name>
-      <symanticType>DOUBLE_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>intVec</name>
-      <symanticType>INTEGER_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>strVec</name>
-      <symanticType>STRING_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>txt</name>
-      <symanticType>TEXT_FILE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>str2</name>
-      <symanticType reference="../../net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[3]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-  </inputSymanticTypes>
-  <outputSymanticTypes>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>log</name>
-      <symanticType>BOOL</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>int</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[2]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>str</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[3]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>logVec</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[4]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>numVec</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[5]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>intVect</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[6]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>strVect</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[7]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>png</name>
-      <symanticType>PNG_FILE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>txt</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[8]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-  </outputSymanticTypes>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>num</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>int</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>str</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>logVec</name>
-      <depth>1</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>numVec</name>
-      <depth>1</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>intVec</name>
-      <depth>1</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>strVec</name>
-      <depth>1</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>txt</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>str2</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>log</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>int</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>str</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>logVec</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>numVec</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>intVect</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>strVect</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>png</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>txt</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks /><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>819135a3-2a42-4494-a98b-0e25148af91e</identification>
-      </annotationBean>
-      <date>2011-08-18 17:07:13.164 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/semantic_annotations__eclipse.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/semantic_annotations__eclipse.t2flow b/taverna-scufl2-t2flow/src/test/resources/semantic_annotations__eclipse.t2flow
deleted file mode 100644
index f2d5e9c..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/semantic_annotations__eclipse.t2flow
+++ /dev/null
@@ -1,541 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://taverna.sf.net/2008/xml/t2flow ../../main/resources/uk/org/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd "
-	xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1"
-	producedBy="taverna-2.4.0SNAPSHOT">
-	<dataflow id="2d726ace-4635-4bd1-89d5-703a50c96c1a" role="top">
-		<name>Example_component</name>
-		<inputPorts>
-			<port>
-				<name>suffix</name>
-				<depth>0</depth>
-				<granularDepth>0</granularDepth>
-				<annotations />
-			</port>
-		</inputPorts>
-		<outputPorts>
-			<port>
-				<name>result</name>
-				<annotations />
-			</port>
-		</outputPorts>
-		<processors>
-			<processor>
-				<name>Create_Lots_Of_Strings</name>
-				<inputPorts />
-				<outputPorts>
-					<port>
-						<name>strings</name>
-						<depth>1</depth>
-						<granularDepth>1</granularDepth>
-					</port>
-				</outputPorts>
-				<annotations />
-				<activities>
-					<activity>
-						<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-						<inputMap />
-						<outputMap>
-							<map from="strings" to="strings" />
-						</outputMap>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
-								xmlns="">
-								<inputs />
-								<outputs>
-									<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-										<name>strings</name>
-										<depth>1</depth>
-										<mimeTypes>
-											<string>l('text/plain')</string>
-										</mimeTypes>
-										<granularDepth>1</granularDepth>
-									</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-								</outputs>
-								<classLoaderSharing>workflow</classLoaderSharing>
-								<localDependencies />
-								<artifactDependencies />
-								<script>List strings = new ArrayList();
-for (int i = 0; i &lt; 40; i++) {
-	strings.add("String" + i);
-}
-</script>
-								<dependencies />
-								<localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
-							</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-						</configBean>
-						<annotations />
-					</activity>
-				</activities>
-				<dispatchStack>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
-								xmlns="">
-								<maxJobs>1</maxJobs>
-							</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
-								xmlns="">
-								<backoffFactor>1.0</backoffFactor>
-								<initialDelay>1000</initialDelay>
-								<maxDelay>5000</maxDelay>
-								<maxRetries>0</maxRetries>
-							</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-				</dispatchStack>
-				<iterationStrategyStack>
-					<iteration>
-						<strategy />
-					</iteration>
-				</iterationStrategyStack>
-			</processor>
-			<processor>
-				<name>Sometimes_Fails</name>
-				<inputPorts>
-					<port>
-						<name>in</name>
-						<depth>0</depth>
-					</port>
-				</inputPorts>
-				<outputPorts>
-					<port>
-						<name>out</name>
-						<depth>0</depth>
-						<granularDepth>0</granularDepth>
-					</port>
-				</outputPorts>
-				<annotations />
-				<activities>
-					<activity>
-						<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-						<inputMap>
-							<map from="in" to="in" />
-						</inputMap>
-						<outputMap>
-							<map from="out" to="out" />
-						</outputMap>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
-								xmlns="">
-								<inputs>
-									<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-										<name>in</name>
-										<depth>0</depth>
-										<mimeTypes>
-											<string>'text/plain'</string>
-										</mimeTypes>
-										<handledReferenceSchemes />
-										<translatedElementType>java.lang.String</translatedElementType>
-										<allowsLiteralValues>true</allowsLiteralValues>
-									</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-								</inputs>
-								<outputs>
-									<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-										<name>out</name>
-										<depth>0</depth>
-										<mimeTypes>
-											<string>'text/plain'</string>
-										</mimeTypes>
-										<granularDepth>0</granularDepth>
-									</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-								</outputs>
-								<classLoaderSharing>workflow</classLoaderSharing>
-								<localDependencies />
-								<artifactDependencies />
-								<script>import java.util.Random;
-
-Random r = new Random();
-
-if ((r.nextInt() % 4) == 0) {
-	throw new RuntimeException("Fails every four runs!");
-}
-
-out = in;</script>
-								<dependencies />
-								<localworkerName>org.embl.ebi.escience.scuflworkers.java.TestSometimesFails</localworkerName>
-							</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-						</configBean>
-						<annotations />
-					</activity>
-				</activities>
-				<dispatchStack>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
-								xmlns="">
-								<maxJobs>1</maxJobs>
-							</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
-								xmlns="">
-								<backoffFactor>1.0</backoffFactor>
-								<initialDelay>1000</initialDelay>
-								<maxDelay>5000</maxDelay>
-								<maxRetries>0</maxRetries>
-							</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-				</dispatchStack>
-				<iterationStrategyStack>
-					<iteration>
-						<strategy>
-							<cross>
-								<port name="in" depth="0" />
-							</cross>
-						</strategy>
-					</iteration>
-				</iterationStrategyStack>
-			</processor>
-			<processor>
-				<name>Concatenate_two_strings</name>
-				<inputPorts>
-					<port>
-						<name>string2</name>
-						<depth>0</depth>
-					</port>
-					<port>
-						<name>string1</name>
-						<depth>0</depth>
-					</port>
-				</inputPorts>
-				<outputPorts>
-					<port>
-						<name>output</name>
-						<depth>0</depth>
-						<granularDepth>0</granularDepth>
-					</port>
-				</outputPorts>
-				<annotations />
-				<activities>
-					<activity>
-						<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-						<inputMap>
-							<map from="string2" to="string2" />
-							<map from="string1" to="string1" />
-						</inputMap>
-						<outputMap>
-							<map from="output" to="output" />
-						</outputMap>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
-								xmlns="">
-								<inputs>
-									<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-										<name>string1</name>
-										<depth>0</depth>
-										<mimeTypes>
-											<string>'text/plain'</string>
-										</mimeTypes>
-										<handledReferenceSchemes />
-										<translatedElementType>java.lang.String</translatedElementType>
-										<allowsLiteralValues>true</allowsLiteralValues>
-									</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-									<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-										<name>string2</name>
-										<depth>0</depth>
-										<mimeTypes>
-											<string>'text/plain'</string>
-										</mimeTypes>
-										<handledReferenceSchemes />
-										<translatedElementType>java.lang.String</translatedElementType>
-										<allowsLiteralValues>true</allowsLiteralValues>
-									</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-								</inputs>
-								<outputs>
-									<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-										<name>output</name>
-										<depth>0</depth>
-										<mimeTypes>
-											<string>'text/plain'</string>
-										</mimeTypes>
-										<granularDepth>0</granularDepth>
-									</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-								</outputs>
-								<classLoaderSharing>workflow</classLoaderSharing>
-								<localDependencies />
-								<artifactDependencies />
-								<script>output = string1 + string2;</script>
-								<dependencies />
-								<localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-							</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-						</configBean>
-						<annotations />
-					</activity>
-				</activities>
-				<dispatchStack>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
-								xmlns="">
-								<maxJobs>1</maxJobs>
-							</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-						<configBean encoding="xstream">
-							<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
-								xmlns="">
-								<backoffFactor>1.0</backoffFactor>
-								<initialDelay>1000</initialDelay>
-								<maxDelay>5000</maxDelay>
-								<maxRetries>0</maxRetries>
-							</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-						</configBean>
-					</dispatchLayer>
-					<dispatchLayer>
-						<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-						<configBean encoding="xstream">
-							<null xmlns="" />
-						</configBean>
-					</dispatchLayer>
-				</dispatchStack>
-				<iterationStrategyStack>
-					<iteration>
-						<strategy>
-							<cross>
-								<port name="string2" depth="0" />
-								<port name="string1" depth="0" />
-							</cross>
-						</strategy>
-					</iteration>
-				</iterationStrategyStack>
-			</processor>
-		</processors>
-		<conditions />
-		<datalinks>
-			<datalink>
-				<sink type="processor">
-					<processor>Sometimes_Fails</processor>
-					<port>in</port>
-				</sink>
-				<source type="processor">
-					<processor>Create_Lots_Of_Strings</processor>
-					<port>strings</port>
-				</source>
-			</datalink>
-			<datalink>
-				<sink type="processor">
-					<processor>Concatenate_two_strings</processor>
-					<port>string2</port>
-				</sink>
-				<source type="dataflow">
-					<port>suffix</port>
-				</source>
-			</datalink>
-			<datalink>
-				<sink type="processor">
-					<processor>Concatenate_two_strings</processor>
-					<port>string1</port>
-				</sink>
-				<source type="processor">
-					<processor>Sometimes_Fails</processor>
-					<port>out</port>
-				</source>
-			</datalink>
-			<datalink>
-				<sink type="dataflow">
-					<port>result</port>
-				</sink>
-				<source type="processor">
-					<processor>Concatenate_two_strings</processor>
-					<port>output</port>
-				</source>
-			</datalink>
-		</datalinks>
-		<annotations>
-			<annotation_chain_2_2 encoding="xstream">
-				<net.sf.taverna.t2.annotation.AnnotationChainImpl
-					xmlns="">
-					<annotationAssertions>
-						<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-							<annotationBean
-								class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
-								<mimeType>text/rdf+n3</mimeType>
-								<content>&lt;&gt;
-									&lt;http://purl.org/dc/terms/abstract&gt;
-									"A not very interesting
-									component"^^&lt;http://www.w3.org/2001/XMLSchema#string&gt; ;
-									&lt;http://purl.org/dc/terms/accessRights&gt;
-									&lt;http://creativecommons.org/licenses/by-sa/3.0/&gt; ;
-									&lt;http://purl.org/dc/terms/alternative&gt;
-									"A very interesting
-									component"^^&lt;http://www.w3.org/2001/XMLSchema#string&gt; ;
-									&lt;http://purl.org/dc/terms/audience&gt;
-									&lt;http://purl.org/dc/terms/Agent&gt; ;
-									&lt;http://purl.org/dc/terms/title&gt;
-									"Alan's annotated
-									title"^^&lt;http://www.w3.org/2001/XMLSchema#string&gt; .
-								</content>
-							</annotationBean>
-							<date>2013-03-13 15:22:30.556 UTC</date>
-							<creators />
-							<curationEventList />
-						</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-					</annotationAssertions>
-				</net.sf.taverna.t2.annotation.AnnotationChainImpl>
-			</annotation_chain_2_2>
-			<annotation_chain encoding="xstream">
-				<net.sf.taverna.t2.annotation.AnnotationChainImpl
-					xmlns="">
-					<annotationAssertions>
-						<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-							<annotationBean
-								class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-								<text>Example component</text>
-							</annotationBean>
-							<date>2013-03-13 15:19:26.250 UTC</date>
-							<creators />
-							<curationEventList />
-						</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-					</annotationAssertions>
-				</net.sf.taverna.t2.annotation.AnnotationChainImpl>
-			</annotation_chain>
-			<annotation_chain encoding="xstream">
-				<net.sf.taverna.t2.annotation.AnnotationChainImpl
-					xmlns="">
-					<annotationAssertions>
-						<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-							<annotationBean
-								class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-								<text>Example component for Stian</text>
-							</annotationBean>
-							<date>2013-03-13 15:19:35.27 UTC</date>
-							<creators />
-							<curationEventList />
-						</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-					</annotationAssertions>
-				</net.sf.taverna.t2.annotation.AnnotationChainImpl>
-			</annotation_chain>
-			<annotation_chain_2_2 encoding="xstream">
-				<net.sf.taverna.t2.annotation.AnnotationChainImpl
-					xmlns="">
-					<annotationAssertions>
-						<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-							<annotationBean
-								class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-								<identification>2d726ace-4635-4bd1-89d5-703a50c96c1a
-								</identification>
-							</annotationBean>
-							<date>2013-03-13 15:22:59.520 UTC</date>
-							<creators />
-							<curationEventList />
-						</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-					</annotationAssertions>
-				</net.sf.taverna.t2.annotation.AnnotationChainImpl>
-			</annotation_chain_2_2>
-			<annotation_chain_2_2 encoding="xstream">
-				<net.sf.taverna.t2.annotation.AnnotationChainImpl
-					xmlns="">
-					<annotationAssertions>
-						<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-							<annotationBean
-								class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-								<identification>1eefd4e6-f1e2-45f3-b085-10a372d4afca
-								</identification>
-							</annotationBean>
-							<date>2013-03-13 15:18:53.766 UTC</date>
-							<creators />
-							<curationEventList />
-						</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-					</annotationAssertions>
-				</net.sf.taverna.t2.annotation.AnnotationChainImpl>
-			</annotation_chain_2_2>
-			<annotation_chain encoding="xstream">
-				<net.sf.taverna.t2.annotation.AnnotationChainImpl
-					xmlns="">
-					<annotationAssertions>
-						<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-							<annotationBean
-								class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-								<text>Alan R Williams</text>
-							</annotationBean>
-							<date>2013-03-13 15:19:22.146 UTC</date>
-							<creators />
-							<curationEventList />
-						</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-					</annotationAssertions>
-				</net.sf.taverna.t2.annotation.AnnotationChainImpl>
-			</annotation_chain>
-		</annotations>
-	</dataflow>
-</workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/simple_fasta.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/simple_fasta.t2flow b/taverna-scufl2-t2flow/src/test/resources/simple_fasta.t2flow
deleted file mode 100644
index b9cd40e..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/simple_fasta.t2flow
+++ /dev/null
@@ -1,78 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="ce96163a-d930-4e1a-b000-a35b847ef7b4" role="top"><name>Workflow1</name><inputPorts><port><name>ID</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>P15409</text>
-      </annotationBean>
-      <date>2013-07-25 10:20:45.653 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>sequence</name><annotations /></port></outputPorts><processors><processor><name>Get_Protein_FASTA</name><inputPorts><port><name>id</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outputText</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="id" to="id" /></inputMap><outputMap><map from="outputText" to="outputText" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>id</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>outputText</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>if ((id == void) || (id == null) || id.equals("")) {
-	throw new RunTimeException("port id must have a non-empty value");
-}
-
-URL url = new URL ("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?rettype=fasta&amp;db=protein&amp;retmode=text&amp;id=" + id);
-
-BufferedReader reader = new BufferedReader (new InputStreamReader(url.openStream()));
-StringWriter writer = new StringWriter();
-
-char[] buffer = new char[1024];
-    while (true) {
-        int r = reader.read(buffer);
-        if (r &lt;= 0) {
-            break;
-        }
-        writer.write(buffer, 0, r);
-    }
-reader.close();
-outputText = writer.toString();
-</script>
-  <dependencies />
-  <localworkerName>net.sourceforge.taverna.scuflworkers.ncbi.ProteinFastaWorker</localworkerName>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="id" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Get_Protein_FASTA</processor><port>id</port></sink><source type="dataflow"><port>ID</port></source></datalink><datalink><sink type="dataflow"><port>sequence</port></sink><source type="processor"><processor>Get_Protein_FASTA</processor><port>outputText</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.ann
 otation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ce96163a-d930-4e1a-b000-a35b847ef7b4</identification>
-      </annotationBean>
-      <date>2013-07-25 10:20:51.37 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/sleepers.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/sleepers.t2flow b/taverna-scufl2-t2flow/src/test/resources/sleepers.t2flow
deleted file mode 100755
index 3022c1a..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/sleepers.t2flow
+++ /dev/null
@@ -1,215 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.3.0"><dataflow id="b3701848-309f-4010-8212-166f621d7714" role="top"><name>Workflow8</name><inputPorts /><outputPorts><port><name>third_sleeper_report</name><annotations /></port><port><name>second_sleeper_report</name><annotations /></port><port><name>second_sleeper_2_report</name><annotations /></port><port><name>first_sleeper_report</name><annotations /></port><port><name>first_sleeper_finished</name><annotations /></port><port><name>second_sleeper_started</name><annotations /></port><port><name>second_sleeper_finished</name><annotations /></port><port><name>second_sleeper_2_finished</name><annotations /></port><port><name>second_sleeper_2_started</name><annotations /></port><port><name>third_sleeper_started</name><annotations /></port></outputPorts><processors><processor><name>second_sleeper</name><inputPorts /><outputPorts><port><name>report</name><depth>0</depth><granularDepth>0</granularD
 epth></port><port><name>started</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>finished</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap><map from="report" to="report" /><map from="finished" to="finished" /><map from="started" to="started" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>report</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>duration</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>started</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>finished</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>started = new Date().getTime();
-Thread.sleep(2500);
-finished = new Date().getTime();
-duration = finished - started;
-
-report = "Started at " + started + "\nFinished at "
-  + finished + ", took " + duration + " ms";
-
-</script>
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>first_sleeper</name><inputPorts /><outputPorts><port><name>report</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>finished</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap><map from=
 "report" to="report" /><map from="finished" to="finished" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>report</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>duration</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>started</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>finished</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>started = new Date().getTime();
-Thread.sleep(1000);
-finished = new Date().getTime();
-duration = finished - started;
-
-report = "Started at " + started + "\nFinished at "
-  + finished + ", took " + duration + " ms";
-
-</script>
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>second_sleeper_2</name><inputPorts /><outputPorts><port><name>report</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>finished</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>started</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.tavern
 a.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap><map from="report" to="report" /><map from="finished" to="finished" /><map from="started" to="started" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>report</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>duration</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>started</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>finished</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>started = new Date().getTime();
-Thread.sleep(3500);
-finished = new Date().getTime();
-duration = finished - started;
-
-report = "Started at " + started + "\nFinished at "
-  + finished + ", took " + duration + " ms";
-
-</script>
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>third_sleeper</name><inputPorts /><outputPorts><port><name>report</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>started</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap><map from="
 report" to="report" /><map from="started" to="started" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>report</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>duration</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>started</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>finished</name>
-      <depth>0</depth>
-      <mimeTypes />
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <script>started = new Date().getTime();
-Thread.sleep(2500);
-finished = new Date().getTime();
-duration = finished - started;
-
-report = "Started at " + started + "\nFinished at "
-  + finished + ", took " + duration + " ms";
-
-</script>
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions><condition control="second_sleeper" target="third_sleeper" /><condition control="first_sleeper" target="second_sleeper_2" /><condition control="first_sleeper" target="second_sleeper" /><condition control="second_sleeper_2" target="third_sleeper" /></conditions><datalinks><datalink><sink type="dataflow"><port>third_sleeper_report</port></sink><source type="processor"><processor>third_sleeper</processor><port>report</port></source></datalink><datalink><sink type="dataflow"
 ><port>second_sleeper_report</port></sink><source type="processor"><processor>second_sleeper</processor><port>report</port></source></datalink><datalink><sink type="dataflow"><port>second_sleeper_2_report</port></sink><source type="processor"><processor>second_sleeper_2</processor><port>report</port></source></datalink><datalink><sink type="dataflow"><port>first_sleeper_report</port></sink><source type="processor"><processor>first_sleeper</processor><port>report</port></source></datalink><datalink><sink type="dataflow"><port>first_sleeper_finished</port></sink><source type="processor"><processor>first_sleeper</processor><port>finished</port></source></datalink><datalink><sink type="dataflow"><port>second_sleeper_started</port></sink><source type="processor"><processor>second_sleeper</processor><port>started</port></source></datalink><datalink><sink type="dataflow"><port>second_sleeper_finished</port></sink><source type="processor"><processor>second_sleeper</processor><port>finished<
 /port></source></datalink><datalink><sink type="dataflow"><port>second_sleeper_2_finished</port></sink><source type="processor"><processor>second_sleeper_2</processor><port>finished</port></source></datalink><datalink><sink type="dataflow"><port>second_sleeper_2_started</port></sink><source type="processor"><processor>second_sleeper_2</processor><port>started</port></source></datalink><datalink><sink type="dataflow"><port>third_sleeper_started</port></sink><source type="processor"><processor>third_sleeper</processor><port>started</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>b3701848-309f-4010-8212-166f621d7714</identification>
-      </annotationBean>
-      <date>2011-08-25 12:18:38.470 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>57411dbe-9c2d-47c6-a404-2fa43812faa1</identification>
-      </annotationBean>
-      <date>2011-08-25 12:15:29.11 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/spreadsheet_activity_defaults_892.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/spreadsheet_activity_defaults_892.t2flow b/taverna-scufl2-t2flow/src/test/resources/spreadsheet_activity_defaults_892.t2flow
deleted file mode 100644
index 2a3fb45..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/spreadsheet_activity_defaults_892.t2flow
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.1-beta-2"><dataflow id="d6c01ddf-f1a5-4cb7-95b6-a47ce19838a8" role="top"><name>Workflow1</name><inputPorts><port><name>file_url</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>A_column</name></port><port><name>B_column</name></port></outputPorts><processors><processor><name>SpreadsheetImport</name><inputPorts><port><name>fileurl</name><depth>0</depth></port></inputPorts><outputPorts><port><name>A</name><depth>1</depth><granularDepth>1</granularDepth></port><port><name>B</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>spreadsheet-import-activity</artifact><version>0.2</version></raven><class>net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportActivity</class><inputMap><map from="fileurl" to="fileurl" />
 </inputMap><outputMap><map from="A" to="A" /><map from="B" to="B" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration xmlns="">
-  <columnRange>
-    <start>0</start>
-    <end>1</end>
-    <excludes />
-  </columnRange>
-  <rowRange>
-    <start>0</start>
-    <end>-1</end>
-    <excludes />
-  </rowRange>
-  <emptyCellValue />
-  <columnNames />
-  <allRows>true</allRows>
-  <excludeFirstRow>false</excludeFirstRow>
-  <ignoreBlankRows>true</ignoreBlankRows>
-  <emptyCellPolicy>EMPTY_STRING</emptyCellPolicy>
-</net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="fileurl" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>SpreadsheetImport</processor><port>fileurl</port></sink><source type="dataflow"><port>file_url</port></source></datalink><datalink><sink type="dataflow"><port>A_column</port></sink><source type="processor"><processor>SpreadsheetImport</processor><port>A</port></source></datalink><datalink><sink type="dataflow"><port>B_column</port></sink><source type="process
 or"><processor>SpreadsheetImport</processor><port>B</port></source></datalink></datalinks><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Paul Fisher</text>
-      </annotationBean>
-      <date>2009-08-24 13:19:15.753 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>This workflow is designed to import a spreadhseet from a local computer. The imported spreadsheet is parsed to extract the first two columns, A and B, for all rows in the spreadsheet. These are returned as two separate outputs.</text>
-      </annotationBean>
-      <date>2009-08-24 13:20:49.43 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Spreadsheet Importer</text>
-      </annotationBean>
-      <date>2009-08-24 13:19:23.773 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/xpath_workflow.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/xpath_workflow.t2flow b/taverna-scufl2-t2flow/src/test/resources/xpath_workflow.t2flow
deleted file mode 100644
index be46489..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/xpath_workflow.t2flow
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="1345660e-8b56-407c-9d3f-c2fd3489d26d" role="top"><name>Workflow20</name><inputPorts><port><name>input_file</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>STDERR</name><annotations /></port><port><name>width</name><annotations /></port><port><name>height</name><annotations /></port></outputPorts><processors><processor><name>jpylyzer</name><inputPorts><port><name>input_file</name><depth>0</depth></port></inputPorts><outputPorts><port><name>STDERR</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>STDOUT</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>external-tool-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.externaltool.External
 ToolActivity</class><inputMap><map from="input_file" to="input_file" /></inputMap><outputMap><map from="STDERR" to="STDERR" /><map from="STDOUT" to="STDOUT" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean xmlns="">
-  <mechanismType>789663B8-DA91-428A-9F7D-B3F3DA185FD4</mechanismType>
-  <mechanismName>default local</mechanismName>
-  <mechanismXML>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#xD;
-&lt;localInvocation&gt;&lt;shellPrefix&gt;/bin/sh -c&lt;/shellPrefix&gt;&lt;linkCommand&gt;/bin/ln -s %%PATH_TO_ORIGINAL%% %%TARGET_NAME%%&lt;/linkCommand&gt;&lt;/localInvocation&gt;&#xD;
-</mechanismXML>
-  <externaltoolid>efc67bc3-a02c-437f-a525-8557642cb77b</externaltoolid>
-  <useCaseDescription>
-    <usecaseid />
-    <description />
-    <command>jpylyzer %%input_file%%</command>
-    <preparingTimeoutInSeconds>1200</preparingTimeoutInSeconds>
-    <executionTimeoutInSeconds>1800</executionTimeoutInSeconds>
-    <tags>
-      <string>input_file</string>
-    </tags>
-    <REs />
-    <queue__preferred />
-    <queue__deny />
-    <static__inputs />
-    <inputs>
-      <entry>
-        <string>input_file</string>
-        <de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-          <tag>input_file</tag>
-          <file>false</file>
-          <tempFile>false</tempFile>
-          <binary>false</binary>
-          <charsetName>MacRoman</charsetName>
-          <forceCopy>false</forceCopy>
-          <list>false</list>
-          <concatenate>false</concatenate>
-          <mime />
-        </de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser>
-      </entry>
-    </inputs>
-    <outputs />
-    <includeStdIn>false</includeStdIn>
-    <includeStdOut>true</includeStdOut>
-    <includeStdErr>true</includeStdErr>
-    <validReturnCodes>
-      <int>0</int>
-    </validReturnCodes>
-  </useCaseDescription>
-  <edited>false</edited>
-</net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input_file" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>XPath_width</name><inputPorts><port><name>xml_text</name><depth>0</depth></port></inputPorts><outputPorts><port><name>nodelist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>xpath-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.xpath.XPathActivity</class><input
 Map><map from="xml_text" to="xml_text" /></inputMap><outputMap><map from="nodelist" to="nodelist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.xpath.XPathActivityConfigurationBean xmlns="">
-  <xmlDocument>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;input&gt;
-    &lt;width&gt;42&lt;/width&gt;
-    &lt;height&gt;24&lt;/height&gt;
-&lt;/input&gt;</xmlDocument>
-  <xpathExpression>//width/text()</xpathExpression>
-  <xpathNamespaceMap />
-</net.sf.taverna.t2.activities.xpath.XPathActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="xml_text" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>XPath_height</name><inputPorts><port><name>xml_text</name><depth>0</depth></port></inputPorts><outputPorts><port><name>nodelist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>xpath-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.xpath.XPathActivity</class><inputM
 ap><map from="xml_text" to="xml_text" /></inputMap><outputMap><map from="nodelist" to="nodelist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.xpath.XPathActivityConfigurationBean xmlns="">
-  <xpathExpression>//height/text()</xpathExpression>
-  <xpathNamespaceMap />
-</net.sf.taverna.t2.activities.xpath.XPathActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="xml_text" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>jpylyzer</processor><port>input_file</port></sink><source type="dataflow"><port>input_file</port></source></datalink><datalink><sink type="processor"><processor>XPath_width</processor><port>xml_text</port></sink><source type="processor"><processor>jpylyzer</processor><port>STDOUT</port></source></datalink><datalink><sink type="processor"><processor>XPath_hei
 ght</processor><port>xml_text</port></sink><source type="processor"><processor>jpylyzer</processor><port>STDOUT</port></source></datalink><datalink><sink type="dataflow"><port>STDERR</port></sink><source type="processor"><processor>jpylyzer</processor><port>STDERR</port></source></datalink><datalink><sink type="dataflow"><port>width</port></sink><source type="processor"><processor>XPath_width</processor><port>nodelist</port></source></datalink><datalink><sink type="dataflow"><port>height</port></sink><source type="processor"><processor>XPath_height</processor><port>nodelist</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>1345660e-8b56-407c-9d3f-c2fd3489d26d</identification>
-      </annotationBean>
-      <date>2013-04-04 09:22:11.660 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/.gitignore b/taverna-scufl2-ucfpackage/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/taverna-scufl2-ucfpackage/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target


[51/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
temporarily empty repository

.. as Software Grant is not yet formally on file


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/316e4a8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/316e4a8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/316e4a8a

Branch: refs/heads/master
Commit: 316e4a8a8871a09cb9e7986ed2ef99570a16cfd6
Parents: aa46364
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Feb 17 20:39:33 2015 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Feb 17 20:39:33 2015 +0000

----------------------------------------------------------------------
 .gitignore                                      |     5 -
 .travis.yml                                     |    15 -
 LICENSE                                         |   176 -
 README.md                                       |   230 -
 pom.xml                                         |   350 -
 taverna-baclava-language/pom.xml                |    66 -
 .../apache/taverna/baclava/BaclavaReader.java   |    42 -
 .../apache/taverna/baclava/BaclavaWriter.java   |    47 -
 .../src/main/resources/xsd/baclava.xsd          |   183 -
 .../src/main/resources/xsd/xscufl.xsd           |    41 -
 .../apache/taverna/baclava/TestExample1.java    |    96 -
 .../apache/taverna/baclava/TestRoundTrip.java   |    59 -
 .../src/test/resources/example1.xml             |    74 -
 .../src/test/resources/example2.xml             |   370 -
 taverna-databundle/README.md                    |   172 -
 taverna-databundle/pom.xml                      |   109 -
 .../apache/taverna/databundle/DataBundles.java  |   454 -
 .../taverna/databundle/ErrorDocument.java       |    62 -
 .../taverna/databundle/TestDataBundles.java     |   815 -
 .../apache/taverna/databundle/TestExample.java  |   174 -
 .../taverna/databundle/TestFullExample.java     |   163 -
 .../ebi-wfrun-2013-05-31/Graphical_output.png   |   Bin 31733 -> 0 bytes
 .../Workflow16_getStatus_output_status.txt      |     1 -
 .../full-example/ebi-wfrun-2013-05-31/email.txt |     1 -
 .../getResult_3_output_output.xml               |    52 -
 .../getResult_output_output.octet-stream        |    12 -
 .../00/00548907-43e1-4484-9582-bfa8727d44ca.txt |     1 -
 .../07/079d289b-796e-45cf-a759-82f91a0aa3d5.txt |     1 -
 .../0a/0a2b3aa2-5b11-433d-b48f-1009424bb486.txt |     1 -
 .../0b/0bd05e27-46d6-4de5-b76b-0988638f9231.txt |     8 -
 .../0c/0c29c209-b442-49c5-bee2-5b5efdacad0e.txt |     1 -
 .../0f/0f93d00f-131b-42ec-bbba-22b50582903e.txt |     1 -
 .../11/111e5771-37b7-4ef8-9888-e50eadbc2a5c.txt |     1 -
 .../13/132a7e6c-1857-4ad6-8252-5f747f6f0feb.txt |     1 -
 .../14/147eda4d-f40f-418b-bca2-dc12e19122de.txt |     1 -
 .../14/14b9027d-11bb-4586-bff7-89130856409b.txt |     1 -
 .../18/18d41521-e314-4122-a4ff-cb7718982935.txt |     1 -
 .../1f/1f536bcf-ba43-44ec-a983-b30a45f2b739.txt |     1 -
 .../21/219626eb-a4fc-4c83-9132-67b2b40d5a68.txt |     1 -
 .../26/268a47b4-34aa-42d0-96ad-98b99601a4e5.txt |     1 -
 .../28/28ccca88-6e06-4d5a-a43e-93ad263c6abd.txt |     8 -
 .../2a/2a8831af-c11f-4d0e-be9d-d90c170c1002.txt |     1 -
 .../2a/2a91a135-c649-4735-a02f-6db45b9c847e.txt |     1 -
 .../32/321106aa-13f1-49e5-a10b-bf08693f7df6.txt |     1 -
 .../37/3792ebd6-6210-4af9-bc3f-74e3934a52ef.txt |     1 -
 .../3d/3df7b202-58f3-4425-b063-4f4f7ab4cd5a.txt |     1 -
 .../4a/4acb798d-0fd2-4b9c-91e5-587e5aa8366a.txt |     1 -
 .../51/51845ad9-e0a3-4094-8ce8-f2f5bd06e61e.txt |     1 -
 .../5a/5aec892f-fad5-4f90-b1c1-8241b8917f8b.txt |     1 -
 .../5b/5b5357f1-3062-43ab-adab-e0f3e3721dcc.txt |     1 -
 .../5b/5b8444ec-0592-4154-8f02-638c79f4171a.txt |     1 -
 .../5b/5bb72df1-fc1d-43d8-9206-dcab6ced0437.txt |     1 -
 .../5d/5d572af1-f6fb-48a4-b338-a7ce140932ec.txt |     1 -
 .../67/67958fa2-98dd-4f82-b9f6-96537cea9528.txt |     1 -
 .../71/71540c58-5ff6-4dee-a26e-f1360b135e54.txt |     1 -
 .../73/731b11bb-a3be-4054-b1e4-3331a8f3c0c0.txt |     1 -
 .../77/77ede682-e556-4d89-b429-219adfbe48be.txt |     1 -
 .../7c/7ceba67b-46e2-4c4b-9cec-e5f0e11c43e9.txt |     1 -
 .../7e/7e7ee056-5a86-45a3-b4e6-e8de44679922.txt |     1 -
 .../86/8618bc0b-9852-457d-b0b7-16af5526faaf.txt |     1 -
 .../86/864a72a6-34b8-4d74-86f7-4b6ccfe91a1f.txt |     1 -
 .../8c/8c50b1fe-e91e-4840-86af-ec99c2b04a67.txt |     1 -
 .../8e/8ed106dd-7ada-4d61-a3f6-01740454cd76.txt |     1 -
 .../91/91fdc8e6-159e-495e-842a-ef51fe3ec534.txt |     1 -
 .../94/94a5377e-5752-433c-aa8b-c39bb461505f.txt |     1 -
 .../94/94d65aea-ed02-488c-aa38-d3b9840e4b65.txt |     1 -
 .../a2/a217d73f-1843-4162-9bae-a5b05541b538.txt |     1 -
 .../a5/a58b2fcd-fb4c-4445-be36-b5c00b96a813.txt |     1 -
 .../a7/a746bcfc-5d24-48ae-a12f-e3d285ed3b4d.txt |     1 -
 .../a7/a7c9ef28-f3de-4566-aac6-90d5fa20318a.txt |     1 -
 .../a8/a8fba0e7-10a6-4fed-afd9-3a15fd24ba8e.txt |     1 -
 .../ad/add43936-5cc3-4635-bc4e-dc64a6664dd8.txt |     1 -
 .../b0/b07b9f2f-e0c1-4ec0-ba83-102d18e3cf11.txt |     1 -
 .../b3/b3dd41e8-e94b-4e14-9080-1e44efa8ab66.txt |     1 -
 .../b5/b5a4997d-d390-4d62-820c-85018453186f.txt |     1 -
 .../b8/b8685135-065a-409c-9c11-1fedbd61bb90.txt |     1 -
 .../c4/c4776372-5fa1-4b05-92bc-585ccb4344af.txt |     1 -
 .../cc/cc26451d-53c7-490d-8d9f-ac7a1f45e30e.txt |     1 -
 .../d3/d34be34f-e857-46ee-8ee2-5c3384e05655.txt |     1 -
 .../d6/d69fe838-97dd-43cc-9a08-567cfb842f1a.txt |     1 -
 .../da/dac12490-1cbc-4607-a825-40f121f69fc4.txt |     1 -
 .../f2/f273b491-edd2-4e18-aba5-106279f491d8.txt |     1 -
 .../f7/f7e2a950-6426-4e3f-b9f0-844bfae9ed96.txt |     1 -
 .../ebi-wfrun-2013-05-31/sequence.txt           |     8 -
 .../ebi-wfrun-2013-05-31/workflowrun.prov.ttl   |  2296 --
 .../ebi_interproscan_newservices_900329.t2flow  |   742 -
 taverna-robundle/README.md                      |   180 -
 taverna-robundle/pom.xml                        |   132 -
 .../org/apache/taverna/robundle/Bundle.java     |   133 -
 .../org/apache/taverna/robundle/Bundles.java    |   401 -
 .../taverna/robundle/fs/BundleFileStore.java    |    98 -
 .../taverna/robundle/fs/BundleFileSystem.java   |   223 -
 .../robundle/fs/BundleFileSystemProvider.java   |   695 -
 .../robundle/fs/BundleFileTypeDetector.java     |    90 -
 .../apache/taverna/robundle/fs/BundlePath.java  |   221 -
 .../apache/taverna/robundle/manifest/Agent.java |    63 -
 .../taverna/robundle/manifest/Manifest.java     |   450 -
 .../robundle/manifest/PathAnnotation.java       |   126 -
 .../taverna/robundle/manifest/PathMetadata.java |   207 -
 .../apache/taverna/robundle/manifest/Proxy.java |    83 -
 .../robundle/manifest/RDFToManifest.java        |   514 -
 .../manifest/combine/CombineManifest.java       |   511 -
 .../robundle/manifest/odf/ODFManifest.java      |   321 -
 .../taverna/robundle/utils/PathHelper.java      |    35 -
 .../apache/taverna/robundle/utils/RDFUtils.java |    65 -
 .../utils/RecursiveCopyFileVisitor.java         |   235 -
 .../robundle/utils/RecursiveDeleteVisitor.java  |    56 -
 .../taverna/robundle/utils/TemporaryFiles.java  |    42 -
 .../java.nio.file.spi.FileSystemProvider        |     1 -
 .../services/java.nio.file.spi.FileTypeDetector |     1 -
 .../src/main/resources/contexts/bundle.jsonld   |   141 -
 .../src/main/resources/jarcache.json            |     8 -
 .../src/main/resources/ontologies/bundle.owl    |   123 -
 .../src/main/resources/ontologies/dcam.owl      |    28 -
 .../main/resources/ontologies/dcterms_od.owl    |   587 -
 .../src/main/resources/ontologies/foaf.rdf      |   640 -
 .../src/main/resources/ontologies/oa.rdf        |   889 -
 .../src/main/resources/ontologies/ore-owl.owl   |   258 -
 .../src/main/resources/ontologies/pav.rdf       |   552 -
 .../src/main/resources/ontologies/prov-aq.rdf   |   341 -
 .../src/main/resources/ontologies/prov-o.rdf    |  1787 -
 .../src/main/resources/ontologies/ro.owl        |   218 -
 .../OpenDocument-v1.2-os-manifest-schema.rng    |   224 -
 .../OpenDocument-v1.2-os-manifest-schema.xsd    |   201 -
 taverna-robundle/src/main/xsd/combine.xsd       |   102 -
 taverna-robundle/src/main/xsd/container.xsd     |   192 -
 taverna-robundle/src/main/xsd/xenc-schema.xsd   |   146 -
 .../src/main/xsd/xmldsig-core-schema.xsd        |   308 -
 .../taverna/robundle/MotifAnalysisIT.java       |   126 -
 .../apache/taverna/robundle/TestBundles.java    |   643 -
 .../apache/taverna/robundle/TestExample.java    |   107 -
 .../org/apache/taverna/robundle/fs/Helper.java  |    50 -
 .../taverna/robundle/fs/MemoryEfficiencyIT.java |   255 -
 .../robundle/fs/TestBundleFileSystem.java       |   236 -
 .../robundle/fs/TestBundleFileTypeDetector.java |    97 -
 .../taverna/robundle/fs/TestBundlePaths.java    |    58 -
 .../robundle/fs/TestFileSystemProvider.java     |   278 -
 .../apache/taverna/robundle/fs/TestZipFS.java   |   213 -
 .../taverna/robundle/manifest/TestManifest.java |   280 -
 .../robundle/manifest/TestManifestJSON.java     |   275 -
 .../robundle/manifest/TestRDFToManifest.java    |    52 -
 .../manifest/combine/TestCombineManifest.java   |   155 -
 .../robundle/manifest/odf/TestODFManifest.java  |    74 -
 .../utils/TestRecursiveCopyFileVisitor.java     |   114 -
 .../TestRecursiveCopyFileVisitorInBundle.java   |    54 -
 ...RecursiveCopyFileVisitorMultipleBundles.java |    51 -
 .../src/test/resources/combine/Boris.omex       |   Bin 355256 -> 0 bytes
 .../resources/combine/DirectoryMadness.omex     |   Bin 355078 -> 0 bytes
 .../combine/DirectoryMadnessZipped.omex         |   Bin 353871 -> 0 bytes
 .../combine/aslanidi_purkinje_model_2009.zip    |   Bin 896049 -> 0 bytes
 .../src/test/resources/document.odt             |   Bin 10372 -> 0 bytes
 .../src/test/resources/helloworld.wfbundle      |   Bin 6637 -> 0 bytes
 .../src/test/resources/manifest.json            |    40 -
 .../src/test/resources/motifAnalysis.zip        |   Bin 6936503 -> 0 bytes
 taverna-robundle/src/test/resources/win8.url    |     5 -
 .../src/test/resources/workflowrun.bundle.zip   |   Bin 4126 -> 0 bytes
 taverna-scufl2-annotation/pom.xml               |    69 -
 .../scufl2/annotation/AnnotationTools.java      |   208 -
 .../scufl2/annotation/TestAnnotationTools.java  |   111 -
 .../src/test/resources/helloanyone.t2flow       |   195 -
 .../valid_component_imagemagickconvert.t2flow   |   394 -
 taverna-scufl2-api/.gitignore                   |     3 -
 taverna-scufl2-api/pom.xml                      |    85 -
 .../taverna/scufl2/api/activity/Activity.java   |   270 -
 .../scufl2/api/activity/package-info.java       |    24 -
 .../scufl2/api/annotation/Annotation.java       |   169 -
 .../taverna/scufl2/api/annotation/Revision.java |   259 -
 .../scufl2/api/annotation/Revisioned.java       |   120 -
 .../scufl2/api/annotation/package-info.java     |    27 -
 .../scufl2/api/common/AbstractCloneable.java    |   173 -
 .../scufl2/api/common/AbstractNamed.java        |   223 -
 .../scufl2/api/common/AbstractRevisioned.java   |   114 -
 .../apache/taverna/scufl2/api/common/Child.java |    58 -
 .../taverna/scufl2/api/common/Configurable.java |    36 -
 .../apache/taverna/scufl2/api/common/Named.java |    55 -
 .../taverna/scufl2/api/common/NamedSet.java     |   290 -
 .../taverna/scufl2/api/common/Ported.java       |    46 -
 .../apache/taverna/scufl2/api/common/Root.java  |    29 -
 .../taverna/scufl2/api/common/Scufl2Tools.java  |   866 -
 .../apache/taverna/scufl2/api/common/Typed.java |    45 -
 .../taverna/scufl2/api/common/URITools.java     |   268 -
 .../taverna/scufl2/api/common/Visitor.java      |   248 -
 .../taverna/scufl2/api/common/WorkflowBean.java |    57 -
 .../taverna/scufl2/api/common/package-info.java |    23 -
 .../api/configurations/Configuration.java       |   269 -
 .../scufl2/api/container/WorkflowBundle.java    |   277 -
 .../scufl2/api/container/package-info.java      |    22 -
 .../scufl2/api/core/BlockingControlLink.java    |   242 -
 .../taverna/scufl2/api/core/ControlLink.java    |    34 -
 .../taverna/scufl2/api/core/DataLink.java       |   332 -
 .../taverna/scufl2/api/core/Processor.java      |   459 -
 .../taverna/scufl2/api/core/Workflow.java       |   283 -
 .../taverna/scufl2/api/core/package-info.java   |    22 -
 .../scufl2/api/impl/IterableComparator.java     |   116 -
 .../apache/taverna/scufl2/api/impl/LazyMap.java |    79 -
 .../scufl2/api/impl/NullSafeComparator.java     |   105 -
 .../taverna/scufl2/api/io/ReaderException.java  |    74 -
 .../taverna/scufl2/api/io/WorkflowBundleIO.java |   538 -
 .../scufl2/api/io/WorkflowBundleReader.java     |   110 -
 .../scufl2/api/io/WorkflowBundleWriter.java     |    79 -
 .../taverna/scufl2/api/io/WriterException.java  |    76 -
 .../api/io/structure/StructureReader.java       |   452 -
 .../api/io/structure/StructureWriter.java       |   314 -
 .../api/iterationstrategy/CrossProduct.java     |   106 -
 .../api/iterationstrategy/DotProduct.java       |   105 -
 .../IterationStrategyNode.java                  |    30 -
 .../IterationStrategyParent.java                |    26 -
 .../IterationStrategyStack.java                 |    86 -
 .../IterationStrategyTopNode.java               |    30 -
 .../scufl2/api/iterationstrategy/PortNode.java  |   188 -
 .../api/iterationstrategy/package-info.java     |    22 -
 .../apache/taverna/scufl2/api/package-info.java |    49 -
 .../scufl2/api/port/AbstractDepthPort.java      |    91 -
 .../api/port/AbstractGranularDepthPort.java     |    90 -
 .../taverna/scufl2/api/port/ActivityPort.java   |    32 -
 .../taverna/scufl2/api/port/DepthPort.java      |    38 -
 .../scufl2/api/port/GranularDepthPort.java      |    38 -
 .../scufl2/api/port/InputActivityPort.java      |    77 -
 .../taverna/scufl2/api/port/InputPort.java      |    29 -
 .../scufl2/api/port/InputProcessorPort.java     |    92 -
 .../scufl2/api/port/InputWorkflowPort.java      |    92 -
 .../scufl2/api/port/OutputActivityPort.java     |    77 -
 .../taverna/scufl2/api/port/OutputPort.java     |    29 -
 .../scufl2/api/port/OutputProcessorPort.java    |    90 -
 .../scufl2/api/port/OutputWorkflowPort.java     |    99 -
 .../apache/taverna/scufl2/api/port/Port.java    |    32 -
 .../taverna/scufl2/api/port/ProcessorPort.java  |    33 -
 .../taverna/scufl2/api/port/ReceiverPort.java   |    36 -
 .../taverna/scufl2/api/port/SenderPort.java     |    36 -
 .../taverna/scufl2/api/port/WorkflowPort.java   |    34 -
 .../taverna/scufl2/api/port/package-info.java   |    23 -
 .../scufl2/api/profiles/ProcessorBinding.java   |   235 -
 .../api/profiles/ProcessorInputPortBinding.java |   140 -
 .../profiles/ProcessorOutputPortBinding.java    |   146 -
 .../api/profiles/ProcessorPortBinding.java      |   156 -
 .../taverna/scufl2/api/profiles/Profile.java    |   220 -
 .../scufl2/api/profiles/package-info.java       |    22 -
 .../scufl2/api/reference/package-info.java      |    23 -
 ...e.taverna.scufl2.api.io.WorkflowBundleReader |     1 -
 ...e.taverna.scufl2.api.io.WorkflowBundleWriter |     1 -
 .../META-INF/spring/scufl2-api-context-osgi.xml |    41 -
 .../META-INF/spring/scufl2-api-context.xml      |    35 -
 .../scufl2/api/EqualsOnArrayListsTest.java      |    95 -
 .../taverna/scufl2/api/ExampleWorkflow.java     |   238 -
 .../taverna/scufl2/api/TestAPICreation.java     |   122 -
 .../scufl2/api/TestAbstractRevisioned.java      |    55 -
 .../taverna/scufl2/api/TestExampleWorkflow.java |    33 -
 .../apache/taverna/scufl2/api/VisitorTest.java  |   100 -
 .../scufl2/api/annotation/TestAnnotations.java  |    36 -
 .../scufl2/api/common/AllBeansVisitor.java      |    53 -
 .../api/common/TestAbstractCloneable.java       |   183 -
 .../scufl2/api/common/TestAbstractNamed.java    |   127 -
 .../scufl2/api/common/TestScufl2Tools.java      |   481 -
 .../scufl2/api/common/TestSetParent.java        |    60 -
 .../taverna/scufl2/api/common/TestURITools.java |   196 -
 .../scufl2/api/common/TestURIToolsBeans.java    |   328 -
 .../scufl2/api/common/TestURIToolsResolve.java  |   321 -
 .../api/configurations/ConfigurationTest.java   |    78 -
 .../api/container/TestWorkflowBundleEquals.java |    82 -
 .../scufl2/api/core/ControlLinkCompareTest.java |   104 -
 .../scufl2/api/core/DataLinkCompareTest.java    |   128 -
 .../taverna/scufl2/api/core/PortOrderTest.java  |    84 -
 .../scufl2/api/impl/TestIterableComparator.java |    95 -
 .../scufl2/api/impl/TestNullCompare.java        |    39 -
 .../taverna/scufl2/api/io/TestResources.java    |    54 -
 .../scufl2/api/io/TestStructureReader.java      |    99 -
 .../scufl2/api/io/TestWorkflowBundleIO.java     |   383 -
 .../apache/taverna/scufl2/api/io/HelloWorld.txt |    48 -
 .../src/test/resources/roevo-test.ttl           |    96 -
 taverna-scufl2-examples/README.md               |   251 -
 .../examples/helloanyone.json                   |    72 -
 .../examples/helloanyone.t2flow                 |   196 -
 .../examples/helloanyone.wfbundle               |   Bin 9295 -> 0 bytes
 .../examples/helloworld.json                    |    37 -
 .../examples/helloworld.t2flow                  |    84 -
 .../examples/helloworld.wfbundle                |   Bin 6637 -> 0 bytes
 taverna-scufl2-examples/pom.xml                 |   154 -
 .../examples/ConvertT2flowToWorkflowBundle.java |    57 -
 .../org/apache/taverna/examples/JsonExport.java |   319 -
 .../apache/taverna/examples/ProcessorNames.java |   132 -
 .../org/apache/taverna/examples/Scufl2Tool.java |   101 -
 .../apache/taverna/examples/ServiceTypes.java   |    62 -
 .../apache/taverna/examples/WorkflowMaker.java  |   412 -
 .../src/main/python/processorNames.py           |   135 -
 .../src/main/resources/context.json             |    20 -
 .../src/main/ruby/processors.rb                 |    93 -
 .../examples/TestConvertT2flowScufl2.java       |    55 -
 .../apache/taverna/examples/TestJsonExport.java |    75 -
 .../taverna/examples/TestProcessorNames.java    |    88 -
 .../taverna/examples/TestServiceTypes.java      |   105 -
 .../test/resources/workflows/t2flow/as.t2flow   |  1674 -
 .../t2flow/defaultActivitiesTaverna2.2.t2flow   |   888 -
 .../workflows/t2flow/helloanyone.t2flow         |   194 -
 .../workflows/t2flow/helloworld.t2flow          |    82 -
 .../resources/workflows/wfbundle/as.wfbundle    |   Bin 13797 -> 0 bytes
 .../wfbundle/defaultActivitiesTaverna2.wfbundle |   Bin 18782 -> 0 bytes
 taverna-scufl2-integration-tests/pom.xml        |    77 -
 .../taverna/scufl2/integration/CloningIT.java   |    54 -
 .../scufl2/integration/TestSimpleWf.java        |    98 -
 .../scufl2/translator/t2flow/EmptyStackIT.java  |    55 -
 .../translator/t2flow/LiteralNamespacesIT.java  |    57 -
 .../t2flow/PropertyListRoundtripIT.java         |    55 -
 .../src/test/resources/apiconsumer.t2flow       |   178 -
 .../src/test/resources/clone-error.wfbundle     |   Bin 6011 -> 0 bytes
 .../src/test/resources/rest.t2flow              |   154 -
 taverna-scufl2-rdfxml/.gitignore                |     1 -
 taverna-scufl2-rdfxml/pom.xml                   |    97 -
 .../taverna/scufl2/rdfxml/AbstractParser.java   |   120 -
 .../taverna/scufl2/rdfxml/ParserState.java      |   127 -
 .../taverna/scufl2/rdfxml/ProfileParser.java    |   356 -
 .../taverna/scufl2/rdfxml/RDFXMLReader.java     |    80 -
 .../taverna/scufl2/rdfxml/RDFXMLSerializer.java |   860 -
 .../taverna/scufl2/rdfxml/RDFXMLWriter.java     |   164 -
 .../taverna/scufl2/rdfxml/RevisionParser.java   |   173 -
 .../scufl2/rdfxml/WorkflowBundleParser.java     |   190 -
 .../taverna/scufl2/rdfxml/WorkflowParser.java   |   381 -
 .../impl/NamespacePrefixMapperJAXB_RI.java      |    54 -
 ...e.taverna.scufl2.api.io.WorkflowBundleReader |     1 -
 ...e.taverna.scufl2.api.io.WorkflowBundleWriter |     1 -
 .../spring/scufl2-rdfxml-context-osgi.xml       |    32 -
 .../META-INF/spring/scufl2-rdfxml-context.xml   |    31 -
 .../taverna/scufl2/rdfxml/DummyParserTest.java  |   100 -
 .../scufl2/rdfxml/TestProfileParser.java        |   179 -
 .../taverna/scufl2/rdfxml/TestRDFXMLReader.java |   235 -
 .../scufl2/rdfxml/TestRDFXMLSerializer.java     |   490 -
 .../taverna/scufl2/rdfxml/TestRDFXMLWriter.java |   158 -
 .../scufl2/rdfxml/TestResourcesInZip.java       |    98 -
 .../scufl2/rdfxml/TestRevisionParsing.java      |   118 -
 .../taverna/scufl2/rdfxml/example.wfbundle      |   Bin 40331 -> 0 bytes
 .../rdfxml/example/META-INF/container.xml       |    34 -
 .../scufl2/rdfxml/example/META-INF/manifest.xml |    45 -
 .../rdfxml/example/Thumbnails/thumbnail.png     |   Bin 19064 -> 0 bytes
 .../rdfxml/example/Thumbnails/thumbnail.svg     |    91 -
 .../example/annotation/workflow/HelloWorld.rdf  |    70 -
 .../example/annotation/workflowBundle.rdf       |    39 -
 .../example/diagram/workflow/HelloWorld.png     |   Bin 10243 -> 0 bytes
 .../example/diagram/workflow/HelloWorld.svg     |    91 -
 .../taverna/scufl2/rdfxml/example/mimetype      |     1 -
 .../rdfxml/example/ontologies/taverna2.2.rdf    |    55 -
 .../rdfxml/example/profile/tavernaServer.rdf    |    87 -
 .../rdfxml/example/profile/tavernaWorkbench.rdf |    85 -
 .../rdfxml/example/workflow/HelloWorld.rdf      |   161 -
 .../scufl2/rdfxml/example/workflowBundle.rdf    |    59 -
 .../taverna/scufl2/rdfxml/megaProfile.rdf       |   696 -
 .../apache/taverna/scufl2/rdfxml/roevo-test.xml |    71 -
 .../taverna/scufl2/rdfxml/update-bundle.sh      |    26 -
 taverna-scufl2-schemas/pom.xml                  |    75 -
 .../src/main/resources/META-INF/NOTICE.vm       |    39 -
 .../org/apache/taverna/scufl2/rdf/scufl2.rdf    |  1663 -
 .../org/apache/taverna/scufl2/rdf/scufl2.ttl    |  1691 -
 .../apache/taverna/scufl2/rdf/taverna-2.2.rdf   |   143 -
 .../apache/taverna/scufl2/rdf/taverna-2.2.ttl   |   155 -
 .../apache/taverna/scufl2/rdfxml/xsd/owl.xsd    |    70 -
 .../apache/taverna/scufl2/rdfxml/xsd/prov.xsd   |    60 -
 .../apache/taverna/scufl2/rdfxml/xsd/rdf.xsd    |    80 -
 .../apache/taverna/scufl2/rdfxml/xsd/rdfs.xsd   |    54 -
 .../apache/taverna/scufl2/rdfxml/xsd/roevo.xsd  |   117 -
 .../apache/taverna/scufl2/rdfxml/xsd/scufl2.xsd |   570 -
 .../apache/taverna/scufl2/rdfxml/xsd/xml.xsd    |   295 -
 taverna-scufl2-scufl/pom.xml                    |   104 -
 .../scufl2/translator/scufl/ParserState.java    |   149 -
 .../translator/scufl/ScuflExtensionParser.java  |    43 -
 .../scufl2/translator/scufl/ScuflParser.java    |   497 -
 .../scufl2/translator/scufl/ScuflReader.java    |   115 -
 .../AbstractExtensionParser.java                |    51 -
 .../AbstractProcessorExtensionParser.java       |    49 -
 .../ApiConsumerExtensionParser.java             |    60 -
 .../BeanshellExtensionParser.java               |    60 -
 .../BiomartExtensionParser.java                 |    60 -
 .../BiomobyExtensionParser.java                 |    63 -
 .../processorelement/LocalExtensionParser.java  |    60 -
 .../processorelement/RshellExtensionParser.java |    60 -
 .../SoaplabExtensionParser.java                 |    60 -
 .../StringConstantExtensionParser.java          |    91 -
 .../processorelement/WsdlExtensionParser.java   |    59 -
 ...e.taverna.scufl2.api.io.WorkflowBundleReader |     1 -
 ...scufl2.translator.scufl.ScuflExtensionParser |    10 -
 .../translator/scufl/xsd/scufl-abstract.xsd     |    78 -
 .../translator/scufl/xsd/scufl-apiconsumer.xsd  |    82 -
 .../translator/scufl/xsd/scufl-beanshell.xsd    |    86 -
 .../translator/scufl/xsd/scufl-biomart.xsd      |    36 -
 .../translator/scufl/xsd/scufl-biomoby.xsd      |   140 -
 .../translator/scufl/xsd/scufl-dependency.xsd   |    72 -
 .../translator/scufl/xsd/scufl-inferno.xsd      |    67 -
 .../scufl2/translator/scufl/xsd/scufl-local.xsd |    62 -
 .../translator/scufl/xsd/scufl-notification.xsd |    34 -
 .../translator/scufl/xsd/scufl-rshell.xsd       |    84 -
 .../translator/scufl/xsd/scufl-soaplab.xsd      |    41 -
 .../scufl/xsd/scufl-stringconstant.xsd          |    38 -
 .../scufl2/translator/scufl/xsd/scufl-wsdl.xsd  |   118 -
 .../scufl2/translator/scufl/xsd/scufl.xsd       |   354 -
 .../translator/scufl2/TestScuflReader.java      |    47 -
 .../translator/scufl2/TestStarterPack.java      |    33 -
 .../src/test/resources/workflow10.xml           |   979 -
 taverna-scufl2-t2flow/.gitignore                |     4 -
 taverna-scufl2-t2flow/pom.xml                   |   183 -
 .../scufl2/translator/t2flow/ParserState.java   |   140 -
 .../scufl2/translator/t2flow/T2FlowParser.java  |  1214 -
 .../scufl2/translator/t2flow/T2FlowReader.java  |   182 -
 .../scufl2/translator/t2flow/T2Parser.java      |    42 -
 .../AbstractActivityParser.java                 |   232 -
 .../ApiConsomerActivityParser.java              |    99 -
 .../BeanshellActivityParser.java                |   154 -
 .../BiomartActivityParser.java                  |    72 -
 .../BiomobyActivityParser.java                  |    68 -
 .../ComponentActivityParser.java                |    78 -
 .../DataflowActivityParser.java                 |    86 -
 .../InteractionActivityParser.java              |    95 -
 .../defaultactivities/RshellActivityParser.java |   215 -
 .../SoaplabActivityParser.java                  |    89 -
 .../SpreadsheetActivityParser.java              |   125 -
 .../StringConstantActivityParser.java           |    79 -
 .../defaultactivities/WSDLActivityParser.java   |   104 -
 .../WSDLXMLSplitterParser.java                  |   102 -
 .../defaultdispatchstack/ErrorBounceParser.java |    61 -
 .../defaultdispatchstack/FailoverParser.java    |    60 -
 .../defaultdispatchstack/InvokeParser.java      |    61 -
 .../t2flow/defaultdispatchstack/LoopParser.java |   138 -
 .../defaultdispatchstack/ParallelizeParser.java |    83 -
 .../defaultdispatchstack/RetryParser.java       |   107 -
 .../ExternalToolActivityParser.java             |   522 -
 .../t23activities/RESTActivityParser.java       |   165 -
 .../t23activities/XPathActivityParser.java      |   123 -
 ...e.taverna.scufl2.api.io.WorkflowBundleReader |     1 -
 ...he.taverna.scufl2.translator.t2flow.T2Parser |    24 -
 .../spring/scufl2-t2flow-context-osgi.xml       |    62 -
 .../META-INF/spring/scufl2-t2flow-context.xml   |    65 -
 .../translator/t2flow/xsd/componentactivity.xsd |    60 -
 .../t2flow/xsd/externaltoolactivity.xsd         |   202 -
 .../t2flow/xsd/interactionactivity.xsd          |    62 -
 .../translator/t2flow/xsd/restactivity.xsd      |    96 -
 .../translator/t2flow/xsd/t2activities.xsd      |   530 -
 .../translator/t2flow/xsd/t2annotations.xsd     |   164 -
 .../translator/t2flow/xsd/t2flow-extended.xsd   |   145 -
 .../scufl2/translator/t2flow/xsd/t2flow.xsd     |   923 -
 .../scufl2/translator/t2flow/xsd/t2layers.xsd   |   154 -
 .../translator/t2flow/xsd/xpathactivity.xsd     |    68 -
 .../translator/t2flow/MergeParsingTest.java     |    79 -
 .../translator/t2flow/TestActivityParsing.java  |    59 -
 .../t2flow/TestActivityParsingRshell.java       |   334 -
 .../t2flow/TestAnnotationParsing.java           |   188 -
 .../t2flow/TestBeanshellActivityParser.java     |   236 -
 .../t2flow/TestComponentActivityParser.java     |    97 -
 .../t2flow/TestDispatchLayerParsing.java        |   217 -
 .../translator/t2flow/TestFastaWorkflow.java    |    93 -
 .../t2flow/TestInteractionActivityParser.java   |   124 -
 .../t2flow/TestIterationStrategies.java         |   134 -
 .../t2flow/TestSpreadsheetActivityParser.java   |    74 -
 .../translator/t2flow/TestT2FlowParser.java     |    83 -
 .../translator/t2flow/TestT2FlowReader.java     |   103 -
 .../translator/t2flow/TestT2FlowTranslator.java |    94 -
 .../t23activities/TestRESTActivityParser.java   |  1046 -
 .../t23activities/TestXPathActivityParser.java  |    70 -
 .../T3-1226-annotations-with-quotes.t2flow      |    97 -
 .../src/test/resources/annotated2.2.t2flow      |   218 -
 .../resources/annotation_with_backslash.t2flow  |    23 -
 .../src/test/resources/as.t2flow                |  1675 -
 taverna-scufl2-t2flow/src/test/resources/as.txt |   274 -
 .../src/test/resources/beanshell-deps.t2flow    |    47 -
 .../src/test/resources/component_simple.t2flow  |    35 -
 .../resources/dataflow_link_then_merge.t2flow   |    66 -
 .../defaultActivitiesTaverna2.2.t2flow          |   890 -
 .../src/test/resources/dispatchlayers.t2flow    |   153 -
 .../src/test/resources/fasta_and_pscan.t2flow   |   101 -
 .../resources/fasta_pscan_and_dbfetch.t2flow    |   150 -
 .../interaction-with-strange-loop.t2flow        |   212 -
 .../interaction_multiple_choice.t2flow          |   109 -
 .../resources/interaction_simple_tell.t2flow    |    53 -
 .../test/resources/iterationstrategies.t2flow   |   387 -
 .../src/test/resources/merge_fun.t2flow         |    66 -
 .../resources/merge_then_dataflow_link.t2flow   |    66 -
 .../src/test/resources/missing_merge.t2flow     |    66 -
 .../resources/missing_produced_by_941.t2flow    |   247 -
 .../src/test/resources/random.t2flow            |   219 -
 .../src/test/resources/rest-2-2.t2flow          |    79 -
 .../src/test/resources/rshell-2-2.t2flow        |   210 -
 .../semantic_annotations__eclipse.t2flow        |   541 -
 .../src/test/resources/simple_fasta.t2flow      |    78 -
 .../src/test/resources/sleepers.t2flow          |   215 -
 .../spreadsheet_activity_defaults_892.t2flow    |    77 -
 .../src/test/resources/xpath_workflow.t2flow    |   108 -
 taverna-scufl2-ucfpackage/.gitignore            |     1 -
 taverna-scufl2-ucfpackage/LICENSE-odfdom.txt    |   201 -
 taverna-scufl2-ucfpackage/pom.xml               |   105 -
 .../taverna/scufl2/ucfpackage/UCFPackage.java   |   664 -
 .../ucfpackage/impl/odfdom/pkg/OdfPackage.java  |  1880 -
 .../impl/odfdom/pkg/OdfPackageStream.java       |    81 -
 .../impl/odfdom/pkg/OdfXMLHelper.java           |   370 -
 .../impl/odfdom/pkg/StreamHelper.java           |    81 -
 .../ucfpackage/impl/odfdom/pkg/TempDir.java     |    57 -
 .../impl/odfdom/pkg/TempDirDeleter.java         |    83 -
 .../impl/odfdom/pkg/manifest/Algorithm.java     |    51 -
 .../odfdom/pkg/manifest/EncryptionData.java     |    72 -
 .../impl/odfdom/pkg/manifest/KeyDerivation.java |    61 -
 .../impl/odfdom/pkg/manifest/OdfFileEntry.java  |   101 -
 .../src/main/xsd/container.xsd                  |   199 -
 .../src/main/xsd/xenc-schema.xsd                |   146 -
 .../src/main/xsd/xmldsig-core-schema.xsd        |   308 -
 .../scufl2/ucfpackage/TestUCFPackage.java       |   976 -
 taverna-scufl2-validation-correctness/pom.xml   |    68 -
 .../CorrectnessValidationListener.java          |    67 -
 .../correctness/CorrectnessValidator.java       |    49 -
 .../correctness/CorrectnessVisitor.java         |   644 -
 .../DefaultCorrectnessValidationListener.java   |   102 -
 .../correctness/DefaultDispatchingVisitor.java  |   238 -
 .../correctness/DispatchingVisitor.java         |   253 -
 .../ReportCorrectnessValidationListener.java    |   277 -
 .../EmptyIterationStrategyTopNodeProblem.java   |    41 -
 .../IncompatibleGranularDepthProblem.java       |    61 -
 .../report/MismatchConfigurableTypeProblem.java |    53 -
 .../report/NegativeValueProblem.java            |    60 -
 .../report/NonAbsoluteURIProblem.java           |    63 -
 .../correctness/report/NullFieldProblem.java    |    50 -
 .../report/OutOfScopeValueProblem.java          |    60 -
 .../report/PortMentionedTwiceProblem.java       |    51 -
 ...issingFromIterationStrategyStackProblem.java |    54 -
 .../correctness/report/WrongParentProblem.java  |    40 -
 .../validation/correctness/DummyProfile.java    |   117 -
 .../validation/correctness/DummyWorkflow.java   |   195 -
 .../correctness/DummyWorkflowBundle.java        |   133 -
 .../correctness/TestAbstractDepthPort.java      |   143 -
 .../TestAbstractGranularDepthPort.java          |   189 -
 .../correctness/TestBlockingControlLink.java    |   159 -
 .../validation/correctness/TestChild.java       |   140 -
 .../correctness/TestConfiguration.java          |   172 -
 .../validation/correctness/TestDataLink.java    |   389 -
 .../correctness/TestIterationStrategyStack.java |   130 -
 .../TestIterationStrategyTopNode.java           |   187 -
 .../validation/correctness/TestNamed.java       |   136 -
 .../validation/correctness/TestPortNode.java    |   252 -
 .../validation/correctness/TestPorted.java      |   163 -
 .../validation/correctness/TestProcessor.java   |   121 -
 .../correctness/TestProcessorBinding.java       |   496 -
 .../TestProcessorInputPortBinding.java          |   332 -
 .../TestProcessorOutputPortBinding.java         |   332 -
 .../validation/correctness/TestProfile.java     |   226 -
 .../scufl2/validation/correctness/TestRoot.java |   147 -
 .../validation/correctness/TestTyped.java       |   145 -
 .../validation/correctness/TestWorkflow.java    |   242 -
 .../correctness/TestWorkflowBundle.java         |   252 -
 taverna-scufl2-validation-integration/pom.xml   |    67 -
 .../integration/scufl/Test172StarterPack.java   |   148 -
 .../integration/t2flow/Test230StarterPack.java  |   143 -
 .../src/test/resources/t172starterpacklist      |     1 -
 .../src/test/resources/t230starterpacklist      |    30 -
 taverna-scufl2-validation-structural/pom.xml    |    69 -
 .../DefaultStructuralValidationListener.java    |   110 -
 .../ReportStructuralValidationListener.java     |   236 -
 .../StructuralValidationListener.java           |    65 -
 .../structural/StructuralValidator.java         |   412 -
 .../validation/structural/ValidatorState.java   |   184 -
 .../DotProductIterationMismatchProblem.java     |    38 -
 .../report/EmptyCrossProductProblem.java        |    32 -
 .../report/EmptyDotProductProblem.java          |    32 -
 .../report/FailedProcessorProblem.java          |    38 -
 .../report/IncompleteWorkflowProblem.java       |    38 -
 .../MissingIterationStrategyStackProblem.java   |    32 -
 .../MissingMainIncomingDataLinkProblem.java     |    38 -
 ...nrecognizedIterationStrategyNodeProblem.java |    38 -
 .../report/UnresolvedOutputProblem.java         |    38 -
 .../report/UnresolvedProcessorProblem.java      |    38 -
 .../validation/structural/CrossProductTest.java |   138 -
 .../structural/DepthInheritanceTest.java        |   154 -
 .../validation/structural/DotProductTest.java   |   181 -
 .../structural/StagedCombinationTest.java       |   104 -
 .../validation/structural/WorkflowTest.java     |    55 -
 taverna-scufl2-validation/pom.xml               |    51 -
 .../taverna/scufl2/validation/Status.java       |    32 -
 .../scufl2/validation/ValidationException.java  |    39 -
 .../scufl2/validation/ValidationProblem.java    |    45 -
 .../scufl2/validation/ValidationReport.java     |    35 -
 .../taverna/scufl2/validation/Validator.java    |    45 -
 .../scufl2/validation/WorkflowBeanReport.java   |    31 -
 taverna-scufl2-wfdesc/README.md                 |   235 -
 taverna-scufl2-wfdesc/pom.xml                   |   385 -
 .../taverna/scufl2/wfdesc/ConvertToWfdesc.java  |    76 -
 .../apache/taverna/scufl2/wfdesc/Labelled.java  |    36 -
 .../taverna/scufl2/wfdesc/ROEvoSerializer.java  |   122 -
 .../scufl2/wfdesc/TurtleWriterWithBase.java     |    71 -
 .../taverna/scufl2/wfdesc/WfdescAgent.java      |    94 -
 .../taverna/scufl2/wfdesc/WfdescReader.java     |    84 -
 .../taverna/scufl2/wfdesc/WfdescSerialiser.java |   407 -
 .../taverna/scufl2/wfdesc/WfdescWriter.java     |    78 -
 ...e.taverna.scufl2.api.io.WorkflowBundleReader |     1 -
 ...e.taverna.scufl2.api.io.WorkflowBundleWriter |     1 -
 .../spring/scufl2-wfdesc-context-osgi.xml       |    32 -
 .../META-INF/spring/scufl2-wfdesc-context.xml   |    31 -
 .../src/main/resources/com/xmlns/foaf/foaf.rdf  |   608 -
 .../org/purl/wf4ever/wfdesc/.gitignore          |     1 -
 .../org/purl/wf4ever/wfdesc/roterms.ttl         |   315 -
 .../org/purl/wf4ever/wfdesc/wf4ever.ttl         |   241 -
 .../org/purl/wf4ever/wfdesc/wfdesc.ttl          |   356 -
 .../org/purl/wf4ever/wfdesc/wfprov.ttl          |   210 -
 .../src/main/resources/org/w3/prov-o.ttl        |  1321 -
 .../taverna/scufl2/wfdesc/TestAllTypes.java     |   171 -
 .../scufl2/wfdesc/TestAnnotationQuoting.java    |   115 -
 .../scufl2/wfdesc/TestConvertToWfdesc.java      |   191 -
 .../scufl2/wfdesc/TestInvalidURITemplate.java   |    94 -
 .../scufl2/wfdesc/TestLocalDependency.java      |    98 -
 .../taverna/scufl2/wfdesc/TestNested.java       |   172 -
 .../scufl2/wfdesc/TestRoEvoSerializer.java      |    64 -
 .../scufl2/wfdesc/TestSemanticAnnotations.java  |   108 -
 .../taverna/scufl2/wfdesc/TestWfdescReader.java |    65 -
 .../taverna/scufl2/wfdesc/TestWfdescWriter.java |   104 -
 .../T3-1226-annotations-with-quotes.t2flow      |    97 -
 .../test/resources/allTypes.links.sparql.json   |    72 -
 .../src/test/resources/allTypes.t2flow          |   485 -
 .../src/test/resources/enm-v21.t2flow           | 30875 -----------------
 .../src/test/resources/helloanyone.t2flow       |   196 -
 .../src/test/resources/helloworld.t2flow        |    84 -
 .../src/test/resources/helloworld.wfdesc.ttl    |    37 -
 .../src/test/resources/localdependency.t2flow   |    29 -
 .../src/test/resources/nested.t2flow            |   228 -
 .../resources/rdf-in-example-annotation.t2flow  |    27 -
 .../valid_component_imagemagickconvert.t2flow   |   394 -
 615 files changed, 127445 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index f736862..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-.project
-.settings
-.classpath
-target
-.gitignore

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index d1618e4..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-language: java

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 68c771a..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,176 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
deleted file mode 100644
index 4c543f7..0000000
--- a/README.md
+++ /dev/null
@@ -1,230 +0,0 @@
-<!---
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
---->
-# Apache Taverna Language
-
-[![Build Status](https://travis-ci.org/taverna-incubator/incubator-taverna-language.svg)](https://travis-ci.org/taverna-incubator/incubator-taverna-language)
-[![doi:10.5281/zenodo.10651](https://zenodo.org/badge/doi/10.5281/zenodo.10651.png)](http://dx.doi.org/10.5281/zenodo.10651)
-
-
-## SCUFL2
-
-
-See also the [SCUFL2 wiki][1]
-
-(c) 2009-2014 University of Manchester, UK
-
-Licensed under the [GNU Lesser General Public License (LGPL) 2.1][6]. 
-See LICENSE.txt for the full terms of LGPL 2.1.
-
-This is the [API][9], model and format of [SCUFL2][1], which replaces 
-[Taverna][5]'s workflow format .t2flow. This API allows 
-JVM applications to inspect, generate and modify Taverna workflow
-definitions without depending on the Taverna runtime.
-
-A new format, called [Scufl2 Workflow Bundle][7] is defined alongside this
-API. This format can be inspected, generated and modified independently
-of this API.
-
-Note that the ability for Scufl2 API to read a workflow bundle (using
-the `scufl2-rdfxml` module) does not guarantee it is valid or
-structurally sound. The experimental modules `scufl2-validation-*` will
-in the future be able to provide such verification.
-
-For more information, see the [SCUFL2 API][9] pages, the
-[Javadoc][10] and the [SCUFL2 examples][8].
-
-Requisites
-----------
-
-* Java 1.6 or newer (tested with Java 1.7)
-* Maven 2.2.2 or newer (for building, tested with Maven 3.0.5)
-
-
-Building
---------
-
-* `mvn clean install`
-
-This will build each module and run their tests, producing JARs like
-`scufl2-api/target/scufl2-api-0.14.0.jar`. 
-
-First time you build Scufl2 this might download dependencies needed for
-compliation. These have separate open source licenses, but should be
-compatible with LGPL. None of the dependencies are neccessary for
-using the compiled SCUFL2 API.
-
-Some of the experimental modules are not built automatically, to build
-them separately, run the same command from within their folder.
-
-
-
-Usage
------
-
-Scufl2 is built as a Maven project, and the easiest way to use it is
-from other Maven projects.
-
-Typical users of the Scufl2 API will depend on the three modules
-*scufl2-api*, *scufl2-t2flow* and *scufl2-rdfxml*. In your Maven
-project's POM file, add this to your `<dependencies>` section:
-
-		<dependency>
-			<groupId>uk.org.taverna.scufl2</groupId>
-			<artifactId>scufl2-api</artifactId>
-			<version>0.14.0</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.scufl2</groupId>
-			<artifactId>scufl2-rdfxml</artifactId>
-			<version>0.14.0</version>
-		</dependency>
-		<dependency>
-			<groupId>uk.org.taverna.scufl2</groupId>
-			<artifactId>scufl2-t2flow</artifactId>
-			<version>0.14.0</version>
-		</dependency>
-
-All Scufl2 modules are also valid OSGi bundles, see the OSGi section
-below.  
-
-You can alternatively copy and add the JARs from these modules to your
-classpath:
-
-* scufl2-api/target/scufl2-api-0.14.0.jar
-* scufl2-rdfxml/target/scufl2-rdfxml-0.14.0.jar
-* scufl2-t2flow/target/scufl2-t2flow-0.14.0.jar
-
-See the [SCUFL2 Javadoc](http://mygrid.github.io/scufl2/api/0.14/) for 
-documentation of classes and methods of SCUFL2. The package
-[uk.o.rg.taverna.scufl2.api](http://mygrid.github.io/scufl2/api/0.14/uk/org/taverna/scufl2/api/package-summary.html)
-is a good starting point.
-
-See the *scufl2-validation* folder for examples of
-usage. The best classes to start exploring would be
-`uk.org.taverna.scufl2.api.io.WorkflowBundleIO` and
-`uk.org.taverna.scufl2.api.container.WorkflowBundle`.
-
-Example of converting .t2flow to .wfbundle:
-
-    import uk.org.taverna.scufl2.api.container.WorkflowBundle;
-    import uk.org.taverna.scufl2.api.io.ReaderException;
-    import uk.org.taverna.scufl2.api.io.WorkflowBundleIO;
-    import uk.org.taverna.scufl2.api.io.WriterException;
-
-    // ..
-    
-    WorkflowBundleIO io = new WorkflowBundleIO();
-    File t2File = new File("workflow.t2flow");
-    File scufl2File = new File("workflow.wfbundle");
-    WorkflowBundle wfBundle = io.readBundle(t2File, "application/vnd.taverna.t2flow+xml");
-    io.writeBundle(wfBundle, scufl2File, "application/vnd.taverna.scufl2.workflow-bundle");
-
-Check out the GitHub project scufl2-examples[8] for examples of using Scufl2, 
-including the above code.
-
-Supported file formats with WorkflowBundleIO and their required modules:
-
-<table>
-    <tr><th>Media type</th>  <th>Support</th> <th>JAR</th> <th>Description</th> </tr>
-    <tr><td>application/vnd.taverna.t2flow+xml</td><td>read</td><td>scufl2-t2flow</td><td>Taverna 2 t2flow</td></tr>
-    <tr><td>application/vnd.taverna.scufl2.workflow-bundle</td><td>read/write</td><td>scufl2-rdfxml</td><td>Taverna 3 workflow bundle</td></tr>
-    <tr><td>application/vnd.taverna.scufl+xml</td><td>read</td><td>scufl2-scufl</td><td>Taverna 1 SCUFL (experimental)</td></tr>
-    <tr><td>text/vnd.taverna.scufl2.structure</td><td>read/write</td><td>scufl2-api</td><td>Textual format for testing/debugging</td></tr>
-    <tr><td>text/vnd.wf4ever.wfdesc+turtle</td><td>write</td><td><a href="https://github.com/wf4ever/scufl2-wfdesc">scufl2-wfdesc</a></td><td>Abstract workflow structure in <a href="http://www.w3.org/TR/turtle/">RDF Turtle</a> according to the <a href="http://purl.org/wf4ever/model#wfdesc">Wf4Ever wfdesc ontology</a></td></tr>
-    <tr><td>text/vnd.mgrast.awe.awf+json</td><td>read</td><td><a href="https://github.com/stain/scufl2-awf">scufl2-awf</a></td> <td>Workflow definition of the MG-RAST <a href="https://github.com/MG-RAST/AWE">AWE</a> workflow engine. (experimental)</td></tr>
-    <tr><td>application/vnd.shiwa.iwir+xml</td><td>read/write</td> <td><a href="https://github.com/stain/scufl2-iwir/">scufl2-iwir</a></td> <td><a href="http://www.shiwa-workflow.eu/">SHIWA</a>'s <a href="https://www.shiwa-workflow.eu/documents/10753/55350/IWIR+v1.1+Specification">IWIR</a> interoperabile workflow language (experimental)</td></tr>
-    <tr><td>application/json</td> <td>write</td> <td><a href="https://github.com/myGrid/scufl2-examples">scufl2-examples</a></td> <td>Abstract workflow as JSON (experimental)</td></tr>
-</table>
-
-
-OSGi services
--------------
-To use SCUFL2 from OSGi, use the following OSGi Services. Example, from
-META-INF/spring/run-context.osgi.xml:
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <beans:beans xmlns="http://www.springframework.org/schema/osgi"
-                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                xmlns:beans="http://www.springframework.org/schema/beans"
-                xsi:schemaLocation="http://www.springframework.org/schema/beans
-                                    http://www.springframework.org/schema/beans/spring-beans.xsd
-                                    http://www.springframework.org/schema/osgi
-                                    http://www.springframework.org/schema/osgi/spring-osgi.xsd">
-
-        <service ref="myService" interface="com.example.MyService"/>
-
-        <reference id="workflowBundleIO" interface="uk.org.taverna.scufl2.api.io.WorkflowBundleIO" />
-
-    </beans:beans>
-
-And in run-context.xml:
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <beans xmlns="http://www.springframework.org/schema/beans"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                            http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-        <bean id="myService" class="com.example.impl.MyServiceImpl" >
-                <property name="workflowBundleIO" ref="workflowBundleIO"/>
-        </bean>
-
-    </beans>
-
-This will provide a WorkflowBundleIO instance with its readers and
-writers loaded through OSGi, which when the bundles for scufl2-t2flow
-and scufl2-rdfxml are loaded, would include support for the Taverna 2
-t2flow format and the Taverna 3 wfbundle format.
-
-Note that you do not need to use OSGi services to instantiate
-Scufl2Tools or URITools, but may do so if you wish.
-
-
-Modules
--------
-
-Official modules:
-
-* *scufl2-api* Java Beans for working with SCUFL2 
-* *scufl2-t2flow* .t2flow import from Taverna 2
-* *scufl2-rdfxml* .wfbundle import/export (RDF/XML)
-
-Experimental modules:
-
-* *scufl2-usecases* Example code covering [SCUFL2 use cases][4] (out of date)
-* *scufl2-rdf* Pure RDF export/import (out of date)
-* *scufl2-scufl* SCUFL 1 .xml import from Taverna 1
-* *scufl2-validation* API for validating a Scufl2 workflow bundle
-* *scufl2-validation-correctness* 
-  Validate correctness of Scufl2 workflow definition
-* *scufl2-validation-structural*
-  Validate that a Scufl2 workflow definition is structurally sound
-* *scufl2-validation-integration*
-  Integration tests for scufl2-validation modules
-
-
-
-[1]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2
-[2]: http://www.mygrid.org.uk/
-[3]: http://www.mygrid.org.uk/dev/wiki/display/story/Dataflow+serialization
-[4]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2+use+cases
-[5]: http://www.taverna.org.uk/
-[6]: http://www.gnu.org/licenses/lgpl-2.1.html
-[7]: http://www.mygrid.org.uk/dev/wiki/display/developer/Taverna+Workflow+Bundle
-[8]: https://github.com/mygrid/scufl2-examples
-[9]: http://www.mygrid.org.uk/dev/wiki/display/developer/SCUFL2+API
-[10]: http://mygrid.github.io/scufl2/api/0.14/

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 030d92f..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,350 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna</groupId>
-		<artifactId>taverna-parent</artifactId>
-		<version>1-incubating-SNAPSHOT</version>
-	</parent>
-	<groupId>org.apache.taverna.language</groupId>
-	<artifactId>taverna-language</artifactId>
-	<version>0.16.1-incubating-SNAPSHOT</version>
-	<packaging>pom</packaging>
-
-	<name>Apache Taverna Language APIs (Scufl2, Databundle)</name>
-	<description>Taverna Language API for workflow definitions (SCUFL2)
-		and workflow inputs/outputs/run (DataBundle).
-	</description>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>rat-checks</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>check</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<useDefaultExcludes>true</useDefaultExcludes>
-					<excludes>
-						<!-- Following excludes needed for taverna-scufl2-rdf,
-						taverna-scufl2-integration-tests and taverna-scufl2-validation-integration
-						subfolders that should be modules but are not. -->
-						<exclude>**/.classpath</exclude>
-						<exclude>**/.project</exclude>
-						<exclude>**/.settings/</exclude>
-						<exclude>**/target/</exclude>
-						<!-- Text and Markdown files are typically used only for documentation 
-							purposes and license declarations are usually spurious in these files since 
-							often they will refer to the LICENSE/NOTICE for users to find the actual 
-							licenses -->
-						<exclude>**/*.md</exclude>
-						<!-- META-INF services files can include comments but a license header 
-							would be unecessarily clutter so we exclude these -->
-						<exclude>**/META-INF/services/*</exclude>
-						<!-- No headers in JSON which haven't got comments ... -->
-						<exclude>**/*.json</exclude>
-						<!-- Really a binary format, but must look like text -->
-						<exclude>**/mimetype</exclude>
-						<!-- Effectively a binary format -->
-						<exclude>**/*.url</exclude>
-						<!-- The following schemas are W3C; automatic retrieval during build is 
-							blocked by their administrative processes, yet they are explicitly
-							standardised documents intended for wide use. Their licenses should
-							be standard W3C ones, but that's never stated explicitly by the W3C.
-							"Thanks!" -->
-						<exclude>**/xml.xsd</exclude>
-						<exclude>**/xenc-schema.xsd</exclude>
-						<exclude>**/xmldsig-core-schema.xsd</exclude>
-						<!-- This refers to the FOAF spec, which is available online at
-							http://xmlns.com/foaf/spec/ and which uses the CC-BY-SA 1.0
-							license. The RDF downloadable from the site, of which this is a copy,
-							has no copyright statement at all in it. -->
-						<exclude>**/foaf.rdf</exclude>
-						<!-- The following contain a mix of licenses. PROBLEM! -->
-						<exclude>/src/main/resources/ontologies/*.owl</exclude>
-						<exclude>/src/main/resources/ontologies/*.rdf</exclude>
-						<exclude>/src/main/resources/org/purl/wf4ever/wfdesc/roterms.ttl</exclude>
-						<exclude>/src/main/resources/org/purl/wf4ever/wfdesc/wf4ever.ttl</exclude>
-						<exclude>/src/main/resources/org/purl/wf4ever/wfdesc/wfdesc.ttl</exclude>
-						<exclude>/src/main/resources/org/purl/wf4ever/wfdesc/wfprov.ttl</exclude>
-						<exclude>/src/main/resources/org/w3/prov-o.ttl</exclude>
-						<!-- Various files used for testing and test support only. -->
-						<!-- THESE SUPPORT COMMENTS with # --><!--taverna-integration-test-->
-						<exclude>/src/test/resources/t172starterpacklist</exclude>
-						<exclude>/src/test/resources/t230starterpacklist</exclude>
-						<!-- THESE ARE XML AND SUPPORT COMMENTS -->
-						<exclude>/src/test/resources/annotation_with_backslash.t2flow</exclude>
-						<exclude>/src/test/resources/beanshell-deps.t2flow</exclude>
-						<exclude>/src/test/resources/component_simple.t2flow</exclude>
-						<exclude>/src/test/resources/dataflow_link_then_merge.t2flow</exclude>
-						<exclude>/src/test/resources/dispatchlayers-xsd.t2flow</exclude>
-						<exclude>/src/test/resources/dispatchlayers.t2flow</exclude>
-						<exclude>/src/test/resources/fasta_and_pscan.t2flow</exclude>
-						<exclude>/src/test/resources/fasta_pscan_and_dbfetch.t2flow</exclude>
-						<exclude>/src/test/resources/interaction-with-strange-loop.t2flow</exclude>
-						<exclude>/src/test/resources/interaction_multiple_choice.t2flow</exclude>
-						<exclude>/src/test/resources/interaction_simple_tell.t2flow</exclude>
-						<exclude>/src/test/resources/iterationstrategies.t2flow</exclude><!-- TOM -->
-						<exclude>/src/test/resources/merge_fun.t2flow</exclude>
-						<exclude>/src/test/resources/merge_then_dataflow_link.t2flow</exclude>
-						<exclude>/src/test/resources/missing_merge.t2flow</exclude>
-						<exclude>/src/test/resources/missing_produced_by_941.t2flow</exclude>
-						<exclude>/src/test/resources/rest-2-2.t2flow</exclude>
-						<exclude>/src/test/resources/rshell-2-2.t2flow</exclude>
-						<exclude>/src/test/resources/simple_fasta.t2flow</exclude>
-						<exclude>/src/test/resources/sleepers.t2flow</exclude>
-						<exclude>/src/test/resources/apiconsumer.t2flow</exclude>
-						<exclude>/src/test/resources/rest.t2flow</exclude>
-						<exclude>/src/test/resources/valid_component_imagemagickconvert.t2flow</exclude>
-						<exclude>/src/test/resources/enm-v21.t2flow</exclude>
-						<exclude>/src/test/resources/helloworld.wfdesc.ttl</exclude>
-						<exclude>/src/test/resources/localdependency.t2flow</exclude>
-						<exclude>/src/test/resources/nested.t2flow</exclude>
-						<exclude>/src/test/resources/rdf-in-example-annotation.t2flow</exclude>
-						<exclude>/src/test/resources/workflow10.xml</exclude>
-						<exclude>/src/test/resources/full-example/ebi_interproscan_newservices_900329.t2flow</exclude>
-						<!-- Cannot contain comments; content must match program output. -->
-						<exclude>/src/test/resources/org/apache/taverna/scufl2/api/io/HelloWorld.txt</exclude>
-						<exclude>/src/test/resources/as.txt</exclude>
-						<!-- Expanded data bundle. Generated. -->
-						<exclude>/src/test/resources/full-example/ebi-wfrun-2013-05-31/</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
-		
-			<!--
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>license-maven-plugin</artifactId>
-				<version>1.7</version>
-				<executions>
-					<execution>
-						<id>add-licenses</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>aggregate-add-third-party</goal>
-						</goals>
-						<configuration>
-							<excludedGroups>.*(mygrid|taverna).*</excludedGroups>
-							<useMissingFile>true</useMissingFile>
-							<missingFile>src/license/THIRD-PARTY.properties</missingFile>
-							<licenseMerges>
-								<licenseMerge>The Apache Software License, Version 2.0|Apache 2|Apache License|Apache License, Version 2.0|Apache Public License 2.0|Apache License Version 2.0|Apache Software License 2.0|Apache Software License - Version 2.0</licenseMerge>
-								<licenseMerge>The BSD License|BSD|BSD License|BSD-style license|BSD style|Aduna BSD license|Aduna BSD-style license</licenseMerge>
-								<licenseMerge>MIT License|The MIT License|MIT license</licenseMerge>
-								<licenseMerge>GNU Lesser General Public License|GNU LESSER GENERAL PUBLIC LICENSE|GNU Library or Lesser General Public License|LGPL</licenseMerge>
-								<licenseMerge>Common Development and Distribution License (CDDL) v1.0|CDDL 1.1|COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</licenseMerge>
-								<licenseMerge>Eclipse Public License, Version 1.0|Eclipse Public License</licenseMerge>
-							</licenseMerges>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			-->
-		</plugins>
-		<pluginManagement>
-			<plugins>
-
-				<plugin>
-					<groupId>org.codehaus.mojo</groupId>
-					<artifactId>jaxb2-maven-plugin</artifactId>
-					<version>1.6</version>
-					<configuration>
-						<target>2.2</target>
-						<enableIntrospection>true</enableIntrospection>
-						<!--
-						Needed for consistency across Java 6 and Java 7 on optional Booleans.
-						http://www.olivergierke.de/wordpress/2011/03/a-jaxb-or-rather-xjc-odyssey/
-						http://www.mojavelinux.com/blog/archives/2006/09/the_great_jaxb_api_blunder/
-						http://java.net/jira/browse/JAXB-131
-						-->
-						<!--
-						<arguments>-disableXmlSecurity</arguments>
-						-->
-						<!--
-						Needed to read schemas from file: (!!)
-						https://github.com/stianh/gradle-jaxb-plugin/issues/20
-						-->
-					</configuration>
-					<dependencies>
-						<!--
-						<dependency>
-							<groupId>com.sun.xml.bind</groupId>
-							<artifactId>jaxb-xjc</artifactId>
-							<version>${jaxb.version}</version>
-						</dependency>
-						<dependency>
-							<groupId>com.sun.xml.bind</groupId>
-							<artifactId>jaxb-impl</artifactId>
-							<version>${jaxb.version}</version> 
-						</dependency>
-						-->
-					</dependencies>
-				</plugin>
-				<plugin>
-					<groupId>org.jvnet.jaxb2.maven2</groupId>
-					<artifactId>maven-jaxb2-plugin</artifactId>
-					<version>0.11.0</version>
-					<configuration>
-						<enableIntrospection>true</enableIntrospection>
-						<specVersion>2.2</specVersion>
-						<schemaDirectory>src/main/xsd</schemaDirectory>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-	</build>
-<!-- TODO: Update -->
-	<scm>
-		<!-- TODO: Replace with git.apache.org details :
-		<connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-language.git</connection>
-		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-language.git</developerConnection>
-		<url>https://git-wip-us.apache.org/repos/asf/incubator-taverna-language.git</url>
-		-->
-		<connection>scm:git:https://github.com/taverna-incubator/incubator-taverna-language.git</connection>
-		<developerConnection>scm:git:git@github.com:taverna-incubator/incubator-taverna-language.git</developerConnection>
-		<url>https://github.com/taverna-incubator/incubator-taverna-language</url>
-		<tag>HEAD</tag>
-	</scm>
-
-	<repositories>
-		<!--
-		<repository>
-			<id>com.springsource.repository.bundles.release</id>
-			<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
-			<url>http://repository.springsource.com/maven/bundles/release</url>
-			<releases />
-			<snapshots>
-				<enabled>false</enabled>
-			</snapshots>
-		</repository>
-		<repository>
-			<id>com.springsource.repository.bundles.external</id>
-			<name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
-			<url>http://repository.springsource.com/maven/bundles/external</url>
-			<releases />
-			<snapshots>
-				<enabled>false</enabled>
-			</snapshots>
-		</repository>
-		-->
-
-<!-- TODO: Remove myGrid repositories -->
-		<repository>
-			<id>taverna-incubating</id>
-			<name>Apache Taverna incubating Repository</name>
-			<url>http://repository.mygrid.org.uk/artifactory/incubator-snapshot-local/</url>
-			<releases>
-				<enabled>false</enabled>
-			</releases>
-			<snapshots />
-		</repository>
-		<repository>
-<!-- TODO: Use Apache snapshot repo instead -->
-			<id>taverna-incubating-release</id>
-			<name>Taverna incubating test release</name>
-			<url>http://repository.mygrid.org.uk/artifactory/incubator-release-test/</url>
-			<snapshots>
-				<enabled>false</enabled>
-			</snapshots>
-		</repository>
-	</repositories>
-
-	<dependencyManagement>
-		<dependencies>
-			<dependency>
-				<groupId>com.fasterxml.jackson.core</groupId>
-				<artifactId>jackson-core</artifactId>
-				<version>${jackson.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>com.fasterxml.jackson.core</groupId>
-				<artifactId>jackson-databind</artifactId>
-				<version>${jackson.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>com.fasterxml.jackson.module</groupId>
-				<artifactId>jackson-module-jsonSchema</artifactId>
-				<version>${jackson.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>junit</groupId>
-				<artifactId>junit</artifactId>
-				<version>${junit.version}</version>
-				<scope>test</scope>
-			</dependency>
-			<dependency>
-				<groupId>commons-io</groupId>
-				<artifactId>commons-io</artifactId>
-				<version>${commons.io.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jdom</groupId>
-				<artifactId>com.springsource.org.jdom</artifactId>
-				<version>${jdom.version}</version>
-				<type>jar</type>
-			</dependency>
-			<dependency>
-				<groupId>com.sun.xml.bind</groupId>
-				<artifactId>jaxb-impl</artifactId>
-				<version>${jaxb.version}</version>
-				<type>jar</type>
-				<optional>true</optional>
-			</dependency>
-			<dependency>
-				<groupId>org.jaxen</groupId>
-				<artifactId>com.springsource.org.jaxen</artifactId>
-				<!-- Was 1.1.4. as "1.1.3 has missing dependencies" but 1.1.1 appears to work fine -->
-				<version>${jaxen.version}</version>
-				<type>jar</type>
-			</dependency>
-			<dependency>
-				<groupId>commons-beanutils</groupId>
-				<artifactId>commons-beanutils</artifactId>
-				<version>${commons.beanutils.version}</version>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
-	<modules>
-		<module>taverna-scufl2-ucfpackage</module>
-		<module>taverna-scufl2-api</module>
-		<module>taverna-scufl2-examples</module>
-		<module>taverna-scufl2-rdfxml</module>
-		<module>taverna-scufl2-t2flow</module>
-		<module>taverna-scufl2-scufl</module>
-		<module>taverna-scufl2-validation</module>
-		<module>taverna-scufl2-validation-structural</module>
-		<module>taverna-scufl2-validation-correctness</module>
-		<module>taverna-scufl2-validation-integration</module>
-		<module>taverna-scufl2-integration-tests</module>
-		<module>taverna-scufl2-annotation</module>
-		<module>taverna-scufl2-schemas</module>
-		<module>taverna-scufl2-wfdesc</module>
-		<module>taverna-robundle</module>
-		<module>taverna-databundle</module>
-		<module>taverna-baclava-language</module>
-	</modules>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/pom.xml b/taverna-baclava-language/pom.xml
deleted file mode 100644
index 36b5f7d..0000000
--- a/taverna-baclava-language/pom.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version='1.0'?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-  <artifactId>baclava-language</artifactId>
-  <version>0.0.1-SNAPSHOT</version>
-  <name>baclava</name>
-  <packaging>bundle</packaging>
-  <description>Support for reading and writing Baclava files</description>
-  <build>
-		<plugins>
-
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>jaxb2-maven-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>xjc</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<packageName>org.apache.taverna.baclava</packageName>
-					<schemaDirectory>src/main/resources/xsd/</schemaDirectory>
-				</configuration>
-			</plugin>
-
-	            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-			</plugin>
-                  </plugins>
-            </build>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaReader.java
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaReader.java b/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaReader.java
deleted file mode 100644
index 8b78826..0000000
--- a/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaReader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.taverna.baclava;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.Reader;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-
-public class BaclavaReader {
-	
-	private static JAXBContext jaxbContext;
-	private static Unmarshaller unmarshaller;
-
-	public static DataThingMapType readBaclava(Reader r) throws JAXBException {
-		jaxbContext = JAXBContext.newInstance("org.apache.taverna.baclava");
-		unmarshaller = jaxbContext.createUnmarshaller();
-		JAXBElement<?> jb = (JAXBElement<?>) unmarshaller.unmarshal(r);
-		return (DataThingMapType) jb.getValue();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaWriter.java
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaWriter.java b/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaWriter.java
deleted file mode 100644
index cf8917d..0000000
--- a/taverna-baclava-language/src/main/java/org/apache/taverna/baclava/BaclavaWriter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.baclava;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.Writer;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-
-/**
- * @author alanrw
- *
- */
-public class BaclavaWriter {
-
-	public static void writeBaclava(DataThingMapType d, Writer w) throws JAXBException {
-		JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-		Marshaller marshaller = jaxbContext.createMarshaller();
-		marshaller.setProperty("jaxb.formatted.output", true);
-		
-		ObjectFactory of = new ObjectFactory();
-		marshaller.marshal(of.createDataThingMap(d), w);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-baclava-language/src/main/resources/xsd/baclava.xsd
----------------------------------------------------------------------
diff --git a/taverna-baclava-language/src/main/resources/xsd/baclava.xsd b/taverna-baclava-language/src/main/resources/xsd/baclava.xsd
deleted file mode 100644
index de1afa9..0000000
--- a/taverna-baclava-language/src/main/resources/xsd/baclava.xsd
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<schema targetNamespace="http://org.embl.ebi.escience/baclava/0.1alpha"
-	elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"
-	xmlns:b="http://org.embl.ebi.escience/baclava/0.1alpha"
-	xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"
-	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-	jaxb:version="2.0">
-
-	<import schemaLocation="xscufl.xsd" namespace="http://org.embl.ebi.escience/xscufl/0.1alpha"></import>
-	<element name="dataThingMap" type="b:DataThingMapType"></element>
-
-	<complexType name="DataThingMapType">
-		<sequence>
-			<element ref="b:dataThing" minOccurs="1"
-				maxOccurs="unbounded">
-			</element>
-		</sequence>
-	</complexType>
-
-	<complexType name="DataThingType">
-		<sequence>
-			<element ref="b:myGridDataDocument" minOccurs="1"
-				maxOccurs="1">
-			</element>
-		</sequence>
-		<attribute name="key" use="required">
-			<simpleType>
-				<restriction base="string">
-					<minLength value="1"></minLength>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-	</complexType>
-
-	<element name="dataThing" type="b:DataThingType"></element>
-
-	<complexType name="MyGridDataDocumentType">
-		<sequence>
-			<element ref="s:metadata" minOccurs="1" maxOccurs="1"></element>
-			<choice minOccurs="1" maxOccurs="1">
-				<element ref="b:partialOrder"></element>
-				<element ref="b:dataElement"></element>
-			</choice>
-		</sequence>
-		<attribute name="lsid" use="required">
-			<simpleType>
-				<restriction base="string">
-					<minLength value="0"></minLength>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-		<attribute name="syntactictype" use="required">
-			<simpleType>
-				<restriction base="string">
-					<minLength value="1"></minLength>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-	</complexType>
-
-	<element name="myGridDataDocument"
-		type="b:MyGridDataDocumentType">
-	</element>
-
-
-	<complexType name="PartialOrderType">
-		<sequence>
-			<element ref="b:relationList" minOccurs="0" maxOccurs="1"></element>
-			<element ref="b:itemList" minOccurs="0" maxOccurs="1"></element>
-		</sequence>
-		<attribute name="lsid" use="required">
-			<simpleType>
-				<restriction base="string">
-					<minLength value="0"></minLength>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-		<attribute name="type" type="string" use="required"
-			fixed="list">
-		</attribute>
-		<attribute name="index" use="optional">
-			<simpleType>
-				<restriction base="int">
-					<minExclusive value="0"></minExclusive>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-	</complexType>
-
-	<complexType name="RelationListType">
-		<sequence>
-			<element ref="b:relation" minOccurs="0" maxOccurs="unbounded"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="ItemListType">
-		<sequence>
-			<element ref="b:dataElement" minOccurs="0"
-				maxOccurs="unbounded">
-			</element>
-		</sequence>
-	</complexType>
-
-
-
-	<element name="partialOrder" type="b:PartialOrderType"></element>
-
-	<element name="relationList" type="b:RelationListType"></element>
-
-	<element name="itemList" type="b:ItemListType"></element>
-
-	<element name="dataElement" type="b:DataElementType"></element>
-
-	<element name="dataElementData" type="string"></element>
-
-	<complexType name="DataElementType">
-		<sequence>
-			<element ref="b:dataElementData" minOccurs="1"
-				maxOccurs="1">
-			</element>
-		</sequence>
-		<attribute name="lsid" use="required">
-			<simpleType>
-				<restriction base="string">
-					<minLength value="0"></minLength>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-		<attribute name="index" use="optional">
-			<simpleType>
-				<restriction base="int">
-					<minInclusive value="0"></minInclusive>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-	</complexType>
-
-	<complexType name="RelationType">
-		<attribute name="parent" use="required">
-			<simpleType>
-				<restriction base="int">
-					<minInclusive value="0"></minInclusive>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-		<attribute name="child">
-			<simpleType>
-				<restriction base="int">
-					<minExclusive value="0"></minExclusive>
-					<whiteSpace value="collapse"></whiteSpace>
-				</restriction>
-			</simpleType>
-		</attribute>
-	</complexType>
-
-	<element name="relation" type="b:RelationType"></element>
-</schema>
\ No newline at end of file


[10/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestRESTActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestRESTActivityParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestRESTActivityParser.java
deleted file mode 100644
index b7d28d2..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestRESTActivityParser.java
+++ /dev/null
@@ -1,1046 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.t23activities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser.ACTIVITY_URI;
-import static org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser.HTTP_METHODS_URI;
-import static org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser.HTTP_URI;
-import static org.junit.Assert.*;
-
-import java.lang.Thread.UncaughtExceptionHandler;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.T2Parser;
-import org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-
-@SuppressWarnings("unused")
-public class TestRESTActivityParser {
-
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private static URITools uriTools = new URITools();
-	private static final String WF_2_2 = "/rest-2-2.t2flow";
-	private static final String WF_2_2_SAVED_2_3 = "/rest-2-2-saved-2-3.t2flow";
-
-	private static final String WF_2_3 = "/rest-2-3.t2flow";
-
-
-	private void checkT2Parsers(T2FlowParser parser) {
-		for (T2Parser t2Parser : parser.getT2Parsers()) {
-			if (t2Parser instanceof RESTActivityParser) {
-				return;
-			}
-		}
-		fail("Could not find REST activity parser, found " + parser.getT2Parsers());
-	}
-/* TODO: Update test to use JSON config
-	@Test
-	public void default_2_2_saved() throws Exception {
-		WorkflowBundle bundle_2_2_saved = parse2_2_saved_2_3();
-		Profile profile = bundle_2_2_saved.getMainProfile();
-		//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-		// [default, post, put]
-		Processor proc = bundle_2_2_saved.getMainWorkflow().getProcessors()
-				.getByName("default");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-		assertEquals(ACTIVITY_URI.resolve("#Config"),
-				config.getType());
-
-		Activity activity = (Activity) config.getConfigures();
-		assertEquals(ACTIVITY_URI, activity.getType());
-
-		ObjectNode configResource = config.getJsonAsObjectNode();
-		ObjectNode request = configResource.get("request");
-
-		URI toolId = request.getPropertyAsResourceURI(
-				HTTP_URI.resolve("#mthd"));
-		assertEquals(HTTP_METHODS_URI.resolve("#GET"),
-				toolId);
-
-		String urlSignature = request.getPropertyAsString(
-				ACTIVITY_URI.resolve("#absoluteURITemplate"));
-		assertEquals("http://www.myexperiment.org/user.xml?id={userID}", urlSignature);
-
-		Map<String, String> foundHeaders = new HashMap<String, String>();
-		PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-		for (PropertyObject header : headers) {
-			PropertyResource reqHeader = (PropertyResource) header;
-			String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-			String value;
-			if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-				value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-			} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-				assertEquals(true,
-						reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-				value = "--use100Continue--";
-			} else {
-				value = "--undefinedValue--";
-			}
-			foundHeaders.put(fieldName, value);
-			assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-		}
-		assertEquals(1, foundHeaders.size());
-		assertEquals("text/plain", foundHeaders.get("Accept"));
-		// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-		assertFalse(foundHeaders.containsKey("Content-Type"));
-		assertFalse(foundHeaders.containsKey("Expect"));
-		//assertEquals("application/zip", foundHeaders.get("Content-Type"));
-		// assertEquals("--use100Continue--", foundHeaders.get("Expect"))
-
-
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-		//assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-		//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-		// Check ports
-//		assertEquals(1, activity.getInputPorts().size());
-//		InputActivityPort userID = activity.getInputPorts().getByName("userID");
-//		assertEquals((Integer)0, userID.getDepth());
-//
-//		assertEquals(2, activity.getOutputPorts().size());
-//		OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//		assertEquals((Integer)0, responseBody.getDepth());
-//
-//		OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//		assertEquals((Integer)0, status.getDepth());
-//
-//		PropertyResource userIDDef = scufl2Tools.portDefinitionFor(userID, profile);
-//		assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), userIDDef.getTypeURI());
-//		assertEquals(PropertyLiteral.XSD_STRING,
-//				userIDDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-	}
-
-	@Test
-	public void default2_2() throws Exception {
-		WorkflowBundle bundle_2_2 = parse2_2();
-		Profile profile = bundle_2_2.getMainProfile();
-		//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-		// [default, post, put]
-		Processor proc = bundle_2_2.getMainWorkflow().getProcessors()
-				.getByName("default");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-		assertEquals(ACTIVITY_URI.resolve("#Config"),
-				config.getType());
-
-		Activity activity = (Activity) config.getConfigures();
-		assertEquals(ACTIVITY_URI, activity.getType());
-
-		PropertyResource configResource = config.getJson();
-		PropertyResource request = configResource.getPropertyAsResource(
-				ACTIVITY_URI.resolve("#request"));
-		assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-		// A sub-class of HTTP_URI.resolve("#Request")
-
-		URI toolId = request.getPropertyAsResourceURI(
-				HTTP_URI.resolve("#mthd"));
-		assertEquals(HTTP_METHODS_URI.resolve("#GET"),
-				toolId);
-
-		String urlSignature = request.getPropertyAsString(
-				ACTIVITY_URI.resolve("#absoluteURITemplate"));
-		assertEquals("http://www.myexperiment.org/user.xml?id={userID}", urlSignature);
-
-		Map<String, String> foundHeaders = new HashMap<String, String>();
-		PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-		for (PropertyObject header : headers) {
-			PropertyResource reqHeader = (PropertyResource) header;
-			String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-			String value;
-			if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-				value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-			} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-				assertEquals(true,
-						reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-				value = "--use100Continue--";
-			} else {
-				value = "--undefinedValue--";
-			}
-			foundHeaders.put(fieldName, value);
-			assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-		}
-		assertEquals(1, foundHeaders.size());
-		assertEquals("text/plain", foundHeaders.get("Accept"));
-		// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-		assertFalse(foundHeaders.containsKey("Content-Type"));
-		assertFalse(foundHeaders.containsKey("Expect"));
-		//assertEquals("application/zip", foundHeaders.get("Content-Type"));
-		// assertEquals("--use100Continue--", foundHeaders.get("Expect"))
-
-
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-		//assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-		//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-		// Check ports
-//		assertEquals(1, activity.getInputPorts().size());
-//		InputActivityPort userID = activity.getInputPorts().getByName("userID");
-//		assertEquals((Integer)0, userID.getDepth());
-//
-//		assertEquals(2, activity.getOutputPorts().size());
-//		OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//		assertEquals((Integer)0, responseBody.getDepth());
-//
-//		OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//		assertEquals((Integer)0, status.getDepth());
-//
-//		PropertyResource userIDDef = scufl2Tools.portDefinitionFor(userID, profile);
-//		assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), userIDDef.getTypeURI());
-//		assertEquals(PropertyLiteral.XSD_STRING,
-//				userIDDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-	}
-
-	@Test
-	public void default2_3() throws Exception {
-		WorkflowBundle bundle_2_3 = parse2_3();
-		Profile profile = bundle_2_3.getMainProfile();
-		//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-		// [default, post, put]
-		Processor proc = bundle_2_3.getMainWorkflow().getProcessors()
-				.getByName("default");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-		assertEquals(ACTIVITY_URI.resolve("#Config"),
-				config.getType());
-
-		Activity activity = (Activity) config.getConfigures();
-		assertEquals(ACTIVITY_URI, activity.getType());
-
-		PropertyResource configResource = config.getJson();
-		PropertyResource request = configResource.getPropertyAsResource(
-				ACTIVITY_URI.resolve("#request"));
-		assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-		// A sub-class of HTTP_URI.resolve("#Request")
-
-		URI toolId = request.getPropertyAsResourceURI(
-				HTTP_URI.resolve("#mthd"));
-		assertEquals(HTTP_METHODS_URI.resolve("#GET"),
-				toolId);
-
-		String urlSignature = request.getPropertyAsString(
-				ACTIVITY_URI.resolve("#absoluteURITemplate"));
-		assertEquals("http://www.uniprot.org/uniprot/{id}.xml", urlSignature);
-
-		Map<String, String> foundHeaders = new HashMap<String, String>();
-		PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-		for (PropertyObject header : headers) {
-			PropertyResource reqHeader = (PropertyResource) header;
-			String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-			String value;
-			if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-				value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-			} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-				assertEquals(true,
-						reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-				value = "--use100Continue--";
-			} else {
-				value = "--undefinedValue--";
-			}
-			foundHeaders.put(fieldName, value);
-			assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-		}
-		assertEquals(1, foundHeaders.size());
-		assertEquals("application/xml", foundHeaders.get("Accept"));
-		// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-		assertFalse(foundHeaders.containsKey("Content-Type"));
-		assertFalse(foundHeaders.containsKey("Expect"));
-		//assertEquals("application/zip", foundHeaders.get("Content-Type"));
-		// assertEquals("--use100Continue--", foundHeaders.get("Expect"))
-
-
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-		//assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-		//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-		// Check ports
-//		assertEquals(1, activity.getInputPorts().size());
-//		InputActivityPort id = activity.getInputPorts().getByName("id");
-//		assertEquals((Integer)0, id.getDepth());
-//
-//		assertEquals(2, activity.getOutputPorts().size());
-//		OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//		assertEquals((Integer)0, responseBody.getDepth());
-//
-//		OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//		assertEquals((Integer)0, status.getDepth());
-//
-//		PropertyResource idDef = scufl2Tools.portDefinitionFor(id, profile);
-//		assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), idDef.getTypeURI());
-//		assertEquals(PropertyLiteral.XSD_STRING,
-//				idDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-	}
-
-	public T2FlowParser makeParser() throws JAXBException {
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		checkT2Parsers(parser);
-		return parser;
-	}
-
-	 Move to integration test with higher thread counts 
-	@Test
-	public void multiThreadParse() throws Exception {
-
-		final boolean LOG = false;
-		final int NUM_THREADS=6;
-
-		final T2FlowParser parser = makeParser();
-		final URL wf_2_2 = getClass().getResource(WF_2_2);
-		final URL wf_2_2_saved = getClass().getResource(WF_2_2_SAVED_2_3);
-		final URL wf_2_3 = getClass().getResource(WF_2_3);
-
-
-		List<Thread> threads = new ArrayList<Thread>();
-		for (int i=0; i<NUM_THREADS; i++) {
-			threads.add(
-			new Thread(
-					new Runnable() {
-				@Override
-				public void run() {
-					try {
-						if (LOG)
-							System.out.print(".");
-						parser.parseT2Flow(wf_2_2.openStream());
-						if (LOG)
-							System.out.print("·");
-						parser.parseT2Flow(wf_2_2_saved.openStream());
-						if (LOG)
-							System.out.print(":");
-						parser.parseT2Flow(wf_2_3.openStream());
-						if (LOG)
-							System.out.print("'");
-					} catch (Exception e) {
-						throw new RuntimeException("", e);
-					}
-				}
-			}));
-		}
-		Date started = new Date();
-		final List<Throwable> errors = new ArrayList<Throwable>();
-		for (Thread t : threads) {
-			if (LOG) System.out.print("+");
-			t.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
-				@Override
-				public void uncaughtException(Thread t, Throwable e) {
-					e.printStackTrace();
-					errors.add(e);
-				}
-			});
-			t.start();
-		}
-		if (LOG) System.out.print("\n");
-		for (Thread t : threads) {
-			t.join();
-			if (LOG) System.out.print("-");
-		}
-		Date finished = new Date();
-		if (LOG) System.out.print("\n" + (finished.getTime() - started.getTime()) + " ms");
-		assertTrue(errors.size() + " errors occured", errors.isEmpty());
-	}
-
-	public WorkflowBundle parse2_2() throws Exception {
-		T2FlowParser parser = makeParser();
-		URL wfResource = getClass().getResource(WF_2_2);
-		assertNotNull("Could not find workflow " + WF_2_2, wfResource);
-		return parser
-				.parseT2Flow(wfResource.openStream());
-	}
-
-
-	public WorkflowBundle parse2_2_saved_2_3() throws Exception {
-		T2FlowParser parser = makeParser();
-		URL wfResource = getClass().getResource(WF_2_2_SAVED_2_3);
-		assertNotNull("Could not find workflow " + WF_2_2_SAVED_2_3, wfResource);
-		return parser
-				.parseT2Flow(wfResource.openStream());
-	}
-
-	public WorkflowBundle parse2_3() throws Exception {
-		T2FlowParser parser = makeParser();
-		URL wfResource = getClass().getResource(WF_2_3);
-		assertNotNull("Could not find workflow " + WF_2_3, wfResource);
-		return parser
-				.parseT2Flow(wfResource.openStream());
-	}
-
-
-
-
-
-	@Test
-	public void put2_2() throws Exception {
-		WorkflowBundle bundle_2_2 = parse2_2();
-		Profile profile = bundle_2_2.getMainProfile();
-		//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-		// [default, post, put]
-		Processor proc = bundle_2_2.getMainWorkflow().getProcessors()
-				.getByName("put");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-		assertEquals(ACTIVITY_URI.resolve("#Config"),
-				config.getType());
-
-		Activity activity = (Activity) config.getConfigures();
-		assertEquals(ACTIVITY_URI, activity.getType());
-
-		PropertyResource configResource = config.getJson();
-		PropertyResource request = configResource.getPropertyAsResource(
-				ACTIVITY_URI.resolve("#request"));
-		assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-		// A sub-class of HTTP_URI.resolve("#Request")
-
-		URI toolId = request.getPropertyAsResourceURI(
-				HTTP_URI.resolve("#mthd"));
-		assertEquals(HTTP_METHODS_URI.resolve("#PUT"),
-				toolId);
-
-		String urlSignature = request.getPropertyAsString(
-				ACTIVITY_URI.resolve("#absoluteURITemplate"));
-		assertEquals("http://example.com/{thing}/user.xml?id={userID}", urlSignature);
-
-		Map<String, String> foundHeaders = new HashMap<String, String>();
-		PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-		for (PropertyObject header : headers) {
-			PropertyResource reqHeader = (PropertyResource) header;
-			String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-			String value;
-			if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-				value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-			} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-				assertEquals(true,
-						reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-				value = "--use100Continue--";
-			} else {
-				value = "--undefinedValue--";
-			}
-			foundHeaders.put(fieldName, value);
-			assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-		}
-		assertEquals(3, foundHeaders.size());
-
-		assertEquals("application/xml", foundHeaders.get("Accept"));
-		// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-//		assertFalse(foundHeaders.containsKey("Content-Type"));
-//		assertFalse(foundHeaders.containsKey("Expect"));
-		assertEquals("application/json", foundHeaders.get("Content-Type"));
-		 assertEquals("--use100Continue--", foundHeaders.get("Expect"));
-
-
-//		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-		assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-		//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-		// Check ports
-//		assertEquals(3, activity.getInputPorts().size());
-//		InputActivityPort userID = activity.getInputPorts().getByName("userID");
-//		assertEquals((Integer)0, userID.getDepth());
-//
-//		InputActivityPort thing = activity.getInputPorts().getByName("thing");
-//		assertEquals((Integer)0, thing.getDepth());
-//
-//		InputActivityPort inputBody = activity.getInputPorts().getByName("inputBody");
-//		assertEquals((Integer)0, inputBody.getDepth());
-//
-//
-//		assertEquals(3, activity.getOutputPorts().size());
-//		OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//		assertEquals((Integer)0, responseBody.getDepth());
-//
-//		OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//		assertEquals((Integer)0, status.getDepth());
-//
-//		OutputActivityPort redirection = activity.getOutputPorts().getByName("redirection");
-//		assertEquals((Integer)0, redirection.getDepth());
-//
-//
-//		PropertyResource userIDDef = scufl2Tools.portDefinitionFor(userID, profile);
-//		assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), userIDDef.getTypeURI());
-//		assertEquals(PropertyLiteral.XSD_STRING,
-//				userIDDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//		PropertyResource thingDef = scufl2Tools.portDefinitionFor(thing, profile);
-//		assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), thingDef.getTypeURI());
-//		assertEquals(PropertyLiteral.XSD_STRING,
-//				thingDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//		PropertyResource inputBodyDef = scufl2Tools.portDefinitionFor(inputBody, profile);
-//		assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), inputBodyDef.getTypeURI());
-//		assertEquals(PropertyLiteral.XSD_STRING,
-//				inputBodyDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-
-	}
-
-	@Test
-		public void put2_2_resaved() throws Exception {
-			WorkflowBundle bundle = parse2_2_saved_2_3();
-			Profile profile = bundle.getMainProfile();
-			//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-			// [default, post, put]
-			Processor proc = bundle.getMainWorkflow().getProcessors()
-					.getByName("put");
-			assertNotNull(proc);
-			Configuration config = scufl2Tools
-					.configurationForActivityBoundToProcessor(proc, profile);
-			assertNotNull(config);
-			assertEquals(ACTIVITY_URI.resolve("#Config"),
-					config.getType());
-
-			Activity activity = (Activity) config.getConfigures();
-			assertEquals(ACTIVITY_URI, activity.getType());
-
-			PropertyResource configResource = config.getJson();
-			PropertyResource request = configResource.getPropertyAsResource(
-					ACTIVITY_URI.resolve("#request"));
-			assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-			// A sub-class of HTTP_URI.resolve("#Request")
-
-			URI toolId = request.getPropertyAsResourceURI(
-					HTTP_URI.resolve("#mthd"));
-			assertEquals(HTTP_METHODS_URI.resolve("#PUT"),
-					toolId);
-
-			String urlSignature = request.getPropertyAsString(
-					ACTIVITY_URI.resolve("#absoluteURITemplate"));
-			assertEquals("http://example.com/{thing}/user.xml?id={userID}", urlSignature);
-
-			Map<String, String> foundHeaders = new HashMap<String, String>();
-			PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-			for (PropertyObject header : headers) {
-				PropertyResource reqHeader = (PropertyResource) header;
-				String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-				String value;
-				if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-					value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-				} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-					assertEquals(true,
-							reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-					value = "--use100Continue--";
-				} else {
-					value = "--undefinedValue--";
-				}
-				foundHeaders.put(fieldName, value);
-				assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-			}
-			assertEquals(3, foundHeaders.size());
-
-			assertEquals("application/xml", foundHeaders.get("Accept"));
-			// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-	//		assertFalse(foundHeaders.containsKey("Content-Type"));
-	//		assertFalse(foundHeaders.containsKey("Expect"));
-			assertEquals("application/json", foundHeaders.get("Content-Type"));
-			 assertEquals("--use100Continue--", foundHeaders.get("Expect"));
-
-
-	//		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-			assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-			//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-			assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-			// Check ports
-//			assertEquals(3, activity.getInputPorts().size());
-//			InputActivityPort userID = activity.getInputPorts().getByName("userID");
-//			assertEquals((Integer)0, userID.getDepth());
-//
-//			InputActivityPort thing = activity.getInputPorts().getByName("thing");
-//			assertEquals((Integer)0, thing.getDepth());
-//
-//			InputActivityPort inputBody = activity.getInputPorts().getByName("inputBody");
-//			assertEquals((Integer)0, inputBody.getDepth());
-//
-//
-//			assertEquals(3, activity.getOutputPorts().size());
-//			OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//			assertEquals((Integer)0, responseBody.getDepth());
-//
-//			OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//			assertEquals((Integer)0, status.getDepth());
-//
-//			OutputActivityPort redirection = activity.getOutputPorts().getByName("redirection");
-//			assertEquals((Integer)0, redirection.getDepth());
-//
-//
-//			PropertyResource userIDDef = scufl2Tools.portDefinitionFor(userID, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), userIDDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					userIDDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//			PropertyResource thingDef = scufl2Tools.portDefinitionFor(thing, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), thingDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					thingDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//			PropertyResource inputBodyDef = scufl2Tools.portDefinitionFor(inputBody, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), inputBodyDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					inputBodyDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-
-		}
-
-	@Test
-		public void put2_3() throws Exception {
-			WorkflowBundle bundle = parse2_3();
-			Profile profile = bundle.getMainProfile();
-			//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-			// [default, post, put]
-			Processor proc = bundle.getMainWorkflow().getProcessors()
-					.getByName("put");
-			assertNotNull(proc);
-			Configuration config = scufl2Tools
-					.configurationForActivityBoundToProcessor(proc, profile);
-			assertNotNull(config);
-			assertEquals(ACTIVITY_URI.resolve("#Config"),
-					config.getType());
-
-			Activity activity = (Activity) config.getConfigures();
-			assertEquals(ACTIVITY_URI, activity.getType());
-
-			PropertyResource configResource = config.getJson();
-			PropertyResource request = configResource.getPropertyAsResource(
-					ACTIVITY_URI.resolve("#request"));
-			assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-			// A sub-class of HTTP_URI.resolve("#Request")
-
-			URI toolId = request.getPropertyAsResourceURI(
-					HTTP_URI.resolve("#mthd"));
-			assertEquals(HTTP_METHODS_URI.resolve("#PUT"),
-					toolId);
-
-			String urlSignature = request.getPropertyAsString(
-					ACTIVITY_URI.resolve("#absoluteURITemplate"));
-			assertEquals("http://www.uniprot.org/{db}/{id}.xml", urlSignature);
-
-			Map<String, String> foundHeaders = new HashMap<String, String>();
-			PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-			for (PropertyObject header : headers) {
-				PropertyResource reqHeader = (PropertyResource) header;
-				String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-				String value;
-				if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-					value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-				} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-					assertEquals(true,
-							reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-					value = "--use100Continue--";
-				} else {
-					value = "--undefinedValue--";
-				}
-				foundHeaders.put(fieldName, value);
-				assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-			}
-			assertEquals(5, foundHeaders.size());
-
-			assertEquals("audio/mp4", foundHeaders.get("Accept"));
-			// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-	//		assertFalse(foundHeaders.containsKey("Content-Type"));
-	//		assertFalse(foundHeaders.containsKey("Expect"));
-			assertEquals("application/xml", foundHeaders.get("Content-Type"));
-			 assertEquals("--use100Continue--", foundHeaders.get("Expect"));
-			 assertEquals("Soup", foundHeaders.get("X-Fish"));
-			 assertEquals("Very funny", foundHeaders.get("X-Taverna"));
-
-
-	//		assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-			assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-			//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-			assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-			// Check ports
-//			assertEquals(3, activity.getInputPorts().size());
-//			InputActivityPort db = activity.getInputPorts().getByName("db");
-//			assertEquals((Integer)0, db.getDepth());
-//
-//			InputActivityPort id = activity.getInputPorts().getByName("id");
-//			assertEquals((Integer)0, id.getDepth());
-//
-//			InputActivityPort inputBody = activity.getInputPorts().getByName("inputBody");
-//			assertEquals((Integer)0, inputBody.getDepth());
-//
-//
-//			assertEquals(3, activity.getOutputPorts().size());
-//			OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//			assertEquals((Integer)0, responseBody.getDepth());
-//
-//			OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//			assertEquals((Integer)0, status.getDepth());
-//
-//			OutputActivityPort redirection = activity.getOutputPorts().getByName("redirection");
-//			assertEquals((Integer)0, redirection.getDepth());
-//
-//
-//			PropertyResource dbDef = scufl2Tools.portDefinitionFor(db, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), dbDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					dbDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//			PropertyResource idDef = scufl2Tools.portDefinitionFor(id, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), idDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					idDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//			PropertyResource inputBodyDef = scufl2Tools.portDefinitionFor(inputBody, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), inputBodyDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					inputBodyDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-
-		}
-
-	@Test
-		public void post2_2() throws Exception {
-			WorkflowBundle bundle = parse2_2();
-			Profile profile = bundle.getMainProfile();
-			//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-			// [default, post, put]
-			Processor proc = bundle.getMainWorkflow().getProcessors()
-					.getByName("post");
-			assertNotNull(proc);
-			Configuration config = scufl2Tools
-					.configurationForActivityBoundToProcessor(proc, profile);
-			assertNotNull(config);
-			assertEquals(ACTIVITY_URI.resolve("#Config"),
-					config.getType());
-
-			Activity activity = (Activity) config.getConfigures();
-			assertEquals(ACTIVITY_URI, activity.getType());
-
-			PropertyResource configResource = config.getJson();
-			PropertyResource request = configResource.getPropertyAsResource(
-					ACTIVITY_URI.resolve("#request"));
-			assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-			// A sub-class of HTTP_URI.resolve("#Request")
-
-			URI toolId = request.getPropertyAsResourceURI(
-					HTTP_URI.resolve("#mthd"));
-			assertEquals(HTTP_METHODS_URI.resolve("#POST"),
-					toolId);
-
-			String urlSignature = request.getPropertyAsString(
-					ACTIVITY_URI.resolve("#absoluteURITemplate"));
-			assertEquals("http://www.myexperiment.org/user.xml?id={userID}", urlSignature);
-
-			Map<String, String> foundHeaders = new HashMap<String, String>();
-			PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-			for (PropertyObject header : headers) {
-				PropertyResource reqHeader = (PropertyResource) header;
-				String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-				String value;
-				if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-					value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-				} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-					assertEquals(true,
-							reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-					value = "--use100Continue--";
-				} else {
-					value = "--undefinedValue--";
-				}
-				foundHeaders.put(fieldName, value);
-				assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-			}
-			assertEquals(2, foundHeaders.size());
-
-			assertEquals("text/plain", foundHeaders.get("Accept"));
-			// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-	//		assertFalse(foundHeaders.containsKey("Content-Type"));
-			assertFalse(foundHeaders.containsKey("Expect"));
-			assertEquals("application/zip", foundHeaders.get("Content-Type"));
-//			 assertEquals("--use100Continue--", foundHeaders.get("Expect"));
-
-
-			assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-//			assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-			//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-			assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-			// Check ports
-//			assertEquals(2, activity.getInputPorts().size());
-//			InputActivityPort userID = activity.getInputPorts().getByName("userID");
-//			assertEquals((Integer)0, userID.getDepth());
-//
-//			InputActivityPort inputBody = activity.getInputPorts().getByName("inputBody");
-//			assertEquals((Integer)0, inputBody.getDepth());
-//
-//
-//			assertEquals(2, activity.getOutputPorts().size());
-//			OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//			assertEquals((Integer)0, responseBody.getDepth());
-//
-//			OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//			assertEquals((Integer)0, status.getDepth());
-//
-//
-//			PropertyResource userIDDef = scufl2Tools.portDefinitionFor(userID, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), userIDDef.getTypeURI());
-//			assertEquals(PropertyLiteral.XSD_STRING,
-//					userIDDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//			PropertyResource inputBodyDef = scufl2Tools.portDefinitionFor(inputBody, profile);
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), inputBodyDef.getTypeURI());
-//			assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#binary"),
-//					inputBodyDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-
-		}
-
-	@Test
-			public void post2_2_saved_2_3() throws Exception {
-				WorkflowBundle bundle = parse2_2_saved_2_3();
-				Profile profile = bundle.getMainProfile();
-				//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-				// [default, post, put]
-				Processor proc = bundle.getMainWorkflow().getProcessors()
-						.getByName("post");
-				assertNotNull(proc);
-				Configuration config = scufl2Tools
-						.configurationForActivityBoundToProcessor(proc, profile);
-				assertNotNull(config);
-				assertEquals(ACTIVITY_URI.resolve("#Config"),
-						config.getType());
-
-				Activity activity = (Activity) config.getConfigures();
-				assertEquals(ACTIVITY_URI, activity.getType());
-
-				PropertyResource configResource = config.getJson();
-				PropertyResource request = configResource.getPropertyAsResource(
-						ACTIVITY_URI.resolve("#request"));
-				assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-				// A sub-class of HTTP_URI.resolve("#Request")
-
-				URI toolId = request.getPropertyAsResourceURI(
-						HTTP_URI.resolve("#mthd"));
-				assertEquals(HTTP_METHODS_URI.resolve("#POST"),
-						toolId);
-
-				String urlSignature = request.getPropertyAsString(
-						ACTIVITY_URI.resolve("#absoluteURITemplate"));
-				assertEquals("http://www.myexperiment.org/user.xml?id={userID}", urlSignature);
-
-				Map<String, String> foundHeaders = new HashMap<String, String>();
-				PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-				for (PropertyObject header : headers) {
-					PropertyResource reqHeader = (PropertyResource) header;
-					String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-					String value;
-					if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-						value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-					} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-						assertEquals(true,
-								reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-						value = "--use100Continue--";
-					} else {
-						value = "--undefinedValue--";
-					}
-					foundHeaders.put(fieldName, value);
-					assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-				}
-				assertEquals(2, foundHeaders.size());
-
-				assertEquals("text/plain", foundHeaders.get("Accept"));
-				// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-		//		assertFalse(foundHeaders.containsKey("Content-Type"));
-				assertFalse(foundHeaders.containsKey("Expect"));
-				assertEquals("application/zip", foundHeaders.get("Content-Type"));
-	//			 assertEquals("--use100Continue--", foundHeaders.get("Expect"));
-
-
-				assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-	//			assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-				//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-				assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-				// Check ports
-//				assertEquals(2, activity.getInputPorts().size());
-//				InputActivityPort userID = activity.getInputPorts().getByName("userID");
-//				assertEquals((Integer)0, userID.getDepth());
-//
-//				InputActivityPort inputBody = activity.getInputPorts().getByName("inputBody");
-//				assertEquals((Integer)0, inputBody.getDepth());
-//
-//
-//				assertEquals(2, activity.getOutputPorts().size());
-//				OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//				assertEquals((Integer)0, responseBody.getDepth());
-//
-//				OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//				assertEquals((Integer)0, status.getDepth());
-//
-//
-//				PropertyResource userIDDef = scufl2Tools.portDefinitionFor(userID, profile);
-//				assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), userIDDef.getTypeURI());
-//				assertEquals(PropertyLiteral.XSD_STRING,
-//						userIDDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//				PropertyResource inputBodyDef = scufl2Tools.portDefinitionFor(inputBody, profile);
-//				assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), inputBodyDef.getTypeURI());
-//				assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#binary"),
-//						inputBodyDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-
-			}
-
-	@Test
-			public void post2_3() throws Exception {
-				WorkflowBundle bundle = parse2_3();
-				Profile profile = bundle.getMainProfile();
-				//System.out.println(bundle.getMainWorkflow().getProcessors().getNames());
-				// [default, post, put]
-				Processor proc = bundle.getMainWorkflow().getProcessors()
-						.getByName("post");
-				assertNotNull(proc);
-				Configuration config = scufl2Tools
-						.configurationForActivityBoundToProcessor(proc, profile);
-				assertNotNull(config);
-				assertEquals(ACTIVITY_URI.resolve("#Config"),
-						config.getType());
-
-				Activity activity = (Activity) config.getConfigures();
-				assertEquals(ACTIVITY_URI, activity.getType());
-
-				PropertyResource configResource = config.getJson();
-				PropertyResource request = configResource.getPropertyAsResource(
-						ACTIVITY_URI.resolve("#request"));
-				assertEquals(ACTIVITY_URI.resolve("#Request"), request.getTypeURI());
-				// A sub-class of HTTP_URI.resolve("#Request")
-
-				URI toolId = request.getPropertyAsResourceURI(
-						HTTP_URI.resolve("#mthd"));
-				assertEquals(HTTP_METHODS_URI.resolve("#POST"),
-						toolId);
-
-				String urlSignature = request.getPropertyAsString(
-						ACTIVITY_URI.resolve("#absoluteURITemplate"));
-				assertEquals("http://www.uniprot.org/uniprot/{id}.xml", urlSignature);
-
-				Map<String, String> foundHeaders = new HashMap<String, String>();
-				PropertyList headers = request.getPropertyAsList(HTTP_URI.resolve("#headers"));
-				for (PropertyObject header : headers) {
-					PropertyResource reqHeader = (PropertyResource) header;
-					String fieldName = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldName"));
-					String value;
-					if (reqHeader.hasProperty(HTTP_URI.resolve("#fieldValue"))) {
-						value = reqHeader.getPropertyAsString(HTTP_URI.resolve("#fieldValue"));
-					} else if (reqHeader.hasProperty(ACTIVITY_URI.resolve("#use100Continue"))) {
-						assertEquals(true,
-								reqHeader.getPropertyAsLiteral(ACTIVITY_URI.resolve("#use100Continue")).getLiteralValueAsBoolean());
-						value = "--use100Continue--";
-					} else {
-						value = "--undefinedValue--";
-					}
-					foundHeaders.put(fieldName, value);
-					assertEquals(HTTP_URI.resolve("#RequestHeader"), reqHeader.getTypeURI());
-				}
-				assertEquals(2, foundHeaders.size());
-
-				assertEquals("application/xml", foundHeaders.get("Accept"));
-				// Content-Type and Expect should *not* be included if the method is GET/HEAD/DELETE
-		//		assertFalse(foundHeaders.containsKey("Content-Type"));
-				assertFalse(foundHeaders.containsKey("Expect"));
-				assertEquals("application/zip", foundHeaders.get("Content-Type"));
-	//			 assertEquals("--use100Continue--", foundHeaders.get("Expect"));
-
-
-				assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#showRedirectionOutputPort")));
-	//			assertTrue(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#showRedirectionOutputPort")).getLiteralValueAsBoolean());
-				//assertFalse(configResource.getPropertyAsLiteral(ACTIVITY_URI.resolve("#escapeParameters")).getLiteralValueAsBoolean());
-				assertFalse(configResource.hasProperty(ACTIVITY_URI.resolve("#escapeParameters")));
-
-
-				// Check ports
-//				assertEquals(2, activity.getInputPorts().size());
-//				InputActivityPort id = activity.getInputPorts().getByName("id");
-//				assertEquals((Integer)0, id.getDepth());
-//
-//				InputActivityPort inputBody = activity.getInputPorts().getByName("inputBody");
-//				assertEquals((Integer)0, inputBody.getDepth());
-//
-//
-//				assertEquals(2, activity.getOutputPorts().size());
-//				OutputActivityPort responseBody = activity.getOutputPorts().getByName("responseBody");
-//				assertEquals((Integer)0, responseBody.getDepth());
-//
-//				OutputActivityPort status = activity.getOutputPorts().getByName("status");
-//				assertEquals((Integer)0, status.getDepth());
-//
-//
-//				PropertyResource idDef = scufl2Tools.portDefinitionFor(id, profile);
-//				assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), idDef.getTypeURI());
-//				assertEquals(PropertyLiteral.XSD_STRING,
-//						idDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-//
-//				PropertyResource inputBodyDef = scufl2Tools.portDefinitionFor(inputBody, profile);
-//				assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"), inputBodyDef.getTypeURI());
-//				assertEquals(Scufl2Tools.PORT_DEFINITION.resolve("#binary"),
-//						inputBodyDef.getPropertyAsResourceURI(Scufl2Tools.PORT_DEFINITION.resolve("#dataType")));
-
-
-			}
-
-*/
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestXPathActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestXPathActivityParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestXPathActivityParser.java
deleted file mode 100644
index 9e6c23d..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/TestXPathActivityParser.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.t23activities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-
-public class TestXPathActivityParser {
-
-	private static final String XPATH_WORKFLOW_SANS_EXAMPLE_XML = "/xpath_workflow.t2flow";
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	@Test
-	public void parseXPathActivityWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(XPATH_WORKFLOW_SANS_EXAMPLE_XML);
-		assertNotNull("Could not find workflow " + XPATH_WORKFLOW_SANS_EXAMPLE_XML, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(false);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Profile profile = wfBundle.getMainProfile();
-		//XPath_height has missing xmlDocument from its configuration
-		Processor heightProc = wfBundle.getMainWorkflow().getProcessors().getByName("XPath_height");
-		ObjectNode heightConfig = scufl2Tools
-				.configurationForActivityBoundToProcessor(heightProc, profile).getJsonAsObjectNode();
-		assertNotNull(heightConfig);
-		assertEquals("//height/text()",heightConfig.get("xpathExpression").textValue());
-		assertFalse(heightConfig.has("exampleXmlDocument"));
-		//XPath_width has xmlDocument
-		Processor widthProc = wfBundle.getMainWorkflow().getProcessors().getByName("XPath_width");
-		ObjectNode widthConfig = scufl2Tools
-				.configurationForActivityBoundToProcessor(widthProc, profile).getJsonAsObjectNode();		
-		assertNotNull(widthConfig);		
-		assertEquals("//width/text()",widthConfig.get("xpathExpression").asText());		
-		assertTrue(widthConfig.has("exampleXmlDocument"));		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/T3-1226-annotations-with-quotes.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/T3-1226-annotations-with-quotes.t2flow b/taverna-scufl2-t2flow/src/test/resources/T3-1226-annotations-with-quotes.t2flow
deleted file mode 100644
index 3f9aa3e..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/T3-1226-annotations-with-quotes.t2flow
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-workbench-core-2.5.0-20140804T1456"><dataflow id="73a04132-5dc0-4e24-8a30-6ef91c773ad1" role="top"><name>T3_1226_test_with__s</name><inputPorts><port><name>a</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>"quote at the start</text>
-      </annotationBean>
-      <date>2014-12-08 12:28:56.410 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>quote at the end"</text>
-      </annotationBean>
-      <date>2014-12-08 12:28:50.238 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>b</name><lastPredictedDepth>0</lastPredictedDepth><annotations /></port></outputPorts><processors /><conditions /><datalinks><datalink><sink type="dataflow"><port>b</port></sink><source type="dataflow"><port>a</port></source></datalink></datalinks><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Stian Soiland-Reyes</text>
-      </annotationBean>
-      <date>2014-12-08 12:28:31.323 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>73a04132-5dc0-4e24-8a30-6ef91c773ad1</identification>
-      </annotationBean>
-      <date>2014-12-08 12:30:06.624 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>bb55dae2-8d6e-4971-9694-9e4beaccca46</identification>
-      </annotationBean>
-      <date>2014-12-08 12:29:50.55 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>T3-1226 test with 'single quote'</text>
-      </annotationBean>
-      <date>2014-12-08 12:30:04.611 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>This comment contains """triple quotes""" inside.</text>
-      </annotationBean>
-      <date>2014-12-08 12:29:12.250 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/annotated2.2.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/annotated2.2.t2flow b/taverna-scufl2-t2flow/src/test/resources/annotated2.2.t2flow
deleted file mode 100644
index 31b1412..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/annotated2.2.t2flow
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="9e1f7ffd-3bf9-4ba8-9c63-03b79b1858ad" role="top"><name>Workflow_title</name><inputPorts><port><name>in0</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>Only example</text>
-      </annotationBean>
-      <date>2010-07-21 11:19:58.897 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>in1</name><depth>1</depth><granularDepth>1</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Only description</text>
-      </annotationBean>
-      <date>2010-07-21 11:19:47.699 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>in2</name><depth>2</depth><granularDepth>2</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>Some kind </text>
-      </annotationBean>
-      <date>2010-07-21 11:19:34.518 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Workflow input in2</text>
-      </annotationBean>
-      <date>2010-07-21 11:19:25.509 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>out0</name><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text />
-      </annotationBean>
-      <date>2010-07-21 11:26:10.972 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>First annotation</text>
-      </annotationBean>
-      <date>2010-07-21 11:20:30.875 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>Not empty</text>
-      </annotationBean>
-      <date>2010-07-21 11:25:56.668 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Third annotation</text>
-      </annotationBean>
-      <date>2010-07-21 11:25:50.301 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>Empty again</text>
-      </annotationBean>
-      <date>2010-07-21 11:26:05.105 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Second annotation</text>
-      </annotationBean>
-      <date>2010-07-21 11:25:39.729 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>out1</name><annotations /></port></outputPorts><processors><processor><name>Beanshell</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <script />
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>in1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out1</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks /><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Workflow title</text>
-      </annotationBean>
-      <date>2010-07-21 11:20:43.824 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Workflow description</text>
-      </annotationBean>
-      <date>2010-07-21 11:20:50.161 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>bb902d82-b0e4-46fc-bed5-950a3b38bb98</identification>
-      </annotationBean>
-      <date>2010-07-21 11:22:31.286 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>9e1f7ffd-3bf9-4ba8-9c63-03b79b1858ad</identification>
-      </annotationBean>
-      <date>2010-07-21 11:26:16.844 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Workflow author</text>
-      </annotationBean>
-      <date>2010-07-21 11:20:39.864 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/annotation_with_backslash.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/annotation_with_backslash.t2flow b/taverna-scufl2-t2flow/src/test/resources/annotation_with_backslash.t2flow
deleted file mode 100644
index b9da130..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/annotation_with_backslash.t2flow
+++ /dev/null
@@ -1,23 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-core-2.5.0"><dataflow id="b550eb5c-d7ad-4a9b-8dea-fc16df39b9f4" role="top"><name>Workflow1</name><inputPorts><port><name>backslash</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>c:\Program Files\</text>
-      </annotationBean>
-      <date>2014-04-30 10:51:51.81 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts /><processors /><conditions /><datalinks /><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>b550eb5c-d7ad-4a9b-8dea-fc16df39b9f4</identification>
-      </annotationBean>
-      <date>2014-04-30 10:52:13.935 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file


[40/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/oa.rdf
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/oa.rdf b/taverna-robundle/src/main/resources/ontologies/oa.rdf
deleted file mode 100644
index 489bc49..0000000
--- a/taverna-robundle/src/main/resources/ontologies/oa.rdf
+++ /dev/null
@@ -1,889 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
-Copyright © 2012-2013 the Contributors to the Open Annotation Core Data Model Specification, published by the Open Annotation Community Group under the W3C Community Contributor License Agreement (CLA). A human-readable summary is available.      
-
-http://www.w3.org/community/about/agreements/cla/
-
-http://www.w3.org/ns/oa
-
-     -->
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY oa "http://www.w3.org/ns/oa#" >
-    <!ENTITY dcterms "http://purl.org/dc/terms/" >
-    <!ENTITY prov "http://www.w3.org/ns/prov#" >
-    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
-    <!ENTITY dctypes "http://purl.org/dc/dcmitype/" >
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY cnt "http://www.w3.org/2011/content#" >
-    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY skos "http://www.w3.org/2004/02/skos/core#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY trig "http://www.w3.org/2004/03/trix/rdfg-1/" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://www.w3.org/ns/oa"
-     xml:base="http://www.w3.org/ns/oa"
-     xmlns:dc="http://purl.org/dc/elements/1.1/"
-     xmlns:trig="http://www.w3.org/2004/03/trix/rdfg-1/"
-     xmlns:prov="http://www.w3.org/ns/prov#"
-     xmlns:foaf="http://xmlns.com/foaf/0.1/"
-     xmlns:cnt="http://www.w3.org/2011/content#"
-     xmlns:dcterms="http://purl.org/dc/terms/"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:oa="http://www.w3.org/ns/oa#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:dctypes="http://purl.org/dc/dcmitype/"
-     xmlns:skos="http://www.w3.org/2004/02/skos/core#">
-    <owl:Ontology rdf:about="http://www.w3.org/ns/oa#">
-        <dcterms:modified rdf:datatype="&xsd;dateTime">2013-02-22T21:40:51+01:00</dcterms:modified>
-        <owl:versionInfo>0.9.20130208</owl:versionInfo>
-        <dc:title xml:lang="en">Open Annotation Data Model</dc:title>
-        <dc:creator xml:lang="en">Robert Sanderson</dc:creator>
-        <dc:creator xml:lang="it">Paolo Ciccarese</dc:creator>
-        <dc:creator xml:lang="vls">Herbert Van de Sompel</dc:creator>
-        <dc:contributor xml:lang="en">Stian Soiland-Reyes</dc:contributor>
-        <rdfs:comment xml:lang="en">The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web.
-
-This ontology is a non-normative OWL formalization of the textual OA specification at http://www.openannotation.org/spec/core/20130208/index.html
-
-Note that OWL imports are disabled in the published version in order to reduce external implications, improve OWL 2 Profile conformity and increase interoperability. Some OWL tools might thus misleadingly show this ontology as (re)defining properties like skos:prefLabel.</rdfs:comment>
-        <dc:description xml:lang="en">The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web. Open Annotations can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.
-
-An Annotation is considered to be a set of connected resources, typically including a body and target, where the body is somehow about the target. The full model supports additional functionality, enabling semantic annotations, embedding content, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients.</dc:description>
-        <rdfs:seeAlso rdf:resource="http://www.openannotation.org/spec/core/20130208/index.html"/>
-        <owl:versionIRI rdf:resource="http://www.openannotation.org/spec/core/20130208/oa.owl"/>
-        <!-- Disabled to reduce implications from external ontologies
-        <owl:imports rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
-        <owl:imports rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
-        <owl:imports rdf:resource="http://www.w3.org/2004/02/skos/core"/>
-        <owl:imports rdf:resource="http://www.w3.org/ns/prov-o#"/>
-        -->
-    </owl:Ontology>
-    
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/oa#annotatedBy -->
-
-    <owl:ObjectProperty rdf:about="&oa;annotatedBy">
-        <rdfs:label xml:lang="en">annotatedBy</rdfs:label>
-        <rdfs:comment xml:lang="en">The object of the relationship is a resource that identifies the agent responsible for creating the Annotation. This may be either a human or software agent. 
-
-There SHOULD be exactly 1 oa:annotatedBy relationship per Annotation, but MAY be 0 or more than 1, as the Annotation may be anonymous, or multiple agents may have worked together on it.
-
-It is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#cachedSource -->
-
-    <owl:ObjectProperty rdf:about="&oa;cachedSource">
-        <rdfs:label xml:lang="en">cachedSource</rdfs:label>
-        <rdfs:comment xml:lang="en">A link to a copy of the Source resource&apos;s representation appropriate for the Annotation, typically a copy of the original at the time that the Annotation was created</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;TimeState"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#default -->
-
-    <owl:ObjectProperty rdf:about="&oa;default">
-        <rdfs:label xml:lang="en">default</rdfs:label>
-        <rdfs:comment xml:lang="en">The constituent resource of a oa:Choice to use as a default option, if there is no other means to determine which would be most appropriate.
-
-There SHOULD be exactly 1 default relationship for each Choice.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Choice"/>
-        <rdfs:subPropertyOf rdf:resource="&oa;item"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#equivalentTo -->
-
-    <owl:ObjectProperty rdf:about="&oa;equivalentTo">
-        <rdfs:label xml:lang="en">equivalentTo</rdfs:label>
-        <rdfs:comment xml:lang="en">The subject and object resources of the oa:equivalentTo relationship represent the same resource, but potentially have different metadata such as oa:serializedBy, oa:serializedAt and serialization format.  oa:equivalentTo is a symmetrical and transitive relationship; if A oa:equivalentTo B, then it is also true that B oa:equivalent A; and that if B oa:equivalentTo C, then it is also true that A oa:equivalentTo C. 
-
-The Annotation MAY include 0 or more instances of the oa:equivalentTo relationship between copies of the Annotation or other resources, and SHOULD include as many as are available.
-
-If a system publishes an embedded resource (a cnt:Content) at a new HTTP URI, then it SHOULD express the oa:equivalentTo relationship between the resource&apos;s URN and the new URI from which it is available.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;alternateOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasBody -->
-
-    <owl:ObjectProperty rdf:about="&oa;hasBody">
-        <rdfs:label xml:lang="en">hasBody</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between oa:Annotation and body. The body is somehow &quot;about&quot; the oa:hasTarget of the annotation.
-
-The Body may be of any media type, and contain any type of content. The Body SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.
-
-Embedded bodies SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. 
-
-There is no OA class provided for &quot;Body&quot; as a body might be a target of a different annotation. However, there SHOULD be 1 or more content-based classes associated with the body resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.
-</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasScope -->
-
-    <owl:ObjectProperty rdf:about="&oa;hasScope">
-        <rdfs:label xml:lang="en">hasScope</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between a Specific Resource and the resource that provides the scope or context for it in this Annotation.
-
-There MAY be 0 or more hasScope relationships for each Specific Resource.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasSelector -->
-
-    <owl:ObjectProperty rdf:about="&oa;hasSelector">
-        <rdfs:label xml:lang="en">hasSelector</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between a oa:SpecificResource and a oa:Selector.
-
-There MUST be exactly 0 or 1 oa:hasSelector relationship associated with a 
-Specific Resource. 
-
-If multiple Selectors are required, either to express a choice between different optional, equivalent selectors, or a chain of selectors that should all be processed, it is necessary to use oa:Choice, oa:Composite or oa:List as a selector.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:range rdf:resource="&oa;Selector"/>
-        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasSource -->
-
-    <owl:ObjectProperty rdf:about="&oa;hasSource">
-        <rdfs:label xml:lang="en">hasSource</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between a oa:SpecificResource and the resource that it is a more specific representation of. 
-
-There MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasState -->
-
-    <owl:ObjectProperty rdf:about="&oa;hasState">
-        <rdfs:label xml:lang="en">hasState</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between a oa:SpecificResource and a oa:State resource.
-
-There MAY be 0 or 1 oa:hasState relationship for each SpecificResource.
-
-If there are multiple State resources that must be associated with the specific resource, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
-        <rdfs:range rdf:resource="&oa;State"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasTarget -->
-
-    <owl:ObjectProperty rdf:about="&oa;hasTarget">
-        <rdfs:label xml:lang="en">hasTarget</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between oa:Annotation and target. The target resource is what the oa:hasBody is somewhat &quot;about&quot;.
-
-The target may be of any media type, and contain any type of content. The target SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.
-
-Embedded targets SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. 
-
-There is no OA class provided for &quot;Target&quot; as a target might be a body in a different annotation. However, there SHOULD be 1 or more content-based classes associated with the target resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#item -->
-
-    <owl:ObjectProperty rdf:about="&oa;item">
-        <rdfs:label xml:lang="en">item</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between a multiplicity construct node and its constituent resources.
-
-There MUST be 1 or more item relationships for each multiplicity construct oa:Choice, oa:Composite and oa:List.</rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;member"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#motivatedBy -->
-
-    <owl:ObjectProperty rdf:about="&oa;motivatedBy">
-        <rdfs:label xml:lang="en">motivatedBy</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between an Annotation and a Motivation, indicating the reasons why the Annotation was created.
-
-Each Annotation SHOULD have at least one oa:motivatedBy relationship, and MAY be more than 1.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-        <rdfs:range rdf:resource="&oa;Motivation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#serializedBy -->
-
-    <owl:ObjectProperty rdf:about="&oa;serializedBy">
-        <rdfs:label xml:lang="en">serializedBy</rdfs:label>
-        <rdfs:comment xml:lang="en">The object of the relationship is the agent, likely software, responsible for generating the serialization of the Annotation&apos;s serialization. 
-
-It is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage
-
-There MAY be 0 or more oa:serializedBy relationships per Annotation.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#styledBy -->
-
-    <owl:ObjectProperty rdf:about="&oa;styledBy">
-        <rdfs:label xml:lang="en">styledBy</rdfs:label>
-        <rdfs:comment xml:lang="en">The relationship between a oa:Annotation and a oa:Style.
-
-There MAY be 0 or 1 styledBy relationships for each Annotation.
-
-If there are multiple Style resources that must be associated with the Annotation, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-        <rdfs:range rdf:resource="&oa;Style"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/oa#annotatedAt -->
-
-    <owl:DatatypeProperty rdf:about="&oa;annotatedAt">
-        <rdfs:label xml:lang="en">annotatedAt</rdfs:label>
-        <rdfs:comment xml:lang="en">The time at which the Annotation was created. 
-
-There SHOULD be exactly 1 oa:annotatedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#end -->
-
-    <owl:DatatypeProperty rdf:about="&oa;end">
-        <rdfs:label xml:lang="en">end</rdfs:label>
-        <rdfs:comment xml:lang="en">The end position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:end is NOT included within the selected segment. 
-
-See oa:DataPositionSelector and oa:oa:TextPositionSelector.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Selector"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#exact -->
-
-    <owl:DatatypeProperty rdf:about="&oa;exact">
-        <rdfs:label xml:lang="en">exact</rdfs:label>
-        <rdfs:comment xml:lang="en">A copy of the text which is being selected, after normalization.
-
-See oa:TextQuoteSelector.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Selector"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#prefix -->
-
-    <owl:DatatypeProperty rdf:about="&oa;prefix">
-        <rdfs:label xml:lang="en">prefix</rdfs:label>
-        <rdfs:comment xml:lang="en">A snippet of text that occurs immediately before the text which is being selected.
-
-See oa:TextQuoteSelector.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Selector"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#serializedAt -->
-
-    <owl:DatatypeProperty rdf:about="&oa;serializedAt">
-        <rdfs:label xml:lang="en">serializedAt</rdfs:label>
-        <rdfs:comment xml:lang="en">The time at which the agent referenced by oa:serializedBy generated the first serialization of the Annotation, and any subsequent substantially different one. The annotation graph MUST have changed for this property to be updated, and as such represents the last modified datestamp for the Annotation. This might be used to determine if it should be re-imported into a triplestore when discovered. 
-
-There MAY be exactly 1 oa:serializedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.
-</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Annotation"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#start -->
-
-    <owl:DatatypeProperty rdf:about="&oa;start">
-        <rdfs:label xml:lang="en">start</rdfs:label>
-        <rdfs:comment xml:lang="en">The starting position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:start is included within the selected segment. 
-
-See oa:DataPositionSelector and oa:TextPositionSelector.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Selector"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#styleClass -->
-
-    <owl:DatatypeProperty rdf:about="&oa;styleClass">
-        <rdfs:label xml:lang="en">annotatedAt</rdfs:label>
-        <rdfs:comment xml:lang="en">The string name of the class used in the CSS description that should be applied to the Specific Resource.
-
-There MAY be 0 or more styleClass properties on a Specific Resource.
-
-See oa:CssStyle.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#suffix -->
-
-    <owl:DatatypeProperty rdf:about="&oa;suffix">
-        <rdfs:label xml:lang="en">suffix</rdfs:label>
-        <rdfs:comment xml:lang="en">The snippet of text that occurs immediately after the text which is being selected. 
-
-See oa:TextQuoteSelector.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;Selector"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#when -->
-
-    <owl:DatatypeProperty rdf:about="&oa;when">
-        <rdfs:label xml:lang="en">when</rdfs:label>
-        <rdfs:comment xml:lang="en">The timestamp at which the Source resource should be interpreted for the Annotation, typically the time that the Annotation was created.</rdfs:comment>
-        <rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-        <rdfs:domain rdf:resource="&oa;TimeState"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Annotation -->
-
-    <owl:Class rdf:about="&oa;Annotation">
-        <rdfs:label xml:lang="en">Annotation</rdfs:label>
-        <rdfs:comment xml:lang="en">Typically an Annotation has a single Body (oa:hasBody), which is the comment or other descriptive resource, and a single Target (oa:hasTarget) that the Body is somehow &quot;about&quot;. The Body provides the information which is annotating the Target. 
-
-This &quot;aboutness&quot; may be further clarified or extended to notions such as classifying or identifying with oa:motivatedBy.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Choice -->
-
-    <owl:Class rdf:about="&oa;Choice">
-        <rdfs:label xml:lang="en">Choice</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&rdf;Alt"/>
-        <rdfs:comment xml:lang="en">A multiplicity construct that conveys to a consuming application that it should select one of the constituent resources to display to the user, and not render/use all of them. 
-
-oa:Choice can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, 
-
-There MUST be 1 or more oa:item relationships for each oa:Choice.
-
-There SHOULD be exactly 1 default relationship for each Choice.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Composite -->
-
-    <owl:Class rdf:about="&oa;Composite">
-        <rdfs:label>Composite</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&rdf;Bag"/>
-        <rdfs:comment xml:lang="en">A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted. 
-
-oa:Composite can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, 
-
-There MUST be 2 or more oa:item relationships for each oa:Composite.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#CssStyle -->
-
-    <owl:Class rdf:about="&oa;CssStyle">
-        <rdfs:label xml:lang="en">CssStyle</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Style"/>
-        <rdfs:comment xml:lang="en">A resource which describes styles for resources participating in the Annotation using CSS.
-
-Specific Resources MAY be assigned a CSS style class using oa:styleClass.
-
-The CSS resource MAY have its own dereferencable URI that provides the information. For example, &quot;Style1&quot; in the diagram below might actually have the URI &quot;http://www.example.com/styles/annotations.css&quot;. It MAY be embedded within the Annotation using the inline constructions described in Embedding Resources.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#DataPositionSelector -->
-
-    <owl:Class rdf:about="&oa;DataPositionSelector">
-        <rdfs:label xml:lang="en">DataPositionSelector</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
-        <rdfs:comment xml:lang="en">A Selector which describes a range of data based on its start and end positions within the byte stream of the representation.
-
-Each DataPositionSelector MUST have exactly 1 oa:start property.
-
-Each TextPositionSelector MUST have exactly 1 oa:end property.
-
-See oa:TextPositionSelector for selection at normalized character level rather than bytestream level.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#FragmentSelector -->
-
-    <owl:Class rdf:about="&oa;FragmentSelector">
-        <rdfs:label xml:lang="en">FragmentSelector</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
-        <rdfs:comment xml:lang="en">A Selector which describes the segment of interest in a representation, through the use of the fragment identifier component of a URI.
-
-It is RECOMMENDED to use oa:FragmentSelector as the selector on a Specific Resource rather than annotating the fragment URI directly, in order to improve discoverability of annotation on the Source.
-
-The oa:FragmentSelector MUST have exactly 1 rdf:value property, containing the fragment identifier component of a URI that describes the segment of interest in the resource, excluding the initial &quot;#&quot;.
-
-The Fragment Selector SHOULD have a dcterms:conformsTo relationship with the object being the specification that defines the syntax of the fragment, for instance &lt;http://tools.ietf.org/rfc/rfc3236&gt; for HTML fragments. </rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#HttpRequestState -->
-
-    <owl:Class rdf:about="&oa;HttpRequestState">
-        <rdfs:label xml:lang="en">HttpRequestState</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;State"/>
-        <rdfs:comment xml:lang="en">A resource which describes how to retrieve an appropriate representation of the Source resource for the Annotation, based on the HTTP Request headers to send to the server.
-
-There MUST be exactly 1 rdf:value property per HttpRequestState, containing HTTP request headers as a single, complete string, exactly as they would appear in an HTTP request. </rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#List -->
-
-    <owl:Class rdf:about="&oa;List">
-        <rdfs:label xml:lang="en">List</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Composite"/>
-        <rdfs:comment xml:lang="en">A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted, and in a particular order. 
-
-oa:List can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, 
-
-There MUST be 2 or more oa:item relationships for each oa:List, with their order defined using the rdf:List construct of rdf:first/rdf:rest/rdf:nil.
-
-All the elements of the list should also be declared using oa:item, and each of the oa:items should appear at least once in the list.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Motivation -->
-
-    <owl:Class rdf:about="&oa;Motivation">
-        <rdfs:label xml:lang="en">Motivation</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&skos;Concept"/>
-        <rdfs:comment xml:lang="en">The Motivation for creating an Annotation, indicated with oa:motivatedBy, is a reason for its creation, and might include things like oa:replying to another annotation, oa:commenting on a resource, or oa:linking to a related resource.
-
-Each Annotation SHOULD have at least one oa:motivatedBy relationship to an instance of oa:Motivation, which is a subClass of skos:Concept.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Selector -->
-
-    <owl:Class rdf:about="&oa;Selector">
-        <rdfs:label xml:lang="en">Selector</rdfs:label>
-        <rdfs:comment xml:lang="en">A resource which describes the segment of interest in a representation of a Source resource, indicated with oa:hasSelector from the Specific Resource. 
-
-This class is not used directly in Annotations, only its subclasses are.
-
-The nature of the Selector will be dependent on the type of the representation for which the segment is conveyed. The specific type of selector should be indicated using a subclass of oa:Selector.
-
-The Specifier&apos;s description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#SemanticTag -->
-
-    <owl:Class rdf:about="&oa;SemanticTag">
-        <rdfs:label xml:lang="en">SemanticTag</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Tag"/>
-        <rdfs:comment xml:lang="en">A class assigned to the Body when it is a semantic tagging resource; a URI that identifies a concept, rather than an embedded string, frequently a term from a controlled vocabulary.
-
-It is NOT RECOMMENDED to use the URI of a document as a Semantic Tag, as it might also be used as a regular Body in other Annotations which would inherit the oa:SemanticTag class assignment. Instead it is more appropriate to create a new URI and link it to the document, using the foaf:page predicate.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#SpecificResource -->
-
-    <owl:Class rdf:about="&oa;SpecificResource">
-        <rdfs:label xml:lang="en">SpecificResource</rdfs:label>
-        <rdfs:comment xml:lang="en">A resource identifies part of another Source resource, a particular representation of a resource, a resource with styling hints for renders, or any combination of these. 
-
-The Specific Resource takes the role of oa:hasBody or oa:hasTarget in an oa:Annotation instead of the Source resource.
-
-There MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.
-
-There MUST be exactly 0 or 1 oa:hasSelector relationship associated with a Specific Resource.
-
-There MAY be 0 or 1 oa:hasState relationship for each Specific Resource.
-
-If the Specific Resource has an HTTP URI, then the exact segment of the Source resource that it identifies, and only the segment, MUST be returned when the URI is dereferenced. For example, if the segment of interest is a region of an image and the Specific Resource has an HTTP URI, then dereferencing it MUST return the selected region of the image as it was at the time when the annotation was created. Typically this would be a burden to support, and thus the Specific Resource SHOULD be identified by a globally unique URI, such as a UUID URN. If it is not considered important to allow other Annotations or systems to refer to the Specific Resource, then a blank node MAY be used instead.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#State -->
-
-    <owl:Class rdf:about="&oa;State">
-        <rdfs:label xml:lang="en">State</rdfs:label>
-        <rdfs:comment xml:lang="en">A resource which describes how to retrieve an appropriate representation of the Source resource, indicated with oa:hasState from the Specific Resource.
-
-This class is not used directly in Annotations, only its subclasses are.
-
-The Specifier&apos;s description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Style -->
-
-    <owl:Class rdf:about="&oa;Style">
-        <rdfs:label xml:lang="en">Style</rdfs:label>
-        <rdfs:comment xml:lang="en">A resource which describes the style in which the selection or resource should be rendered, indicated with oa:styledBy from an oa:Annotation.
-
-This class is not used directly in Annotations, only its subclasses are.
-
-The content of the resource provides the rendering hints about the Annotation&apos;s constituent resources. 
-
-The Specifier&apos;s description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#SvgSelector -->
-
-    <owl:Class rdf:about="&oa;SvgSelector">
-        <rdfs:label xml:lang="en">SvgSelector</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
-        <rdfs:comment xml:lang="en">A Selector which selects an area specified as an SVG shape.
-
-The SVG document should either be retrievable by resolving the URI of this resource, or be included as an Embedded Resource using cnt:Content.
-
-It is RECOMMENDED that the document contain only a single shape element and that element SHOULD be one of: path, rect, circle, ellipse, polyline, polygon or g. The g element SHOULD ONLY be used to construct a multi-element group, for example to define a donut shape requiring an outer circle and a clipped inner circle.
-
-The dimensions of both the shape and the SVG canvas MUST be relative to the dimensions of the Source resource. For example, given an image which is 600 pixels by 400 pixels, and the desired section is a circle of 100 pixel radius at the center of the image, then the SVG element would be: &lt;circle cx=&quot;300&quot; cy=&quot;200&quot; r=&quot;100&quot;/&gt;
-
-It is NOT RECOMMENDED to include style information within the SVG element, nor Javascript, animation, text or other non shape oriented information. Clients SHOULD ignore such information if present.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#Tag -->
-
-    <owl:Class rdf:about="&oa;Tag">
-        <rdfs:label xml:lang="en">Tag</rdfs:label>
-        <rdfs:comment xml:lang="en">A class assigned to the Body when it is a tag, such as a embedded text string with cnt:chars.
-
-Tags are typically keywords or labels, and used for organization, description or discovery of the resource being tagged. In the Semantic Web, URIs are used instead of strings to avoid the issue of polysemy where one word has multiple meanings, such usage MUST be indicated using the subclass oa:SemanticTag.
-
-Annotations that tag resources, either with text or semantic tags, SHOULD also have the oa:tagging motivation to make the reason for the Annotation more clear to applications, and MAY have other motivations as well.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#TextPositionSelector -->
-
-    <owl:Class rdf:about="&oa;TextPositionSelector">
-        <rdfs:label xml:lang="en">TextPositionSelector</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
-        <rdfs:comment xml:lang="en">An oa:Selector which describes a range of text based on its start and end positions.
-
-The text MUST be normalized before counting characters. For a Selector that works from the bitstream rather than the rendered characters, see oa:DataPositionSelector.
-
-Each oa:TextPositionSelector MUST have exactly 1 oa:start property.
-
-Each oa:TextPositionSelector MUST have exactly 1 oa:end property.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#TextQuoteSelector -->
-
-    <owl:Class rdf:about="&oa;TextQuoteSelector">
-        <rdfs:label xml:lang="en">TextQuoteSelector</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
-        <rdfs:comment xml:lang="en">A Selector that describes a textual segment by means of quoting it, plus passages before or after it.
-
-For example, if the document were &quot;abcdefghijklmnopqrstuvwxyz&quot;, one could select &quot;efg&quot; by a oa:prefix of &quot;abcd&quot;, the quotation of oa:exact &quot;efg&quot; and a oa:suffix of &quot;hijk&quot;.
-
-The text MUST be normalized before recording.
-
-Each TextQuoteSelector MUST have exactly 1 oa:exact property.
-
-Each TextQuoteSelector SHOULD have exactly 1 oa:prefix property, and MUST NOT have more than 1.
-
-Each TextQuoteSelector SHOULD have exactly 1 oa:suffix property, and MUST NOT have more than 1.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#TimeState -->
-
-    <owl:Class rdf:about="&oa;TimeState">
-        <rdfs:label xml:lang="en">TimeState</rdfs:label>
-        <rdfs:subClassOf rdf:resource="&oa;State"/>
-        <rdfs:comment xml:lang="en">A resource which describes how to retrieve a representation of the Source resource that is temporally appropriate for the Annotation.
-
-There MUST be at least one of oa:cachedSource or oa:when specified. If there is more than 1, each gives an alternative copy of the representation.</rdfs:comment>
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Class>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Individuals
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/ns/oa#bookmarking -->
-
-    <owl:NamedIndividual rdf:about="&oa;bookmarking">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents the creation of a bookmark to the target resources or recorded point or points within one or more resources. For example, an Annotation that bookmarks the point in a text where the reader finished reading. Bookmark Annotations may or may not have a Body resource.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">bookmarking</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#classifying -->
-
-    <owl:NamedIndividual rdf:about="&oa;classifying">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents the assignment of a classification type, typically from a controlled vocabulary, to the target resource(s). For example to classify an Image resource as a Portrait.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">classifying</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#commenting -->
-
-    <owl:NamedIndividual rdf:about="&oa;commenting">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents a commentary about or review of the target resource(s). For example to provide a commentary about a particular PDF.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">commenting</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#describing -->
-
-    <owl:NamedIndividual rdf:about="&oa;describing">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents a description of the target resource(s), as opposed to a comment about them. For example describing the above PDF&apos;s contents, rather than commenting on their accuracy.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">describing</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#editing -->
-
-    <owl:NamedIndividual rdf:about="&oa;editing">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents a request for a modification or edit to the target resource. For example, an Annotation that requests a typo to be corrected.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">editing</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#highlighting -->
-
-    <owl:NamedIndividual rdf:about="&oa;highlighting">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents a highlighted section of the target resource or segment. For example to draw attention to the selected text that the annotator disagrees with. A Highlight may or may not have a Body resource</rdfs:comment>
-        <skos:prefLabel xml:lang="en">highlighting</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#identifying -->
-
-    <owl:NamedIndividual rdf:about="&oa;identifying">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents the assignment of an identity to the target resource(s). For example, annotating the name of a city in a string of text with the URI that identifies it.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">identifying</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#linking -->
-
-    <owl:NamedIndividual rdf:about="&oa;linking">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents an untyped link to a resource related to the target.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">linking</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#moderating -->
-
-    <owl:NamedIndividual rdf:about="&oa;moderating">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents an assignment of value or quality to the target resource(s). For example annotating an Annotation to moderate it up in a trust network or threaded discussion.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">moderating</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#motivationScheme -->
-
-    <owl:NamedIndividual rdf:about="&oa;motivationScheme">
-        <rdf:type rdf:resource="&skos;ConceptScheme"/>
-        <rdfs:label xml:lang="en">motivationScheme</rdfs:label>
-        <rdfs:comment xml:lang="en">The concept scheme for Open Annotation Motivations</rdfs:comment>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#questioning -->
-
-    <owl:NamedIndividual rdf:about="&oa;questioning">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents asking a question about the target resource(s). For example to ask for assistance with a particular section of text, or question its veracity.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">questioning</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#replying -->
-
-    <owl:NamedIndividual rdf:about="&oa;replying">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents a reply to a previous statement, either an Annotation or another resource. For example providing the assistance requested in the above.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">replying</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#tagging -->
-
-    <owl:NamedIndividual rdf:about="&oa;tagging">
-        <rdf:type rdf:resource="&oa;Motivation"/>
-        <rdfs:comment xml:lang="en">The motivation that represents adding a Tag on the target resource(s). One or more of the bodies of the annotation should be typed as a oa:Tag or oa:SemanticTag.</rdfs:comment>
-        <skos:prefLabel xml:lang="en">tagging</skos:prefLabel>
-        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
-    </owl:NamedIndividual>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net -->
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/ore-owl.owl
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/ore-owl.owl b/taverna-robundle/src/main/resources/ontologies/ore-owl.owl
deleted file mode 100644
index 905d008..0000000
--- a/taverna-robundle/src/main/resources/ontologies/ore-owl.owl
+++ /dev/null
@@ -1,258 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY dcterms "http://purl.org/dc/terms/" >
-    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
-    <!ENTITY dcmitype "http://purl.org/dc/dcmitype/" >
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY ore "http://www.openarchives.org/ore/terms/" >
-    <!ENTITY rdfg "http://www.w3.org/2004/03/trix/rdfg-1/" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2015/ore#"
-     xml:base="http://ns.taverna.org.uk/2015/ore"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:foaf="http://xmlns.com/foaf/0.1/"
-     xmlns:dcmitype="http://purl.org/dc/dcmitype/"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:ore="http://www.openarchives.org/ore/terms/"
-     xmlns:rdfg="http://www.w3.org/2004/03/trix/rdfg-1/"
-     xmlns:dcterms="http://purl.org/dc/terms/">
-    <owl:Ontology rdf:about="http://ns.taverna.org.uk/2015/ore">
-        <rdfs:comment xml:lang="en">Terms in http://www.openarchives.org/ore/terms/ namespace
-
-Created by using only the URIs and structure from http://www.openarchives.org/ore/1.0/vocabulary
-to bypass incompatible license.
-
-See http://www.openarchives.org/ore/1.0/vocabulary for definition of terms.
-
-
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the &quot;License&quot;); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.openarchives.org/ore/1.0/vocabulary"/>
-        <owl:backwardCompatibleWith rdf:resource="http://www.openarchives.org/ore/terms/"/>
-    </owl:Ontology>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Annotation properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/similarTo -->
-
-    <owl:AnnotationProperty rdf:about="&ore;similarTo">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:domain rdf:resource="&ore;Aggregation"/>
-        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
-    </owl:AnnotationProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/dc/terms/hasPart -->
-
-    <rdf:Description rdf:about="&dcterms;hasPart">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
-    </rdf:Description>
-    
-
-
-    <!-- http://purl.org/dc/terms/isPartOf -->
-
-    <rdf:Description rdf:about="&dcterms;isPartOf">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
-    </rdf:Description>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/aggregates -->
-
-    <owl:ObjectProperty rdf:about="&ore;aggregates">
-        <rdfs:subPropertyOf rdf:resource="&dcterms;hasPart"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:range rdf:resource="&ore;AggregatedResource"/>
-        <rdfs:domain rdf:resource="&ore;Aggregation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/describes -->
-
-    <owl:ObjectProperty rdf:about="&ore;describes">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:range rdf:resource="&ore;Aggregation"/>
-        <rdfs:domain rdf:resource="&ore;ResourceMap"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/isAggregatedBy -->
-
-    <owl:ObjectProperty rdf:about="&ore;isAggregatedBy">
-        <rdfs:subPropertyOf rdf:resource="&dcterms;isPartOf"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:domain rdf:resource="&ore;AggregatedResource"/>
-        <rdfs:range rdf:resource="&ore;Aggregation"/>
-        <owl:inverseOf rdf:resource="&ore;aggregates"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/isDescribedBy -->
-
-    <owl:ObjectProperty rdf:about="&ore;isDescribedBy">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:domain rdf:resource="&ore;Aggregation"/>
-        <rdfs:range rdf:resource="&ore;ResourceMap"/>
-        <owl:inverseOf rdf:resource="&ore;describes"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/lineage -->
-
-    <owl:ObjectProperty rdf:about="&ore;lineage">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:domain rdf:resource="&ore;Proxy"/>
-        <rdfs:range rdf:resource="&ore;Proxy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/proxyFor -->
-
-    <owl:ObjectProperty rdf:about="&ore;proxyFor">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:range rdf:resource="&ore;AggregatedResource"/>
-        <rdfs:domain rdf:resource="&ore;Proxy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/proxyIn -->
-
-    <owl:ObjectProperty rdf:about="&ore;proxyIn">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-        <rdfs:range rdf:resource="&ore;Aggregation"/>
-        <rdfs:domain rdf:resource="&ore;Proxy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/dc/dcmitype/Collection -->
-
-    <rdf:Description rdf:about="&dcmitype;Collection">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/dcmitype/"/>
-    </rdf:Description>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/AggregatedResource -->
-
-    <owl:Class rdf:about="&ore;AggregatedResource">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/Aggregation -->
-
-    <owl:Class rdf:about="&ore;Aggregation">
-        <rdfs:subClassOf rdf:resource="&dcmitype;Collection"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/Proxy -->
-
-    <owl:Class rdf:about="&ore;Proxy">
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/ResourceMap -->
-
-    <owl:Class rdf:about="&ore;ResourceMap">
-        <rdfs:subClassOf rdf:resource="&rdfg;Graph"/>
-        <rdfs:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/2004/03/trix/rdfg-1/Graph -->
-
-    <rdf:Description rdf:about="&rdfg;Graph">
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/2004/03/trix/rdfg-1/"/>
-    </rdf:Description>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.5.0) http://owlapi.sourceforge.net -->
-


[28/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/README.md
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/README.md b/taverna-scufl2-examples/README.md
deleted file mode 100644
index 429d4e8..0000000
--- a/taverna-scufl2-examples/README.md
+++ /dev/null
@@ -1,251 +0,0 @@
-SCUFL2 examples
-===============
-
-Examples of using the [SCUFL2 API](http://dev.mygrid.org.uk/wiki/display/developer/SCUFL2+API) v0.14.0.
-
-[![Build Status](https://travis-ci.org/myGrid/scufl2-examples.svg?branch=master)](https://travis-ci.org/myGrid/scufl2-examples)
-
-As this code is meant only as examples that you can extend and modify, the
-groupId and package name are `org.apache.taverna.examples`, which should be changed
-in your application.
-
-
-
-Download
---------
-Download the `scufl2-examples-0.x.x-standalone.jar` from the
-[latest build](http://build.mygrid.org.uk/ci/job/scufl2-examples/lastSuccessfulBuild/com.example$scufl2-examples/), or browse the [Maven snapshot repository](http://repository.mygrid.org.uk/artifactory/libs-snapshot-local/com/example/scufl2-examples/).
-
-This is a standalone executable JAR (see below). 
-
-
-
-Build
------
-
-
-To build, you'll need [Maven](http://maven.apache.org/download.cgi) 3.0.5 or newer, and run
-```mvn clean install```:
-
-    C:\Users\stain\workspace\scufl2-examples> mvn clean install
-    
-    [INFO] ------------------------------------------------------------------------
-    [INFO] Building SCUFL2 examples 0.1.1-SNAPSHOT
-    [INFO] ------------------------------------------------------------------------
-    [INFO] 
-    [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ scufl2-examples ---
-    [INFO] Deleting C:\Users\stain\workspace\scufl2-examples\target
-    (..)
-    [INFO] Installing C:\Users\stain\workspace\scufl2-examples\target\scufl2-examples-0.1.1-SNAPSHOT.jar to C:\Users\stain\.m2\repository\com\example\scufl2-examples\0.1.1-SNAPSHOT\scufl2-examples-0.1.1-SNAPSHOT.jar
-    [INFO] Installing C:\Users\stain\workspace\scufl2-examples\pom.xml to C:\Users\stain\.m2\repository\com\example\scufl2-examples\0.1.1-SNAPSHOT\scufl2-examples-0.1.1-SNAPSHOT.pom
-    [INFO] ------------------------------------------------------------------------
-    [INFO] BUILD SUCCESS
-    [INFO] ------------------------------------------------------------------------
-    [INFO] Total time: 6.223s
-    [INFO] Finished at: Tue Apr 23 11:00:27 BST 2013
-    [INFO] Final Memory: 15M/243M
-    [INFO] ----------------    
-
-To run the examples, see the folder ```target\scufl2-examples``` which has a `bin/` executable for each of the below tools. Note that these tools require the provided `bin/` and `lib/` folder structure.
-
-Alternatively you can use ```java -jar target/scufl2-examples-0.2.0-SNAPSHOT-standalone.jar``` - this is a standalone
-JAR file that can execute any of the tools as the first argument. 
-
-Linux users can install this with:
-
-    chmod 755 target/scufl2-examples-*-standalone.jar
-    sudo cp target/scufl2-examples-*-standalone.jar /usr/local/bin/scufl2tool
-    
-as long as JAR files are recognized as executables:
-
-    stain@biggie-mint ~/src/scufl2-examples $ target/scufl2-examples-0.2.0-SNAPSHOT-standalone.jar 
-    SCUFL2 workflow tool
-    Usage: scufl2tool <tool> [option] ...
-
-    Available tools:
-    t2flowtowfbundle - Convert t2flow workflows to wfbundle
-    jsonexport - Export JSON structure of workflow
-    processornames - List tree of processor names in workflow
-    servicetypes - List service types used in workflow
-    workflowmaker - Create an example workflow programmatically
-
-
-
-processornames
---------------
-This tool lists a tree of the processor names in the workflows of the given bundle.
-
-    C:\Users\stain\workspace\scufl2-examples> target\scufl2-examples\bin\processornames examples/helloworld.t2flow
-    + Hello_World
-      - hello
-    
-    
-    C:\Users\stain\workspace\scufl2-examples> target\scufl2-examples\bin\processornames examples/helloanyone.t2flow
-    + Hello_Anyone
-      - Concatenate_two_strings
-      - hello
-
-See the source code for [org.apache.taverna.examples.ProcessorNames](src/main/java/org/apache/taverna/examples/ProcessorNames.java)
- for how this is implemented.
-
-
-servicetypes
-------------
-This tool lists the URIs of the types of services (activities) used in the workflow.
-
-    C:\Users\stain\workspace\scufl2-examples> target\scufl2-examples\bin\servicetypes examples/helloanyone.t2flow
-    http://ns.taverna.org.uk/2010/activity/beanshell
-    http://ns.taverna.org.uk/2010/activity/constant
-
-See the source code for [org.apache.taverna.examples.ServiceTypes](src/main/java/org/apache/taverna/examples/ServiceTypes.java)
- for how this is implemented.
-
-
-workflowmaker
--------------
-This tool shows how to construct a workflow from scratch and save it as a 
-[SCUFL2 wfbundle](http://dev.mygrid.org.uk/wiki/display/developer/Taverna+Workflow+Bundle).
-
-    C:\Users\stain\workspace\scufl2-examples> target\scufl2-examples\bin\workflowmaker
-    Written to C:\Users\stain\AppData\Local\Temp\test6264603033381329995.wfbundle
-    
-    WorkflowBundle '4fdb73e3-a5c6-41a8-aafb-32f67ca552b2'
-      MainWorkflow 'Echotest'
-      Workflow 'Echotest'
-        In 'in1'
-        Out 'out1'
-        Processor 'p'
-          In 'pIn'
-          Out 'pOut'
-        Links
-          'in1' -> 'p:pIn'
-          'p:pOut' -> 'out1'
-      MainProfile 'default'
-      Profile 'default'
-        Activity 'myBeanshell'
-          Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-          In 'in1'
-          Out 'out1'
-        ProcessorBinding '434e7226-1d7f-498d-a19f-75be9f38f266'
-          Activity 'myBeanshell'
-          Processor 'Echotest:p'
-          InputPortBindings
-            'pIn' -> 'in1'
-          OutputPortBindings
-            'out1' -> 'pOut'
-        Configuration 'beanshellConf'
-          Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-          Configures 'activity/myBeanshell'
-          Property <http://ns.taverna.org.uk/2010/activity/beanshell#script>
-            '''out1 = in1'''
-
-
-See the source code for [org.apache.taverna.examples.WorkflowMaker](src/main/java/org/apache/taverna/WorkflowMaker.java) 
-for how this is implemented.
-
-
-t2flowtowfbundle
-----------------
-
-This tool shows how to convert a *.t2flow* file to a 
-[SCUFL2 .wfbundle](http://dev.mygrid.org.uk/wiki/display/developer/Taverna+Workflow+Bundle).
-
-    C:\Users\stain\workspace\scufl2-examples> rm helloworld.wfbundle
-    
-    C:\Users\stain\workspace\scufl2-examples> target\scufl2-examples\bin\t2flowtowfbu
-    
-    C:\Users\stain\workspace\scufl2-examples> unzip -t helloworld.wfbundle
-    Archive:  helloworld.wfbundle
-        testing: mimetype                 OK
-        testing: META-INF/                OK
-        testing: META-INF/manifest.xml    OK
-        testing: history/                 OK
-        testing: history/8781d5f4-d0ba-48a8-a1d1-14281bd8a917.t2flow   OK
-        testing: workflow/                OK
-        testing: workflow/Hello_World.rdf   OK
-        testing: profile/                 OK
-        testing: profile/taverna-2.2.0.rdf   OK
-        testing: annotation/              OK
-        testing: annotation/0c2f3c2c-7b5f-49cc-a448-92d707da3795.rdf   OK
-        testing: annotation/48c04fe7-90f8-42f2-be61-a0480aa826d1.rdf   OK
-        testing: annotation/9558f2e4-b629-4d1d-a62e-8c0dd39d7746.rdf   OK
-        testing: workflowBundle.rdf       OK
-        testing: META-INF/container.xml   OK
-    No errors detected in compressed data of helloworld.wfbundle.
-
-See the source code for 
-[org.apache.taverna.examples.ConvertT2flowToWorkflowBundle.java](src/main/java/org/apache/taverna/examples/ConvertT2flowToWorkflowBundle.java)
-for how this is implemented.
-
-The included files [helloworld.wfbundle](helloworld.wfbundle?raw=true) and
-[helloanyone.wfbundle](helloanyone.wfbundle?raw=true) are examples of converting
-[helloworld.t2flow](helloworld.t2flow?raw=true) and [helloanyone.t2flow](helloanyone.t2flow?raw=true)  
-
-
-jsonexport
-----------
-This tool exports a JSON structure of the workflow, including basic
-annotations on workflows, ports, processors, nested workflows and
-revision log of the workflows.
-
-Usage:
-
-    c:\Users\stain\src\scufl2-examples> target\scufl2-examples\bin\jsonexport -h
-    Export workflow structore as JSON.
-    Usage: jsonexport [filename] ...
-    If the filename is - the workflow will be read from STDIN and
-    JSON written to STDOUT.
-    Otherwise, the file is read as a workflow (t2flow, workflow bundle)
-    and written as JSON to a file with the .json extension.
-    Multiple filenames can be given. JSON filenames are written to STDOUT
-
-Converting multiple files:
-
-    c:\Users\stain\src\scufl2-examples> target\scufl2-examples\bin\jsonexport examples/helloworld.t2flow examples/helloanyone.wfbundle
-    examples/helloworld.json
-    examples/helloanyone.json
-    
-See the converted [examples/helloworld.json](helloworld.json) and
-[examples/helloanyone.json](helloanyone.json).
-
-Example using STDIN/STDOUT:
-
-    c:\Users\stain\src\scufl2-examples> target\scufl2-examples\bin\jsonexport - < examples/helloworld.t2flow
-    {
-      "@context" : [ "https://w3id.org/scufl2/context", {
-        "@base" : "http://ns.taverna.org.uk/2010/workflowBundle/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/"
-      } ],
-      "id" : "http://ns.taverna.org.uk/2010/workflowBundle/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/",
-      "workflow" : {
-        "id" : "workflow/Hello_World/",
-        "name" : "Hello_World",
-        "revisions" : [ {
-          "id" : "http://ns.taverna.org.uk/2010/workflow/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/",
-          "generatedAtTime" : "2012-01-03T15:12:21Z"
-        } ],
-        "inputs" : [ ],
-        "outputs" : [ {
-          "name" : "greeting",
-          "id" : "workflow/Hello_World/out/greeting"
-        } ],
-        "processors" : [ {
-          "id" : "workflow/Hello_World/processor/hello/",
-          "name" : "hello",
-          "inputs" : [ ],
-          "outputs" : [ {
-            "name" : "value",
-            "id" : "workflow/Hello_World/processor/hello/out/value",
-            "depth" : 0
-          } ]
-        } ],
-        "datalinks" : [ {
-          "receivesFrom" : "workflow/Hello_World/processor/hello/out/value",
-          "sendsTo" : "workflow/Hello_World/out/greeting"
-        } ],
-        "controllinks" : [ ],
-        "http://purl.org/dc/terms/description" : "One of the simplest workflows possible. No workflow input ports, a single workflow output port \"greeting\",  outputting \"Hello, world!\" as produced by the String Constant \"hello\".",
-        "http://purl.org/dc/elements/1.1/creator" : "Stian Soiland-Reyes",
-        "http://purl.org/dc/terms/title" : "Hello World"
-      }
-    }
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/examples/helloanyone.json
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/examples/helloanyone.json b/taverna-scufl2-examples/examples/helloanyone.json
deleted file mode 100644
index 477b73c..0000000
--- a/taverna-scufl2-examples/examples/helloanyone.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-  "@context" : [ "https://w3id.org/scufl2/context", {
-    "@base" : "http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/"
-  } ],
-  "id" : "http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/",
-  "workflow" : {
-    "id" : "workflow/Hello_Anyone/",
-    "name" : "Hello_Anyone",
-    "revisions" : [ {
-      "id" : "http://ns.taverna.org.uk/2010/workflow/01348671-5aaa-4cc2-84cc-477329b70b0d/",
-      "generatedAtTime" : "2012-01-03T15:14:30Z",
-      "wasRevisionOf" : "http://ns.taverna.org.uk/2010/workflow/ca7dba1d-1fdf-476f-b911-714d09227d70/"
-    }, {
-      "id" : "http://ns.taverna.org.uk/2010/workflow/ca7dba1d-1fdf-476f-b911-714d09227d70/",
-      "generatedAtTime" : "2012-01-03T15:14:18Z",
-      "wasRevisionOf" : "http://ns.taverna.org.uk/2010/workflow/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/"
-    }, {
-      "id" : "http://ns.taverna.org.uk/2010/workflow/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/",
-      "generatedAtTime" : "2012-01-03T15:12:21Z"
-    } ],
-    "inputs" : [ {
-      "name" : "name",
-      "id" : "workflow/Hello_Anyone/in/name",
-      "depth" : 0
-    } ],
-    "outputs" : [ {
-      "name" : "greeting",
-      "id" : "workflow/Hello_Anyone/out/greeting"
-    } ],
-    "processors" : [ {
-      "id" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/",
-      "name" : "Concatenate_two_strings",
-      "inputs" : [ {
-        "name" : "string1",
-        "id" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string1",
-        "depth" : 0
-      }, {
-        "name" : "string2",
-        "id" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string2",
-        "depth" : 0
-      } ],
-      "outputs" : [ {
-        "name" : "output",
-        "id" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/out/output",
-        "depth" : 0
-      } ]
-    }, {
-      "id" : "workflow/Hello_Anyone/processor/hello/",
-      "name" : "hello",
-      "inputs" : [ ],
-      "outputs" : [ {
-        "name" : "value",
-        "id" : "workflow/Hello_Anyone/processor/hello/out/value",
-        "depth" : 0
-      } ]
-    } ],
-    "datalinks" : [ {
-      "receivesFrom" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/out/output",
-      "sendsTo" : "workflow/Hello_Anyone/out/greeting"
-    }, {
-      "receivesFrom" : "workflow/Hello_Anyone/processor/hello/out/value",
-      "sendsTo" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string1"
-    }, {
-      "receivesFrom" : "workflow/Hello_Anyone/in/name",
-      "sendsTo" : "workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string2"
-    } ],
-    "controllinks" : [ ]
-  },
-  "profile" : {
-    "id" : "profile/taverna-2.2.0/"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/examples/helloanyone.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/examples/helloanyone.t2flow b/taverna-scufl2-examples/examples/helloanyone.t2flow
deleted file mode 100644
index 3b625f1..0000000
--- a/taverna-scufl2-examples/examples/helloanyone.t2flow
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="01348671-5aaa-4cc2-84cc-477329b70b0d" role="top"><name>Hello_Anyone</name><inputPorts><port><name>name</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>World!</text>
-      </annotationBean>
-      <date>2012-01-03 15:13:04.106 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Your name for the greeting</text>
-      </annotationBean>
-      <date>2012-01-03 15:13:12.530 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>greeting</name><annotations /></port></outputPorts><processors><processor><name>hello</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Hello, </value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Concatenate_two_strings</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivi
 ty</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string1" depth="0" /><port name="string2" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>hello</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="dataflow"><port>name</port></source></datalink><datalin
 k><sink type="dataflow"><port>greeting</port></sink><source type="processor"><processor>Concatenate_two_strings</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8781d5f4-d0ba-48a8-a1d1-14281bd8a917</identification>
-      </annotationBean>
-      <date>2012-01-03 15:12:21.684 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ca7dba1d-1fdf-476f-b911-714d09227d70</identification>
-      </annotationBean>
-      <date>2012-01-03 15:14:18.734 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Stian Soiland-Reyes</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:48.73 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello Anyone</text>
-      </annotationBean>
-      <date>2012-01-03 15:14:25.703 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello World</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:54.167 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible, outputting the String Constant "Hello world!"</text>
-      </annotationBean>
-      <date>2012-01-03 15:11:14.557 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>An extension to helloworld.t2flow - this workflow takes a workflow input "name" which is combined with the string constant "Hello, " using the local worker "Concatenate two strings", and outputs the produced string to the workflow output "greeting".</text>
-      </annotationBean>
-      <date>2012-01-03 15:14:13.847 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible. No workflow input ports, a single workflow output port "greeting",  outputting "Hello, world!" as produced by the String Constant "hello".</text>
-      </annotationBean>
-      <date>2012-01-03 15:12:15.643 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>01348671-5aaa-4cc2-84cc-477329b70b0d</identification>
-      </annotationBean>
-      <date>2012-01-03 15:14:30.45 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/examples/helloanyone.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/examples/helloanyone.wfbundle b/taverna-scufl2-examples/examples/helloanyone.wfbundle
deleted file mode 100644
index 904a40d..0000000
Binary files a/taverna-scufl2-examples/examples/helloanyone.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/examples/helloworld.json
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/examples/helloworld.json b/taverna-scufl2-examples/examples/helloworld.json
deleted file mode 100644
index 24e2f1c..0000000
--- a/taverna-scufl2-examples/examples/helloworld.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "@context" : [ "https://w3id.org/scufl2/context", {
-    "@base" : "http://ns.taverna.org.uk/2010/workflowBundle/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/"
-  } ],
-  "id" : "http://ns.taverna.org.uk/2010/workflowBundle/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/",
-  "workflow" : {
-    "id" : "workflow/Hello_World/",
-    "name" : "Hello_World",
-    "revisions" : [ {
-      "id" : "http://ns.taverna.org.uk/2010/workflow/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/",
-      "generatedAtTime" : "2012-01-03T15:12:21Z"
-    } ],
-    "inputs" : [ ],
-    "outputs" : [ {
-      "name" : "greeting",
-      "id" : "workflow/Hello_World/out/greeting"
-    } ],
-    "processors" : [ {
-      "id" : "workflow/Hello_World/processor/hello/",
-      "name" : "hello",
-      "inputs" : [ ],
-      "outputs" : [ {
-        "name" : "value",
-        "id" : "workflow/Hello_World/processor/hello/out/value",
-        "depth" : 0
-      } ]
-    } ],
-    "datalinks" : [ {
-      "receivesFrom" : "workflow/Hello_World/processor/hello/out/value",
-      "sendsTo" : "workflow/Hello_World/out/greeting"
-    } ],
-    "controllinks" : [ ]
-  },
-  "profile" : {
-    "id" : "profile/taverna-2.2.0/"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/examples/helloworld.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/examples/helloworld.t2flow b/taverna-scufl2-examples/examples/helloworld.t2flow
deleted file mode 100644
index 2e10ed9..0000000
--- a/taverna-scufl2-examples/examples/helloworld.t2flow
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="8781d5f4-d0ba-48a8-a1d1-14281bd8a917" role="top"><name>Hello_World</name><inputPorts /><outputPorts><port><name>greeting</name><annotations /></port></outputPorts><processors><processor><name>hello</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Hello, World!</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="dataflow"><port>greeting</port></sink><source type="processor"><processor>hello</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>8781d5f4-d0ba-48a8-a1d1-14281bd8a917</identification>
-      </annotationBean>
-      <date>2012-01-03 15:12:21.684 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Stian Soiland-Reyes</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:48.73 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Hello World</text>
-      </annotationBean>
-      <date>2012-01-03 15:10:54.167 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible, outputting the String Constant "Hello world!"</text>
-      </annotationBean>
-      <date>2012-01-03 15:11:14.557 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>One of the simplest workflows possible. No workflow input ports, a single workflow output port "greeting",  outputting "Hello, world!" as produced by the String Constant "hello".</text>
-      </annotationBean>
-      <date>2012-01-03 15:12:15.643 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/examples/helloworld.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/examples/helloworld.wfbundle b/taverna-scufl2-examples/examples/helloworld.wfbundle
deleted file mode 100644
index ed4cd76..0000000
Binary files a/taverna-scufl2-examples/examples/helloworld.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/pom.xml b/taverna-scufl2-examples/pom.xml
deleted file mode 100644
index 607b470..0000000
--- a/taverna-scufl2-examples/pom.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-examples</artifactId>
-	<name>Apache Taverna Scufl 2 examples</name>
-	<dependencies>
-		<dependency>
-			<groupId>${project.parent.groupId}</groupId>
-			<artifactId>taverna-scufl2-api</artifactId>
-			<version>${project.parent.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${project.parent.groupId}</groupId>
-			<artifactId>taverna-scufl2-t2flow</artifactId>
-			<version>${project.parent.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>${project.parent.groupId}</groupId>
-			<artifactId>taverna-scufl2-rdfxml</artifactId>
-			<version>${project.parent.version}</version>
-		</dependency>
-
-		<!-- Included to get rid of "Could not set prefix mapper" warning, but 
-			should work fine without -->
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-impl</artifactId>
-			<version>2.2.4-1</version>
-			<optional>true</optional>
-		</dependency>
-
-		<!-- For writing out JSON-LD annotations -->
-
-		<dependency>
-			<groupId>org.apache.jena</groupId>
-			<artifactId>jena-arq</artifactId>
-			<version>${jena.version}</version>
-		</dependency>
-
-		<!-- Following only needed by src/test/java -->
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>4.4</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<version>2.1</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>appassembler-maven-plugin</artifactId>
-				<version>1.1.1</version>
-				<executions>
-					<execution>
-						<id>assemble</id>
-						<phase>package</phase>
-						<goals>
-							<goal>assemble</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<repositoryLayout>flat</repositoryLayout>
-					<repositoryName>lib</repositoryName>
-					<assembleDirectory>${project.build.directory}/${project.artifactId}</assembleDirectory>
-					<programs>
-						<program>
-							<mainClass>org.apache.taverna.examples.ConvertT2flowToWorkflowBundle</mainClass>
-							<name>t2flowtowfbundle</name>
-						</program>
-						<program>
-							<mainClass>org.apache.taverna.examples.ProcessorNames</mainClass>
-							<name>processornames</name>
-						</program>
-						<program>
-							<mainClass>org.apache.taverna.examples.ServiceTypes</mainClass>
-							<name>servicetypes</name>
-						</program>
-						<program>
-							<mainClass>org.apache.taverna.examples.WorkflowMaker</mainClass>
-							<name>workflowmaker</name>
-						</program>
-						<program>
-							<mainClass>org.apache.taverna.examples.JsonExport</mainClass>
-							<name>jsonexport</name>
-						</program>
-					</programs>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-shade-plugin</artifactId>
-				<!--<version>2.0</version> does not work with Maven 2 :( -->
-				<version>1.7.1</version>
-				<executions>
-					<execution>
-						<phase>package</phase>
-						<goals>
-							<goal>shade</goal>
-						</goals>
-						<configuration>
-							<shadedArtifactAttached>true</shadedArtifactAttached>
-							<shadedClassifierName>standalone</shadedClassifierName>
-							<transformers>
-								<transformer
-									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-									<mainClass>org.apache.taverna.examples.Scufl2Tool</mainClass>
-								</transformer>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer" />
-								<transformer
-									implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
-								<transformer
-									implementation="org.apache.maven.plugins.shade.resource.XmlAppendingTransformer">
-									<resource>META-INF/spring</resource>
-								</transformer>
-							</transformers>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ConvertT2flowToWorkflowBundle.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ConvertT2flowToWorkflowBundle.java b/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ConvertT2flowToWorkflowBundle.java
deleted file mode 100644
index ae57665..0000000
--- a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ConvertT2flowToWorkflowBundle.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WriterException;
-
-public class ConvertT2flowToWorkflowBundle {
-	public static void main(String[] args) throws Exception, ReaderException,
-			WriterException {
-		new ConvertT2flowToWorkflowBundle().convert(args);
-	}
-
-	public void convert(String[] filepaths) throws ReaderException, IOException, WriterException {
-
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		for (String filepath : filepaths) {
-			File t2File = new File(filepath);
-			
-			String filename = t2File.getName();			
-			filename = filename.replaceFirst("\\..*", ".wfbundle");			
-			File scufl2File = new File(t2File.getParentFile(), filename);
-			
-			WorkflowBundle wfBundle = io.readBundle(t2File,
-					"application/vnd.taverna.t2flow+xml");
-			io.writeBundle(wfBundle, scufl2File,
-					"application/vnd.taverna.scufl2.workflow-bundle");
-		}
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/JsonExport.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/JsonExport.java b/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/JsonExport.java
deleted file mode 100644
index 17e8e5b..0000000
--- a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/JsonExport.java
+++ /dev/null
@@ -1,319 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Ported;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleWriter;
-import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.scufl2.api.port.DepthPort;
-import org.apache.taverna.scufl2.api.port.GranularDepthPort;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
-
-public class JsonExport {
-    public class JsonWriter implements WorkflowBundleWriter {
-        
-        @Override
-        public Set<String> getMediaTypes() {
-            return new HashSet<String>(Arrays.asList("application/ld+json",
-                    "application/json"));
-        }
-        @Override
-        public void writeBundle(WorkflowBundle wfBundle, File destination,
-                String mediaType) throws WriterException, IOException {
-            ObjectNode json = toJson(wfBundle);
-            mapper.writeValue(destination, json);
-        }
-
-        @Override
-        public void writeBundle(WorkflowBundle wfBundle,
-                OutputStream output, String mediaType)
-                throws WriterException, IOException {
-            ObjectNode json = toJson(wfBundle);
-            mapper.writeValue(output, json);
-        }
-
-    }
-
-    public static void main(String[] args) throws ReaderException, IOException,
-            WriterException {
-        new JsonExport().convert(args);
-    }
-
-
-    private WorkflowBundleIO io = new WorkflowBundleIO();;
-
-    private WorkflowBundleWriter jsonWriter = new JsonWriter();
-
-    private ObjectMapper mapper = new ObjectMapper();
-    
-    private Scufl2Tools scufl2Tools = new Scufl2Tools();
-    
-    private URITools uriTools = new URITools();
-    
-    public JsonExport() {
-        mapper.enable(SerializationFeature.INDENT_OUTPUT);
-        mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
-        mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
-
-        mapper.setDateFormat(new ISO8601DateFormat());
-        
-        // Adding custom writer dynamically
-        List<WorkflowBundleWriter> writers = io.getWriters();
-        writers.add(jsonWriter);        
-        io.setWriters(writers);
-    }
-
-    protected void addPorts(Ported ported, ObjectNode p) {
-        ArrayNode inputs = mapper.createArrayNode();        
-        for (Port port : ported.getInputPorts()) {
-            inputs.add(toJson(port));
-        }
-        p.put("inputs", inputs);        
-        
-        ArrayNode outputs = mapper.createArrayNode();        
-        for (Port port : ported.getOutputPorts()) {
-            outputs.add(toJson(port));
-            // FIXME: Do we need the id for ports? Needed if we add datalinks
-        }
-        p.put("outputs", outputs);
-    }
-    
-    protected ObjectNode annotations(Child<?> bean) {
-        ObjectNode node = mapper.createObjectNode();
-        for (Annotation ann : scufl2Tools.annotationsFor(bean)) {
-            URI annUri = uriTools.uriForBean(ann);
-            
-            // TODO: include annotation body?
-        }
-        return node;
-    }
-
-    public void convert(String[] filepaths) throws ReaderException,
-            IOException, WriterException {
-        if (filepaths.length == 0  || filepaths[0].equals("-h")) {
-            System.out.println("Export workflow structore as JSON.");
-            System.out.println("Usage: jsonexport [filename] ...");
-            System.out.println("If the filename is - the workflow will be read from STDIN and");
-            System.out.println("JSON written to STDOUT. ");
-            System.out.println("Otherwise, the file is read as a workflow (t2flow, workflow bundle)");
-            System.out.println("and written as JSON to a file with the .json extension.");
-            System.out.println("Multiple filenames can be given. JSON filenames are written to STDOUT");
-            return;
-        }
-        if (filepaths[0].equals("-")) {
-            // Do piped Stdin/Stdout instead
-            WorkflowBundle wfBundle = io.readBundle(System.in, null);
-            io.writeBundle(wfBundle, System.err, "application/ld+json");
-            return;
-        }
-
-        for (String filepath : filepaths) {
-            File workflow = new File(filepath);
-
-            String filename = workflow.getName();
-            filename = filename.replaceFirst("\\..*", ".json");
-            File workflowFile = new File(workflow.getParentFile(), filename);
-
-            WorkflowBundle wfBundle = io.readBundle(workflow, null);
-            io.writeBundle(wfBundle, workflowFile, "application/ld+json");
-            System.out.println(workflowFile);
-        } 
-    }
-
-    protected ObjectNode toJson(Port port) {
-       ObjectNode p = mapper.createObjectNode();
-       p.put("name", port.getName());
-       p.putPOJO("id", uriTools.relativeUriForBean(port, 
-               scufl2Tools.findParent(WorkflowBundle.class, ((Child<?>)port))));
-       
-       if (port instanceof DepthPort) {
-        DepthPort depthPort = (DepthPort) port;
-        if (depthPort.getDepth() != null) {
-            p.put("depth", depthPort.getDepth());
-        }
-       }
-       if (port instanceof GranularDepthPort) {
-           GranularDepthPort granularDepthPort = (GranularDepthPort) port;
-           if (granularDepthPort.getGranularDepth() != null && 
-                   ! granularDepthPort.getGranularDepth().equals(granularDepthPort.getDepth())) {
-               p.put("granularDepth", granularDepthPort.getGranularDepth());
-           }
-       }
-       p.putAll(annotations((Child<?>)port));
-       return p;
-    }
-
-    protected JsonNode toJson(Processor proc) {
-        ObjectNode p = mapper.createObjectNode();
-        p.putPOJO("id", uriTools.relativeUriForBean(proc, proc.getParent().getParent()));
-        p.put("name", proc.getName());
-        addPorts(proc, p);
-        p.putAll(annotations(proc));
-        
-        List<Workflow> nested = scufl2Tools.nestedWorkflowsForProcessor(proc, 
-                proc.getParent().getParent().getMainProfile());
-        if (! nested.isEmpty()) {
-            if (nested.size() == 1) {
-                p.put("nestedWorkflow", toJson(nested.iterator().next()));
-            } else {
-                ArrayNode list = mapper.createArrayNode();
-                for (Workflow w : nested) {
-                    list.add(toJson(w));
-                }
-                p.put("nestedWorkflow", list);
-            }
-        }
-        return p;
-    }
-    
-    protected JsonNode toJson(Revision currentRevision) {
-        ArrayNode revisions = mapper.createArrayNode();
-        while (currentRevision != null) {
-            ObjectNode rev = mapper.createObjectNode();
-            rev.putPOJO("id", currentRevision.getIdentifier());
-            if (currentRevision.getGeneratedAtTime() != null) {
-                rev.putPOJO("generatedAtTime", currentRevision.getGeneratedAtTime());
-            }
-            currentRevision = currentRevision.getPreviousRevision();
-            if (currentRevision != null) {
-                rev.putPOJO("wasRevisionOf", currentRevision.getIdentifier());
-            }
-            revisions.add(rev);
-        }
-        return revisions;
-    }
-
-    protected ObjectNode toJson(Workflow workflow) {
-        ObjectNode wf = mapper.createObjectNode();
-
-        wf.putPOJO("id", uriTools.relativeUriForBean(workflow, workflow.getParent()));
-        
-        wf.put("name", workflow.getName());
-        wf.put("revisions", toJson(workflow.getCurrentRevision()));
-
-        ArrayNode processors = mapper.createArrayNode();
-        for (Processor p : workflow.getProcessors()) {
-            processors.add(toJson(p));
-        }
-        addPorts(workflow, wf);
-        wf.put("processors", processors);
-        
-        ArrayNode datalinks = mapper.createArrayNode();
-        for (DataLink link : workflow.getDataLinks()) {
-            datalinks.add(toJson(link));
-        }
-        wf.put("datalinks", datalinks);
-
-        ArrayNode controlLinks = mapper.createArrayNode();
-        for (ControlLink link : workflow.getControlLinks()) {
-            controlLinks.add(toJson(link));
-        }
-        wf.put("controllinks", controlLinks);
-
-        
-        wf.putAll(annotations(workflow));
-        
-        return wf;
-    }
-
-    protected JsonNode toJson(ControlLink link) {
-        ObjectNode l = mapper.createObjectNode();
-        if (link instanceof BlockingControlLink) {
-            BlockingControlLink controlLink = (BlockingControlLink) link;
-            l.putPOJO("block", uriTools.relativeUriForBean(controlLink.getBlock(), 
-                    link.getParent().getParent()));
-            l.putPOJO("untilFinished", uriTools.relativeUriForBean(controlLink.getUntilFinished(), 
-                    link.getParent().getParent()));
-        }
-        return l;
-    }
-
-    protected JsonNode toJson(DataLink link) {
-        ObjectNode l = mapper.createObjectNode();
-        l.putPOJO("receivesFrom", uriTools.relativeUriForBean(link.getReceivesFrom(), 
-                link.getParent().getParent()));
-        l.putPOJO("sendsTo", uriTools.relativeUriForBean(link.getSendsTo(), 
-                link.getParent().getParent()));
-        if (link.getMergePosition() != null) {
-            l.put("mergePosition", link.getMergePosition());
-        }
-        return l;
-    }
-
-    public ObjectNode toJson(WorkflowBundle wfBundle) {
-        
-        ObjectNode root = mapper.createObjectNode();
-        ArrayNode contextList = root.arrayNode();
-        root.put("@context", contextList);
-        ObjectNode context = root.objectNode();
-        contextList.add("https://w3id.org/scufl2/context");
-        contextList.add(context);
-        URI base = wfBundle.getGlobalBaseURI();
-        context.put("@base", base.toASCIIString());
-        root.put("id", base.toASCIIString());
-       
-//        root.put("name", wfBundle.getName());
-//        root.put("revisions", toJson(wfBundle.getCurrentRevision()));
-        
-        root.put("workflow", toJson(wfBundle.getMainWorkflow()));
-        root.put("profile", toJson(wfBundle.getMainProfile()));
-        
-        return root;
-    }
-
-    private JsonNode toJson(Profile profile) {
-        ObjectNode pf = mapper.createObjectNode();
-
-        pf.putPOJO("id", uriTools.relativeUriForBean(profile, profile.getParent()));
-        // TODO: Activities and configurations
-        return pf;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ProcessorNames.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ProcessorNames.java b/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ProcessorNames.java
deleted file mode 100644
index 0a57af5..0000000
--- a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ProcessorNames.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeModel;
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-public class ProcessorNames {
-
-	public static void main(String[] args) throws JAXBException, IOException,
-			ReaderException {
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		ProcessorNames processorNames = new ProcessorNames();
-		for (String filename : args) {
-			// NOTE: We give 'null' as filetype so it will guess based on filename
-			WorkflowBundle ro = io.readBundle(new File(filename), null);
-//			System.out.print(filename + ": ");
-//			System.out.println(processorNames.showProcessorNames(ro));
-			System.out.println(processorNames.showProcessorTree(ro));
-		}
-	}
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	private URITools uriTools = new URITools();
-
-	private Workflow findNestedWorkflow(Processor processor) {
-		Profile profile = processor.getParent().getParent().getMainProfile();
-		return scufl2Tools.nestedWorkflowForProcessor(processor, profile);
-	}
-
-	private void findProcessors(WorkflowBundle ro, Workflow workflow,
-			DefaultMutableTreeNode parent) {
-		for (Processor processor : workflow.getProcessors()) {
-			DefaultMutableTreeNode processorNode = new DefaultMutableTreeNode(
-					processor.getName());
-			parent.add(processorNode);
-			Workflow wf = findNestedWorkflow(processor);
-			if (wf != null) {
-				findProcessors(ro, wf, processorNode);
-			}
-		}
-
-	}
-
-	public TreeModel makeProcessorTree(WorkflowBundle workflowBundle)
-			throws JAXBException, IOException {
-		Workflow workflow = workflowBundle.getMainWorkflow();
-		TreeModel treeModel = new DefaultTreeModel(new DefaultMutableTreeNode(
-				workflow.getName()));
-		DefaultMutableTreeNode parent = (DefaultMutableTreeNode) treeModel
-				.getRoot();
-
-		findProcessors(workflowBundle, workflow, parent);
-		return treeModel;
-	}
-
-	public List<String> showProcessorNames(WorkflowBundle ro)
-			throws JAXBException, IOException {
-		ArrayList<String> names = new ArrayList<String>();
-		for (Processor processor : ro.getMainWorkflow().getProcessors()) {
-			names.add(processor.getName());
-		}
-		Collections.sort(names);
-		return names;
-	}
-
-	public String showProcessorTree(WorkflowBundle ro) throws JAXBException,
-			IOException {
-		TreeModel treeModel = makeProcessorTree(ro);
-		return treeModelAsString(treeModel);
-	}
-
-	public String treeModelAsString(TreeModel treeModel) {
-		StringBuffer sb = new StringBuffer();
-		Object root = treeModel.getRoot();
-		treeModelAsString(treeModel, root, sb, "");
-		return sb.toString();
-	}
-
-	protected void treeModelAsString(TreeModel treeModel, Object parent,
-			StringBuffer sb, String indentation) {
-		sb.append(indentation);
-		int childCount = treeModel.getChildCount(parent);
-		if (childCount == 0) {
-			sb.append("- ");
-		} else {
-			sb.append("+ ");
-			indentation = indentation + "  ";
-		}
-		sb.append(parent);
-		sb.append("\n");
-		for (int i = 0; i < childCount; i++) {
-			Object child = treeModel.getChild(parent, i);
-			treeModelAsString(treeModel, child, sb, indentation);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/Scufl2Tool.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/Scufl2Tool.java b/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/Scufl2Tool.java
deleted file mode 100644
index 1f2a842..0000000
--- a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/Scufl2Tool.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * A wrapper around the other example main() methods
- * 
- * This in order to make a single executable JAR file.
- * 
- * @author Stian Soiland-Reyes
- *
- */
-public class Scufl2Tool {
-    
-    public enum Tool {
-        t2flowtowfbundle(ConvertT2flowToWorkflowBundle.class, "Convert t2flow workflows to wfbundle"),
-        jsonexport(JsonExport.class, "Export JSON structure of workflow"),
-        processornames(ProcessorNames.class, "List tree of processor names in workflow"),
-        servicetypes(ServiceTypes.class, "List service types used in workflow"),
-        workflowmaker(WorkflowMaker.class, "Create an example workflow programmatically");
-        
-        private final String description;
-        private final Class<?> mainClass;
-
-        Tool(Class<?> mainClass, String description) {
-            this.mainClass = mainClass;
-            this.description = description;
-        }
-
-        @Override
-        public String toString() {
-            return name() + " - " + description;
-        }
-
-        public Class<?> getMainClass() {
-            return mainClass;
-        }
-    }
-    
-    public static void main(String[] args) throws IllegalAccessException,
-            IllegalArgumentException, InvocationTargetException,
-            NoSuchMethodException, SecurityException {
-        List<String> argsList = Arrays.asList(args);
-        if (argsList.isEmpty() || argsList.get(0).equals("-h")) {
-            help();
-            return;
-        }
-        Tool tool;
-        try {
-            tool = Tool.valueOf(argsList.get(0).toLowerCase());
-        } catch (IllegalArgumentException e) {
-            System.err.println("Invalid tool: " + argsList.get(0));
-            help();
-            return;
-        }
-        
-        // Find and invoke the main method
-        Class<?> mainCls = tool.getMainClass();
-        Method main = mainCls.getMethod("main", String[].class);
-        // But stripping out the first argument
-        args = argsList.subList(1, argsList.size()).toArray(new String[0]);
-        // Array of arrays!
-        Object[] mainArgs = new Object[]{args};
-        main.invoke(null, mainArgs);
-    }
-
-    public static void help() {
-        System.out.println("SCUFL2 workflow tool");
-        System.out.println("Usage: scufl2tool <tool> [option] ...");
-        System.out.println();
-        System.out.println("Available tools:");
-        for (Tool tool : Tool.values()) {
-            System.out.println(tool);
-        }
-        
-    }
-}
-;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ServiceTypes.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ServiceTypes.java b/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ServiceTypes.java
deleted file mode 100644
index 2dcf4fb..0000000
--- a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/ServiceTypes.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-public class ServiceTypes {
-	public static void main(String[] args) throws Exception, ReaderException,
-			WriterException {
-		for (String type :  new ServiceTypes().serviceTypes(args)) {
-			System.out.println(type);
-		}
-	}
-
-	public Set<String> serviceTypes(String[] filepaths) throws ReaderException, IOException, WriterException {
-		
-		Set<String> types = new LinkedHashSet<String>();
-		
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		for (String filepath : filepaths) {
-			File file = new File(filepath);
-			// mediaType = null  --> guess
-			WorkflowBundle wfBundle = io.readBundle(file, null);
-			
-			for (Profile profile : wfBundle.getProfiles()) {
-				for (Activity activity : profile.getActivities()) {
-					types.add(activity.getType().toASCIIString());
-				}
-			}			
-		}
-		return types;
-	}
-
-}


[42/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/dcam.owl
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/dcam.owl b/taverna-robundle/src/main/resources/ontologies/dcam.owl
deleted file mode 100644
index a96ea8d..0000000
--- a/taverna-robundle/src/main/resources/ontologies/dcam.owl
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:base="http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcam.ttl">
-    <!--
-  <owl:Ontology rdf:about="http://purl.org/NET/dc_owl2dl/dcam">
-  -->
-  <owl:Ontology rdf:about="http://purl.org/wf4ever/dcam">
-    <owl:imports rdf:resource="http://www.w3.org/TR/skos-reference/skos-owl1-dl.rdf"/>
-    <rdfs:label xml:lang="en">DCMI Abstract Model</rdfs:label>
-    <rdfs:comment xml:lang="en">OWL 2 DL ontology for a few terms of the DCMI abstract model from the http://purl.org/dc/dcam/ namespace</rdfs:comment>
-  </owl:Ontology>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/dcam/memberOf">
-    <skos:definition xml:lang="en-US">A relationship between a resource and a vocabulary encoding scheme which indicates that the resource is a member of a set.</skos:definition>
-    <rdfs:label xml:lang="en-US">Member Of</rdfs:label>
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/2007/06/04/abstract-model/"/>
-    <rdfs:range rdf:resource="http://purl.org/dc/dcam/VocabularyEncodingScheme"/>
-  </owl:ObjectProperty>
-  <owl:Class rdf:about="http://purl.org/dc/dcam/VocabularyEncodingScheme">
-    <skos:definition xml:lang="en-US">An enumerated set of resources.</skos:definition>
-    <rdfs:label xml:lang="en-US">Vocabulary Encoding Scheme</rdfs:label>
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/2007/06/04/abstract-model/"/>
-  </owl:Class>
-</rdf:RDF>
-<!--
-Made by Triplr http://triplr.org by Dave Beckett, http://purl.org/net/dajobe/
-from http://bloody-byte.net/rdf/dc_owl2dl/dcam.ttl in format turtle to rdfxml-abbrev
-using Redland 1.0.7 and Raptor 1.4.18 from http://librdf.org/
-This document is http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcam.ttl
--->

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl b/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
deleted file mode 100644
index 58a07c5..0000000
--- a/taverna-robundle/src/main/resources/ontologies/dcterms_od.owl
+++ /dev/null
@@ -1,587 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xml:base="http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcterms_od.ttl">
-    <!--<owl:Ontology rdf:about="http://purl.org/NET/dc_owl2dl/terms_od">
-        <owl:imports rdf:resource="http://purl.org/NET/dc_owl2dl/dcam"/> -->
-<owl:Ontology rdf:about="http://purl.org/wf4ever/dcterms_od">
-    
-    <!-- <owl:imports rdf:resource="http://purl.org/wf4ever/dcam"/> -->
-    <rdfs:label xml:lang="en">DCMI metadata terms</rdfs:label>
-    <rdfs:comment xml:lang="en">OWL 2 DL ontology for Dublin Core metadata terms from the http://purl.org/dc/terms/ namespace; this version uses object and datatype properties instead of annotation properties where possible. Note that, because of this, when using this ontology you are restricted to using literals and non-literals in certain cases and especially you cannot use DCMI's DCSV.</rdfs:comment>
-  </owl:Ontology>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/abstract">
-    <skos:definition xml:lang="en-US">A summary of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/description"/>
-    <rdfs:label xml:lang="en-US">Abstract</rdfs:label>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accessRights">
-    <skos:definition xml:lang="en-US">Information about who can access the resource or an indication of its security status.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/rights"/>
-    <rdfs:label xml:lang="en-US">Access Rights</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/RightsStatement"/>
-    <rdfs:comment xml:lang="en-US">Access Rights may include information regarding access or restrictions based on privacy, security, or other policies.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accrualMethod">
-    <skos:definition xml:lang="en-US">The method by which items are added to a collection.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/Collection"/>
-    <rdfs:label xml:lang="en-US">Accrual Method</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/MethodOfAccrual"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accrualPeriodicity">
-    <skos:definition xml:lang="en-US">The frequency with which items are added to a collection.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/Collection"/>
-    <rdfs:label xml:lang="en-US">Accrual Periodicity</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Frequency"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/accrualPolicy">
-    <skos:definition xml:lang="en-US">The policy governing the addition of items to a collection.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/Collection"/>
-    <rdfs:label xml:lang="en-US">Accrual Policy</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Policy"/>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/alternative">
-    <skos:definition xml:lang="en-US">An alternative name for the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/title"/>
-    <rdfs:label xml:lang="en-US">Alternative Title</rdfs:label>
-    <skos:note xml:lang="en-US">In current practice, this term is used primarily with literal values; however, there are important uses with non-literal values as well. As of December 2007, the DCMI Usage Board is leaving this range unspecified pending an investigation of options.</skos:note>
-    <rdfs:comment xml:lang="en-US">The distinction between titles and alternative titles is application-specific.</rdfs:comment>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/audience">
-    <skos:definition xml:lang="en-US">A class of entity for whom the resource is intended or useful.</skos:definition>
-    <rdfs:label xml:lang="en-US">Audience</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/available">
-    <skos:definition xml:lang="en-US">Date (often a range) that the resource became or will become available.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Available</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/bibliographicCitation">
-    <skos:definition xml:lang="en-US">A bibliographic reference for the resource.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/BibliographicResource"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/identifier"/>
-    <rdfs:label xml:lang="en-US">Bibliographic Citation</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Recommended practice is to include sufficient bibliographic detail to identify the resource as unambiguously as possible.</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/conformsTo">
-    <skos:definition xml:lang="en-US">An established standard to which the described resource conforms.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Conforms To</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Standard"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/contributor">
-    <skos:definition xml:lang="en-US">An entity responsible for making contributions to the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Contributor</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-    <rdfs:comment xml:lang="en-US">Examples of a Contributor include a person, an organization, or a service. Typically, the name of a Contributor should be used to indicate the entity.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/coverage">
-    <skos:definition xml:lang="en-US">The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant.</skos:definition>
-    <dcterms:bibliographicCitation>[TGN] http://www.getty.edu/research/tools/vocabulary/tgn/index.html</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.getty.edu/research/tools/vocabulary/tgn/index.html"/>
-    <rdfs:label xml:lang="en-US">Coverage</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-    <rdfs:comment xml:lang="en-US">Spatial topic and spatial applicability may be a named place or a location specified by its geographic coordinates. Temporal topic may be a named period, date, or date range. A jurisdiction may be a named administrative entity or a geographic place to which the resource applies. Recommended best practice is to use a controlled vocabulary such as the Thesaurus of Geographic Names [TGN]. Where appropriate, named places or time periods can be used in preference to numeric identifiers such as sets of coordinates or date ranges.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/created">
-    <skos:definition xml:lang="en-US">Date of creation of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Created</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">An entity primarily responsible for making the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/contributor"/>
-    <rdfs:label xml:lang="en-US">Creator</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-    <rdfs:comment xml:lang="en-US">Examples of a Creator include a person, an organization, or a service. Typically, the name of a Creator should be used to indicate the entity.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/date">
-    <skos:definition xml:lang="en-US">A point or period of time associated with an event in the lifecycle of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[W3CDTF] http://www.w3.org/TR/NOTE-datetime</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.w3.org/TR/NOTE-datetime"/>
-    <rdfs:label xml:lang="en-US">Date</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Date may be used to express temporal information at any level of granularity. Recommended best practice is to use an encoding scheme, such as the W3CDTF profile of ISO 8601 [W3CDTF].</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/dateAccepted">
-    <skos:definition xml:lang="en-US">Date of acceptance of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Accepted</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Examples of resources to which a Date Accepted may be relevant are a thesis (accepted by a university department) or an article (accepted by a journal).</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/dateCopyrighted">
-    <skos:definition xml:lang="en-US">Date of copyright.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Copyrighted</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/dateSubmitted">
-    <skos:definition xml:lang="en-US">Date of submission of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Submitted</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Examples of resources to which a Date Submitted may be relevant are a thesis (submitted to a university department) or an article (submitted to a journal).</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/description">
-    <skos:definition xml:lang="en-US">An account of the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Description</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource.</rdfs:comment>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/educationLevel">
-    <skos:definition xml:lang="en-US">A class of entity, defined in terms of progression through an educational or training context, for which the described resource is intended.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/audience"/>
-    <rdfs:label xml:lang="en-US">Audience Education Level</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/extent">
-    <skos:definition xml:lang="en-US">The size or duration of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/format"/>
-    <rdfs:label xml:lang="en-US">Extent</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/SizeOrDuration"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/format">
-    <skos:definition xml:lang="en-US">The file format, physical medium, or dimensions of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[MIME] http://www.iana.org/assignments/media-types/</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.iana.org/assignments/media-types/"/>
-    <rdfs:label xml:lang="en-US">Format</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/MediaTypeOrExtent"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-    <rdfs:comment xml:lang="en-US">Examples of dimensions include size and duration. Recommended best practice is to use a controlled vocabulary such as the list of Internet Media Types [MIME].</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/hasFormat">
-    <skos:definition xml:lang="en-US">A related resource that is substantially the same as the pre-existing described resource, but in another format.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Has Format</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/hasPart">
-    <skos:definition xml:lang="en-US">A related resource that is included either physically or logically in the described resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Has Part</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/hasVersion">
-    <skos:definition xml:lang="en-US">A related resource that is a version, edition, or adaptation of the described resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Has Version</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/identifier">
-    <skos:definition xml:lang="en-US">An unambiguous reference to the resource within a given context.</skos:definition>
-    <rdfs:label xml:lang="en-US">Identifier</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to identify the resource by means of a string conforming to a formal identification system.</rdfs:comment>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/instructionalMethod">
-    <skos:definition xml:lang="en-US">A process, used to engender knowledge, attitudes and skills, that the described resource is designed to support.</skos:definition>
-    <rdfs:label xml:lang="en-US">Instructional Method</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/MethodOfInstruction"/>
-    <rdfs:comment xml:lang="en-US">Instructional Method will typically include ways of presenting instructional materials or conducting instructional activities, patterns of learner-to-learner and learner-to-instructor interactions, and mechanisms by which group and individual levels of learning are measured. Instructional methods include all aspects of the instruction and learning processes from planning and implementation through evaluation and feedback.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isFormatOf">
-    <skos:definition xml:lang="en-US">A related resource that is substantially the same as the described resource, but in another format.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/hasFormat"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Format Of</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isPartOf">
-    <skos:definition xml:lang="en-US">A related resource in which the described resource is physically or logically included.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/hasPart"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Part Of</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isReferencedBy">
-    <skos:definition xml:lang="en-US">A related resource that references, cites, or otherwise points to the described resource.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/creator"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Referenced By</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isReplacedBy">
-    <skos:definition xml:lang="en-US">A related resource that supplants, displaces, or supersedes the described resource.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/replaces"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Replaced By</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">Is Required By</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">A related resource that requires the described resource to support its function, delivery, or coherence.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/requires"/>
-  </rdf:Description>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/issued">
-    <skos:definition xml:lang="en-US">Date of formal issuance (e.g., publication) of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Issued</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/isVersionOf">
-    <skos:definition xml:lang="en-US">A related resource of which the described resource is a version, edition, or adaptation.</skos:definition>
-    <owl:inverseOf rdf:resource="http://purl.org/dc/terms/hasVersion"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Is Version Of</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Changes in version imply substantive changes in content rather than differences in format.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/language">
-    <skos:definition xml:lang="en-US">A language of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[RFC4646] http://www.ietf.org/rfc/rfc4646.txt</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://www.ietf.org/rfc/rfc4646.txt"/>
-    <rdfs:label xml:lang="en-US">Language</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/LinguisticSystem"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. as a language code or tag) but only as a non-literal value.</skos:note>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to use a controlled vocabulary such as RFC 4646 [RFC4646].</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/license">
-    <skos:definition xml:lang="en-US">A legal document giving official permission to do something with the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/rights"/>
-    <rdfs:label xml:lang="en-US">License</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/LicenseDocument"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/mediator">
-    <skos:definition xml:lang="en-US">An entity that mediates access to the resource and for whom the resource is intended or useful.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/audience"/>
-    <rdfs:label xml:lang="en-US">Mediator</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-    <rdfs:comment xml:lang="en-US">In an educational context, a mediator might be a parent, teacher, teaching assistant, or care-giver.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/medium">
-    <skos:definition xml:lang="en-US">The material or physical carrier of the resource.</skos:definition>
-    <rdfs:domain rdf:resource="http://purl.org/dc/terms/PhysicalResource"/>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/format"/>
-    <rdfs:label xml:lang="en-US">Medium</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/PhysicalMedium"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal but only as a related description.</skos:note>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/modified">
-    <skos:definition xml:lang="en-US">Date on which the resource was changed.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Modified</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/provenance">
-    <skos:definition xml:lang="en-US">A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation.</skos:definition>
-    <rdfs:label xml:lang="en-US">Provenance</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/>
-    <rdfs:comment xml:lang="en-US">The statement may include a description of any changes successive custodians made to the resource.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/publisher">
-    <skos:definition xml:lang="en-US">An entity responsible for making the resource available.</skos:definition>
-    <rdfs:label xml:lang="en-US">Publisher</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-    <rdfs:comment xml:lang="en-US">Examples of a Publisher include a person, an organization, or a service. Typically, the name of a Publisher should be used to indicate the entity.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">References</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">A related resource that is referenced, cited, or otherwise pointed to by the described resource.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-  </rdf:Description>
-  <owl:SymmetricProperty rdf:about="http://purl.org/dc/terms/relation">
-    <skos:definition xml:lang="en-US">A related resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Relation</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system.</rdfs:comment>
-  </owl:SymmetricProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/replaces">
-    <skos:definition xml:lang="en-US">A related resource that is supplanted, displaced, or superseded by the described resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Replaces</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/requires">
-    <skos:definition xml:lang="en-US">A related resource that is required by the described resource to support its function, delivery, or coherence.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Requires</rdfs:label>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/rights">
-    <skos:definition xml:lang="en-US">Information about rights held in and over the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Rights</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/RightsStatement"/>
-    <rdfs:comment xml:lang="en-US">Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/rightsHolder">
-    <skos:definition xml:lang="en-US">A person or organization owning or managing rights over the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Rights Holder</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Agent"/>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/source">
-    <skos:definition xml:lang="en-US">A related resource from which the described resource is derived.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
-    <rdfs:label xml:lang="en-US">Source</rdfs:label>
-    <rdfs:comment xml:lang="en-US">The described resource may be derived from the related resource in whole or in part. Recommended best practice is to identify the related resource by means of a string conforming to a formal identification system.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/spatial">
-    <skos:definition xml:lang="en-US">Spatial characteristics of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/coverage"/>
-    <rdfs:label xml:lang="en-US">Spatial Coverage</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/Location"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-  </owl:ObjectProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/subject">
-    <skos:definition xml:lang="en-US">The topic of the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Subject</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Typically, the subject will be represented using keywords, key phrases, or classification codes. Recommended best practice is to use a controlled vocabulary. To describe the spatial or temporal topic of the resource, use the Coverage element.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/tableOfContents">
-    <skos:definition xml:lang="en-US">A list of subunits of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/description"/>
-    <rdfs:label xml:lang="en-US">Table Of Contents</rdfs:label>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/temporal">
-    <skos:definition xml:lang="en-US">Temporal characteristics of the resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/coverage"/>
-    <rdfs:label xml:lang="en-US">Temporal Coverage</rdfs:label>
-    <rdfs:range rdf:resource="http://purl.org/dc/terms/PeriodOfTime"/>
-    <skos:note xml:lang="en">In this ontology this property has been defined as an object property, meaning when using this ontology you cannot encode its value as a literal (e.g. by using DCMI's DCSV) but only as a related description.</skos:note>
-  </owl:ObjectProperty>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/title">
-    <skos:definition xml:lang="en-US">A name given to the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Title</rdfs:label>
-    <skos:note xml:lang="en-US">In current practice, this term is used primarily with literal values; however, there are important uses with non-literal values as well. As of December 2007, the DCMI Usage Board is leaving this range unspecified pending an investigation of options.</skos:note>
-  </owl:AnnotationProperty>
-  <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/type">
-    <skos:definition xml:lang="en-US">The nature or genre of the resource.</skos:definition>
-    <dcterms:bibliographicCitation>[DCMITYPE] http://dublincore.org/documents/dcmi-type-vocabulary/</dcterms:bibliographicCitation>
-    <rdfs:seeAlso rdf:resource="http://dublincore.org/documents/dcmi-type-vocabulary/"/>
-    <rdfs:label xml:lang="en-US">Type</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:comment xml:lang="en-US">Recommended best practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMITYPE]. To describe the file format, physical medium, or dimensions of the resource, use the Format element.</rdfs:comment>
-  </owl:ObjectProperty>
-  <owl:DatatypeProperty rdf:about="http://purl.org/dc/terms/valid">
-    <skos:definition xml:lang="en-US">Date (often a range) of validity of a resource.</skos:definition>
-    <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/date"/>
-    <rdfs:label xml:lang="en-US">Date Valid</rdfs:label>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </owl:DatatypeProperty>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/DCMIType">
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/dcmi-type-vocabulary/"/>
-    <skos:definition xml:lang="en-US">The set of classes specified by the DCMI Type Vocabulary, used to categorize the nature or genre of the resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Type Vocabulary</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/DDC">
-    <rdfs:isDefinedBy rdf:resource="http://www.oclc.org/dewey/"/>
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the Dewey Decimal Classification.</skos:definition>
-    <rdfs:label xml:lang="en-US">DDC</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/IMT">
-    <rdfs:isDefinedBy rdf:resource="http://www.iana.org/assignments/media-types/"/>
-    <skos:definition xml:lang="en-US">The set of media types specified by the Internet Assigned Numbers Authority.</skos:definition>
-    <rdfs:label xml:lang="en-US">IMT</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/LCC">
-    <rdfs:isDefinedBy rdf:resource="http://lcweb.loc.gov/catdir/cpso/lcco/lcco.html"/>
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the Library of Congress Classification.</skos:definition>
-    <rdfs:label xml:lang="en-US">LCC</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/LCSH">
-    <skos:definition xml:lang="en-US">The set of labeled concepts specified by the Library of Congress Subject Headings.</skos:definition>
-    <rdfs:label xml:lang="en-US">LCSH</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/MESH">
-    <rdfs:isDefinedBy rdf:resource="http://www.nlm.nih.gov/mesh/meshhome.html"/>
-    <skos:definition xml:lang="en-US">The set of labeled concepts specified by the Medical Subject Headings.</skos:definition>
-    <rdfs:label xml:lang="en-US">MeSH</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">NLM</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the National Library of Medicine Classification.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:isDefinedBy rdf:resource="http://wwwcf.nlm.nih.gov/class/"/>
-  </rdf:Description>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/TGN">
-    <rdfs:isDefinedBy rdf:resource="http://www.getty.edu/research/tools/vocabulary/tgn/index.html"/>
-    <skos:definition xml:lang="en-US">The set of places specified by the Getty Thesaurus of Geographic Names.</skos:definition>
-    <rdfs:label xml:lang="en-US">TGN</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <dcam:VocabularyEncodingScheme rdf:about="http://purl.org/dc/terms/UDC">
-    <rdfs:isDefinedBy rdf:resource="http://www.udcc.org/"/>
-    <skos:definition xml:lang="en-US">The set of conceptual resources specified by the Universal Decimal Classification.</skos:definition>
-    <rdfs:label xml:lang="en-US">UDC</rdfs:label>
-  </dcam:VocabularyEncodingScheme>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/Box">
-    <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/creator"/>
-    <skos:definition xml:lang="en-US">The set of regions in space defined by their geographic coordinates according to the DCMI Box Encoding Scheme.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Box</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/ISO3166">
-    <rdfs:isDefinedBy rdf:resource="http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html"/>
-    <skos:definition xml:lang="en-US">The set of codes listed in ISO 3166-1 for the representation of names of countries.</skos:definition>
-    <rdfs:label xml:lang="en-US">ISO 3166</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/ISO639-2">
-    <rdfs:isDefinedBy rdf:resource="http://lcweb.loc.gov/standards/iso639-2/langhome.html"/>
-    <skos:definition xml:lang="en-US">The three-letter alphabetic codes listed in ISO639-2 for the representation of names of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">ISO 639-2</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/ISO639-3">
-    <rdfs:isDefinedBy rdf:resource="http://www.sil.org/iso639-3/"/>
-    <skos:definition xml:lang="en-US">The set of three-letter codes listed in ISO 639-3 for the representation of names of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">ISO 639-3</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/Period">
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/dcmi-period/"/>
-    <skos:definition xml:lang="en-US">The set of time intervals defined by their limits according to the DCMI Period Encoding Scheme.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Period</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/Point">
-    <rdfs:isDefinedBy rdf:resource="http://dublincore.org/documents/dcmi-point/"/>
-    <skos:definition xml:lang="en-US">The set of points in space defined by their geographic coordinates according to the DCMI Point Encoding Scheme.</skos:definition>
-    <rdfs:label xml:lang="en-US">DCMI Point</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/creator"/>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:label xml:lang="en-US">RFC 1766</rdfs:label>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <skos:definition xml:lang="en-US">The set of tags, constructed according to RFC 1766, for the identification of languages.</skos:definition>
-  </rdf:Description>
-  <rdf:Description rdf:about="http://purl.org/dc/terms/creator">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc1766.txt"/>
-  </rdf:Description>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/RFC3066">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc3066.txt"/>
-    <skos:definition xml:lang="en-US">The set of tags constructed according to RFC 3066 for the identification of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">RFC 3066</rdfs:label>
-    <rdfs:comment xml:lang="en-US">RFC 3066 has been obsoleted by RFC 4646.</rdfs:comment>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/RFC4646">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc4646.txt"/>
-    <skos:definition xml:lang="en-US">The set of tags constructed according to RFC 4646 for the identification of languages.</skos:definition>
-    <rdfs:label xml:lang="en-US">RFC 4646</rdfs:label>
-    <rdfs:comment xml:lang="en-US">RFC 4646 obsoletes RFC 3066.</rdfs:comment>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/URI">
-    <rdfs:isDefinedBy rdf:resource="http://www.ietf.org/rfc/rfc3986.txt"/>
-    <skos:definition xml:lang="en-US">The set of identifiers constructed according to the generic syntax for Uniform Resource Identifiers as specified by the Internet Engineering Task Force.</skos:definition>
-    <rdfs:label xml:lang="en-US">URI</rdfs:label>
-  </rdfs:Datatype>
-  <rdfs:Datatype rdf:about="http://purl.org/dc/terms/W3CDTF">
-    <rdfs:isDefinedBy rdf:resource="http://www.w3.org/TR/NOTE-datetime"/>
-    <skos:definition xml:lang="en-US">The set of dates and times constructed according to the W3C Date and Time Formats Specification.</skos:definition>
-    <rdfs:label xml:lang="en-US">W3C-DTF</rdfs:label>
-  </rdfs:Datatype>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Agent">
-    <skos:definition xml:lang="en-US">A resource that acts or has the power to act.</skos:definition>
-    <rdf:type rdf:resource="http://purl.org/dc/terms/AgentClass"/>
-    <rdfs:label xml:lang="en-US">Agent</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples of Agent include person, organization, and software agent.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/AgentClass">
-    <skos:definition xml:lang="en-US">A group of agents.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
-    <rdfs:label xml:lang="en-US">Agent Class</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples of Agent Class include groups seen as classes, such as students, women, charities, lecturers.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/BibliographicResource">
-    <skos:definition xml:lang="en-US">A book, article, or other documentary resource.</skos:definition>
-    <rdfs:label xml:lang="en-US">Bibliographic Resource</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/FileFormat">
-    <skos:definition xml:lang="en-US">A digital resource format.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaType"/>
-    <rdfs:label xml:lang="en-US">File Format</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include the formats defined by the list of Internet Media Types.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Frequency">
-    <skos:definition xml:lang="en-US">A rate at which something recurs.</skos:definition>
-    <rdfs:label xml:lang="en-US">Frequency</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Jurisdiction">
-    <skos:definition xml:lang="en-US">The extent or range of judicial, law enforcement, or other authority.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <rdfs:label xml:lang="en-US">Jurisdiction</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/LicenseDocument">
-    <skos:definition xml:lang="en-US">A legal document giving official permission to do something with a Resource.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/RightsStatement"/>
-    <rdfs:label xml:lang="en-US">License Document</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/LinguisticSystem">
-    <skos:definition xml:lang="en-US">A system of signs, symbols, sounds, gestures, or rules used in communication.</skos:definition>
-    <rdfs:label xml:lang="en-US">Linguistic System</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include written, spoken, sign, and computer languages.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Location">
-    <skos:definition xml:lang="en-US">A spatial region or named place.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <rdfs:label xml:lang="en-US">Location</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/LocationPeriodOrJurisdiction">
-    <skos:definition xml:lang="en-US">A location, period of time, or jurisdiction.</skos:definition>
-    <rdfs:label xml:lang="en-US">Location, Period, or Jurisdiction</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MediaType">
-    <skos:definition xml:lang="en-US">A file format or physical medium.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaTypeOrExtent"/>
-    <rdfs:label xml:lang="en-US">Media Type</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MediaTypeOrExtent">
-    <skos:definition xml:lang="en-US">A media type or extent.</skos:definition>
-    <rdfs:label xml:lang="en-US">Media Type or Extent</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MethodOfAccrual">
-    <skos:definition xml:lang="en-US">A method by which resources are added to a collection.</skos:definition>
-    <rdfs:label xml:lang="en-US">Method of Accrual</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/MethodOfInstruction">
-    <skos:definition xml:lang="en-US">A process that is used to engender knowledge, attitudes, and skills.</skos:definition>
-    <rdfs:label xml:lang="en-US">Method of Instruction</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/PeriodOfTime">
-    <skos:definition xml:lang="en-US">An interval of time that is named or defined by its start and end dates.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/LocationPeriodOrJurisdiction"/>
-    <rdfs:label xml:lang="en-US">Period of Time</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/PhysicalMedium">
-    <skos:definition xml:lang="en-US">A physical material or carrier.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaType"/>
-    <rdfs:label xml:lang="en-US">Physical Medium</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include paper, canvas, or DVD.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/PhysicalResource">
-    <skos:definition xml:lang="en-US">A material thing.</skos:definition>
-    <rdfs:label xml:lang="en-US">Physical Resource</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Policy">
-    <skos:definition xml:lang="en-US">A plan or course of action by an authority, intended to influence and determine decisions, actions, and other matters.</skos:definition>
-    <rdfs:label xml:lang="en-US">Policy</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/ProvenanceStatement">
-    <skos:definition xml:lang="en-US">A statement of any changes in ownership and custody of a resource since its creation that are significant for its authenticity, integrity, and interpretation.</skos:definition>
-    <rdfs:label xml:lang="en-US">Provenance Statement</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/RightsStatement">
-    <skos:definition xml:lang="en-US">A statement about the intellectual property rights (IPR) held in or over a Resource, a legal document giving official permission to do something with a resource, or a statement about access rights.</skos:definition>
-    <rdfs:label xml:lang="en-US">Rights Statement</rdfs:label>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/SizeOrDuration">
-    <skos:definition xml:lang="en-US">A dimension or extent, or a time taken to play or execute.</skos:definition>
-    <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/MediaTypeOrExtent"/>
-    <rdfs:label xml:lang="en-US">Size or Duration</rdfs:label>
-    <rdfs:comment xml:lang="en-US">Examples include a number of pages, a specification of length, width, and breadth, or a period in hours, minutes, and seconds.</rdfs:comment>
-  </owl:Class>
-  <owl:Class rdf:about="http://purl.org/dc/terms/Standard">
-    <skos:definition xml:lang="en-US">A basis for comparison; a reference point against which other things can be evaluated.</skos:definition>
-    <rdfs:label xml:lang="en-US">Standard</rdfs:label>
-  </owl:Class>
-</rdf:RDF>
-<!--
-Made by Triplr http://triplr.org by Dave Beckett, http://purl.org/net/dajobe/
-from http://bloody-byte.net/rdf/dc_owl2dl/dcterms_od.ttl in format turtle to rdfxml-abbrev
-using Redland 1.0.7 and Raptor 1.4.18 from http://librdf.org/
-This document is http://triplr.org/rdf/bloody-byte.net/rdf/dc_owl2dl/dcterms_od.ttl
--->


[18/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/scufl2.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/scufl2.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/scufl2.xsd
deleted file mode 100644
index c21072a..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/scufl2.xsd
+++ /dev/null
@@ -1,570 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"
-	elementFormDefault="qualified" targetNamespace="http://ns.taverna.org.uk/2010/scufl2#"
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-	xmlns:scufl2="http://ns.taverna.org.uk/2010/scufl2#"
-	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	jxb:version="1.0">
-
-	<xs:annotation>
-		<xs:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-			<jxb:globalBindings />
-			<jxb:schemaBindings>
-				<jxb:package name="org.apache.taverna.scufl2.rdfxml.jaxb" />
-			</jxb:schemaBindings>
-		</xs:appinfo>
-	</xs:annotation>
-<!-- 
-	<xs:import namespace="http://purl.org/dc/elements/1.1/"
-		schemaLocation="http://dublincore.org/schemas/xmls/qdc/dc.xsd" />
-
-	<xs:import namespace="http://purl.org/dc/terms/"
-		schemaLocation="http://dublincore.org/schemas/xmls/qdc/dcterms.xsd" />
-
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
-		schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
-	<xs:import namespace="http://www.w3.org/2002/07/owl#"
-		schemaLocation="owl.xsd" />		
- -->
-
-	<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-		schemaLocation="rdf.xsd" />
-	<xs:import namespace="http://www.w3.org/2000/01/rdf-schema#"
-		schemaLocation="rdfs.xsd" />
-	
-
-
-	<xs:complexType name="WorkflowBundleDocument">
-		<xs:complexContent>
-			<xs:restriction base="rdf:RDF">
-				<xs:sequence>
-					<xs:element ref="scufl2:WorkflowBundle"></xs:element>
-				</xs:sequence>
-			</xs:restriction>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="WorkflowDocument">
-		<xs:complexContent>
-			<xs:restriction base="rdf:RDF">
-				<xs:sequence>
-					<xs:element ref="scufl2:Workflow"></xs:element>
-				</xs:sequence>
-			</xs:restriction>
-		</xs:complexContent>
-	</xs:complexType>
-
-
-	<xs:complexType name="ProfileDocument">
-		<xs:complexContent>
-			<xs:restriction base="rdf:RDF">
-				<xs:sequence>
-					<xs:element ref="scufl2:Profile" />
-					<xs:element ref="scufl2:Activity" minOccurs="0"
-						maxOccurs="unbounded" />
-					<xs:element ref="scufl2:ProcessorBinding" minOccurs="0"
-						maxOccurs="unbounded" />
-					<xs:element ref="scufl2:Configuration" minOccurs="0"
-						maxOccurs="unbounded" />
-
-					<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-						processContents="lax" />
-				</xs:sequence>
-			</xs:restriction>
-		</xs:complexContent>
-	</xs:complexType>
-
-
-	<xs:element name="WorkflowBundle">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" minOccurs="0" />
-				<xs:element name="globalBaseURI" type="rdf:Resource"
-					minOccurs="0" />
-				<xs:element name="mainWorkflow" type="rdf:Resource"
-					minOccurs="0" />
-				<xs:element name="workflow" maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="Workflow" type="scufl2:SeeAlsoType" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="mainProfile" type="rdf:Resource"
-					minOccurs="0" />
-				<xs:element name="profile" maxOccurs="unbounded"
-					minOccurs="0">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="Profile" type="scufl2:SeeAlsoType" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element ref="rdfs:seeAlso" minOccurs="0" maxOccurs="unbounded" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:element name="Configuration">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="rdf:type" />
-                <xs:element ref="rdfs:seeAlso" minOccurs="0" />
-				<xs:element ref="scufl2:name" minOccurs="0" />
-				<xs:element name="configure" type="rdf:Resource" />
-				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
-					processContents="lax" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="Activity">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="rdf:type" />
-				<xs:element ref="scufl2:name" minOccurs="0" />
-				<xs:element name="inputActivityPort" minOccurs="0"
-					maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:InputActivityPort" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="outputActivityPort" minOccurs="0"
-					maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:OutputActivityPort" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-
-		</xs:complexType>
-	</xs:element>
-
-	<xs:complexType name="SeeAlsoType">
-		<xs:sequence>
-			<xs:element ref="rdfs:seeAlso" />
-		</xs:sequence>
-		<xs:attributeGroup ref="rdf:about" />
-	</xs:complexType>
-
-
-
-	<xs:element name="Profile">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-				<xs:element name="processorBinding" type="rdf:Resource"
-					minOccurs="0" maxOccurs="unbounded" />
-				<xs:element name="activateConfiguration" type="rdf:Resource"
-					minOccurs="0" maxOccurs="unbounded" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="ProcessorBinding">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" minOccurs="0" />
-				<xs:element name="bindActivity" type="rdf:Resource" />
-				<xs:element name="bindProcessor" type="rdf:Resource" />
-				<xs:element name="activityPosition" minOccurs="0">
-					<xs:complexType>
-						<xs:simpleContent>
-							<xs:extension base="xs:int">
-								<xs:attribute ref="rdf:datatype" use="required"
-									fixed="http://www.w3.org/2001/XMLSchema#integer" />
-							</xs:extension>
-						</xs:simpleContent>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="inputPortBinding" minOccurs="0"
-					maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="InputPortBinding" type="scufl2:InputPortBinding" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="outputPortBinding" minOccurs="0"
-					maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element name="OutputPortBinding" type="scufl2:OutputPortBinding" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:complexType name="InputPortBinding">
-		<xs:sequence>
-			<xs:element name="bindInputActivityPort" type="rdf:Resource" />
-			<xs:element name="bindInputProcessorPort" type="rdf:Resource" />
-		</xs:sequence>
-		<xs:attributeGroup ref="rdf:about" />
-	</xs:complexType>
-	<xs:complexType name="OutputPortBinding">
-		<xs:sequence>
-			<xs:element name="bindOutputActivityPort" type="rdf:Resource" />
-			<xs:element name="bindOutputProcessorPort" type="rdf:Resource" />
-		</xs:sequence>
-		<xs:attributeGroup ref="rdf:about" />
-	</xs:complexType>
-
-
-	<xs:element name="InputActivityPort">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-				<xs:element ref="scufl2:portDepth" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="OutputActivityPort">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-				<xs:element ref="scufl2:portDepth" />
-				<xs:element ref="scufl2:granularPortDepth" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="Workflow">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:sequence>
-					<xs:element ref="scufl2:name" />
-					<xs:element name="workflowIdentifier" type="rdf:Resource" />
-					<xs:element name="inputWorkflowPort" maxOccurs="unbounded"
-						minOccurs="0">
-						<xs:complexType>
-							<xs:sequence>
-								<xs:element ref="scufl2:InputWorkflowPort" />
-							</xs:sequence>
-						</xs:complexType>
-					</xs:element>
-					<xs:element name="outputWorkflowPort" minOccurs="0"
-						maxOccurs="unbounded">
-						<xs:complexType>
-							<xs:sequence>
-								<xs:element ref="scufl2:OutputWorkflowPort" />
-							</xs:sequence>
-						</xs:complexType>
-					</xs:element>
-					<xs:element name="processor" minOccurs="0" maxOccurs="unbounded">
-						<xs:complexType>
-							<xs:sequence>
-								<xs:element ref="scufl2:Processor" />
-							</xs:sequence>
-						</xs:complexType>
-					</xs:element>
-					<xs:element ref="scufl2:datalink" minOccurs="0"
-						maxOccurs="unbounded" />
-					<xs:element ref="scufl2:control" minOccurs="0"
-						maxOccurs="unbounded" />
-				</xs:sequence>
-				<xs:element ref="rdfs:seeAlso" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="InputWorkflowPort">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-				<xs:element ref="scufl2:portDepth" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="OutputWorkflowPort">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="Processor">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-				<xs:element name="inputProcessorPort" minOccurs="0"
-					maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:InputProcessorPort" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="outputProcessorPort" minOccurs="0"
-					maxOccurs="unbounded">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:OutputProcessorPort" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="dispatchStack" minOccurs="0">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:DispatchStack" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-				<xs:element name="iterationStrategyStack" minOccurs="0">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:IterationStrategyStack" />
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="InputProcessorPort">
-		<xs:complexType>
-			<xs:sequence minOccurs="0">
-				<xs:element ref="scufl2:name" />
-				<xs:element ref="scufl2:portDepth" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="OutputProcessorPort">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:name" />
-				<xs:element ref="scufl2:portDepth" />
-				<xs:element ref="scufl2:granularPortDepth" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:element name="DispatchStack">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="rdf:type" minOccurs="0" />
-				<xs:element name="dispatchStackLayers" minOccurs="0">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:element ref="scufl2:DispatchStackLayer" minOccurs="0"
-								maxOccurs="unbounded" />
-						</xs:sequence>
-						<xs:attribute ref="rdf:parseType" use="required"
-							fixed="Collection" />
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="DispatchStackLayer">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="rdf:type" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:element name="IterationStrategyStack">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="iterationStrategies">
-					<xs:complexType>
-						<xs:sequence>
-							<xs:choice minOccurs="1" maxOccurs="unbounded">
-								<xs:element ref="scufl2:DotProduct" />
-								<xs:element ref="scufl2:CrossProduct" />
-							</xs:choice>
-						</xs:sequence>
-						<xs:attribute ref="rdf:parseType" use="required"
-							fixed="Collection" />
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-
-
-	<xs:element name="CrossProduct">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:productOf" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="DotProduct">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element ref="scufl2:productOf" />
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="PortNode">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="iterateOverInputPort" type="rdf:Resource" />
-				<xs:element name="desiredDepth" minOccurs="0">
-					<xs:complexType>
-						<xs:simpleContent>
-							<xs:extension base="xs:int">
-								<xs:attribute ref="rdf:datatype" use="required"
-									fixed="http://www.w3.org/2001/XMLSchema#integer" />
-							</xs:extension>
-						</xs:simpleContent>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attributeGroup ref="rdf:about" />
-		</xs:complexType>
-	</xs:element>
-
-
-	<xs:element name="productOf">
-		<xs:complexType>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element ref="scufl2:CrossProduct" />
-				<xs:element ref="scufl2:DotProduct" />
-				<xs:element ref="scufl2:PortNode" />
-			</xs:choice>
-			<xs:attribute ref="rdf:parseType" use="required" fixed="Collection" />
-
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="datalink">
-		<xs:complexType>
-			<xs:annotation>
-				<xs:appinfo>
-					<jxb:class name="DataLinkEntry">
-					</jxb:class>
-				</xs:appinfo>
-			</xs:annotation>
-			<xs:sequence>
-				<xs:element name="DataLink" type="scufl2:DataLink" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:complexType name="DataLink">
-		<xs:sequence>
-			<xs:element name="receiveFrom" type="rdf:Resource" />
-			<xs:element name="sendTo" type="rdf:Resource" />
-			<xs:element name="mergePosition" minOccurs="0">
-				<xs:complexType>
-					<xs:simpleContent>
-						<xs:extension base="xs:int">
-							<xs:attribute ref="rdf:datatype" use="required"
-								fixed="http://www.w3.org/2001/XMLSchema#integer" />
-						</xs:extension>
-					</xs:simpleContent>
-				</xs:complexType>
-			</xs:element>
-		</xs:sequence>
-		<xs:attributeGroup ref="rdf:about" />
-	</xs:complexType>
-
-	<xs:element name="control">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="Blocking" type="scufl2:Blocking" />
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:complexType name="Blocking">
-		<xs:sequence>
-			<xs:element name="block" type="rdf:Resource" />
-			<xs:element name="untilFinished" type="rdf:Resource" />
-		</xs:sequence>
-		<xs:attributeGroup ref="rdf:about" />
-	</xs:complexType>
-
-
-	<xs:element name="configurationType">
-		<xs:complexType>
-			<xs:attributeGroup ref="rdf:resource" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="required">
-		<xs:complexType>
-			<xs:simpleContent>
-				<xs:extension base="xs:boolean">
-					<xs:attribute ref="rdf:datatype" use="required"
-						fixed="http://www.w3.org/2001/XMLSchema#boolean" />
-				</xs:extension>
-			</xs:simpleContent>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="name" type="xs:NCName" />
-	<xs:element name="granularPortDepth">
-		<xs:complexType>
-			<xs:simpleContent>
-				<xs:extension base="xs:int">
-					<xs:attribute ref="rdf:datatype" use="required"
-						fixed="http://www.w3.org/2001/XMLSchema#integer" />
-				</xs:extension>
-			</xs:simpleContent>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="portDepth">
-		<xs:complexType>
-			<xs:simpleContent>
-				<xs:extension base="xs:int">
-					<xs:attribute ref="rdf:datatype" use="required"
-						fixed="http://www.w3.org/2001/XMLSchema#integer" />
-				</xs:extension>
-			</xs:simpleContent>
-		</xs:complexType>
-	</xs:element>
-
-
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
deleted file mode 100644
index f317513..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdfxml/xsd/xml.xsd
+++ /dev/null
@@ -1,295 +0,0 @@
-<?xml version='1.0'?>
-<!--
-    Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or 
-	document includes material copied from or derived from:
-
-  Extensible Markup Language (XML) 1.0 (Fifth Edition)
-  W3C Recommendation 26 November 2008
-  http://www.w3.org/2001/xml.xsd
-  http://www.w3.org/TR/xml/
-
--->
-<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" 
-  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-  xmlns   ="http://www.w3.org/1999/xhtml"
-  xml:lang="en">
-  
- <xs:annotation>
-  <xs:documentation>
-   <div>
-    <h1>About the XML namespace</h1>
-
-    <div class="bodytext">
-     <p>
-      This schema document describes the XML namespace, in a form
-      suitable for import by other schema documents.
-     </p>
-     <p>
-      See <a href="http://www.w3.org/XML/1998/namespace.html">
-      http://www.w3.org/XML/1998/namespace.html</a> and
-      <a href="http://www.w3.org/TR/REC-xml">
-      http://www.w3.org/TR/REC-xml</a> for information 
-      about this namespace.
-     </p>
-     <p>
-      Note that local names in this namespace are intended to be
-      defined only by the World Wide Web Consortium or its subgroups.
-      The names currently defined in this namespace are listed below.
-      They should not be used with conflicting semantics by any Working
-      Group, specification, or document instance.
-     </p>
-     <p>   
-      See further below in this document for more information about <a
-      href="#usage">how to refer to this schema document from your own
-      XSD schema documents</a> and about <a href="#nsversioning">the
-      namespace-versioning policy governing this schema document</a>.
-     </p>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:attribute name="lang">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-     
-      <h3>lang (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose value
-       is a language code for the natural language of the content of
-       any element; its value is inherited.  This name is reserved
-       by virtue of its definition in the XML specification.</p>
-     
-    </div>
-    <div>
-     <h4>Notes</h4>
-     <p>
-      Attempting to install the relevant ISO 2- and 3-letter
-      codes as the enumerated possible values is probably never
-      going to be a realistic possibility.  
-     </p>
-     <p>
-      See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
-       http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
-      and the IANA language subtag registry at
-      <a href="http://www.iana.org/assignments/language-subtag-registry">
-       http://www.iana.org/assignments/language-subtag-registry</a>
-      for further information.
-     </p>
-     <p>
-      The union allows for the 'un-declaration' of xml:lang with
-      the empty string.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-  <xs:simpleType>
-   <xs:union memberTypes="xs:language">
-    <xs:simpleType>    
-     <xs:restriction base="xs:string">
-      <xs:enumeration value=""/>
-     </xs:restriction>
-    </xs:simpleType>
-   </xs:union>
-  </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="space">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-     
-      <h3>space (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose
-       value is a keyword indicating what whitespace processing
-       discipline is intended for the content of the element; its
-       value is inherited.  This name is reserved by virtue of its
-       definition in the XML specification.</p>
-     
-    </div>
-   </xs:documentation>
-  </xs:annotation>
-  <xs:simpleType>
-   <xs:restriction base="xs:NCName">
-    <xs:enumeration value="default"/>
-    <xs:enumeration value="preserve"/>
-   </xs:restriction>
-  </xs:simpleType>
- </xs:attribute>
- 
- <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
-   <xs:documentation>
-    <div>
-     
-      <h3>base (as an attribute name)</h3>
-      <p>
-       denotes an attribute whose value
-       provides a URI to be used as the base for interpreting any
-       relative URIs in the scope of the element on which it
-       appears; its value is inherited.  This name is reserved
-       by virtue of its definition in the XML Base specification.</p>
-     
-     <p>
-      See <a
-      href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
-      for information about this attribute.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
- </xs:attribute>
- 
- <xs:attribute name="id" type="xs:ID">
-  <xs:annotation>
-   <xs:documentation>
-    <div>
-     
-      <h3>id (as an attribute name)</h3> 
-      <p>
-       denotes an attribute whose value
-       should be interpreted as if declared to be of type ID.
-       This name is reserved by virtue of its definition in the
-       xml:id specification.</p>
-     
-     <p>
-      See <a
-      href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
-      for information about this attribute.
-     </p>
-    </div>
-   </xs:documentation>
-  </xs:annotation>
- </xs:attribute>
-
- <xs:attributeGroup name="specialAttrs">
-  <xs:attribute ref="xml:base"/>
-  <xs:attribute ref="xml:lang"/>
-  <xs:attribute ref="xml:space"/>
-  <xs:attribute ref="xml:id"/>
- </xs:attributeGroup>
-
- <xs:annotation>
-  <xs:documentation>
-   <div>
-   
-    <h3>Father (in any context at all)</h3> 
-
-    <div class="bodytext">
-     <p>
-      denotes Jon Bosak, the chair of 
-      the original XML Working Group.  This name is reserved by 
-      the following decision of the W3C XML Plenary and 
-      XML Coordination groups:
-     </p>
-     <blockquote>
-       <p>
-	In appreciation for his vision, leadership and
-	dedication the W3C XML Plenary on this 10th day of
-	February, 2000, reserves for Jon Bosak in perpetuity
-	the XML name "xml:Father".
-       </p>
-     </blockquote>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
-  <xs:documentation>
-   <div xml:id="usage" id="usage">
-    <h2><a name="usage">About this schema document</a></h2>
-
-    <div class="bodytext">
-     <p>
-      This schema defines attributes and an attribute group suitable
-      for use by schemas wishing to allow <code>xml:base</code>,
-      <code>xml:lang</code>, <code>xml:space</code> or
-      <code>xml:id</code> attributes on elements they define.
-     </p>
-     <p>
-      To enable this, such a schema must import this schema for
-      the XML namespace, e.g. as follows:
-     </p>
-     <pre>
-          &lt;schema . . .>
-           . . .
-           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
-                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-     </pre>
-     <p>
-      or
-     </p>
-     <pre>
-           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
-                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
-     </pre>
-     <p>
-      Subsequently, qualified reference to any of the attributes or the
-      group defined below will have the desired effect, e.g.
-     </p>
-     <pre>
-          &lt;type . . .>
-           . . .
-           &lt;attributeGroup ref="xml:specialAttrs"/>
-     </pre>
-     <p>
-      will define a type which will schema-validate an instance element
-      with any of those attributes.
-     </p>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
-  <xs:documentation>
-   <div id="nsversioning" xml:id="nsversioning">
-    <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
-    <div class="bodytext">
-     <p>
-      In keeping with the XML Schema WG's standard versioning
-      policy, this schema document will persist at
-      <a href="http://www.w3.org/2009/01/xml.xsd">
-       http://www.w3.org/2009/01/xml.xsd</a>.
-     </p>
-     <p>
-      At the date of issue it can also be found at
-      <a href="http://www.w3.org/2001/xml.xsd">
-       http://www.w3.org/2001/xml.xsd</a>.
-     </p>
-     <p>
-      The schema document at that URI may however change in the future,
-      in order to remain compatible with the latest version of XML
-      Schema itself, or with the XML namespace itself.  In other words,
-      if the XML Schema or XML namespaces change, the version of this
-      document at <a href="http://www.w3.org/2001/xml.xsd">
-       http://www.w3.org/2001/xml.xsd 
-      </a> 
-      will change accordingly; the version at 
-      <a href="http://www.w3.org/2009/01/xml.xsd">
-       http://www.w3.org/2009/01/xml.xsd 
-      </a> 
-      will not change.
-     </p>
-     <p>
-      Previous dated (and unchanging) versions of this schema 
-      document are at:
-     </p>
-     <ul>
-      <li><a href="http://www.w3.org/2009/01/xml.xsd">
-	http://www.w3.org/2009/01/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2007/08/xml.xsd">
-	http://www.w3.org/2007/08/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2004/10/xml.xsd">
-	http://www.w3.org/2004/10/xml.xsd</a></li>
-      <li><a href="http://www.w3.org/2001/03/xml.xsd">
-	http://www.w3.org/2001/03/xml.xsd</a></li>
-     </ul>
-    </div>
-   </div>
-  </xs:documentation>
- </xs:annotation>
-
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/pom.xml b/taverna-scufl2-scufl/pom.xml
deleted file mode 100644
index 1bd9038..0000000
--- a/taverna-scufl2-scufl/pom.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.taverna.language</groupId>
-    <artifactId>taverna-language</artifactId>
-    <version>0.16.1-incubating-SNAPSHOT</version>
-  </parent>
-  <artifactId>taverna-scufl2-scufl</artifactId>
-  <packaging>bundle</packaging>
-  <name>Apache Taverna Scufl 2 SCUFL parser</name>
-  <description>Parse Taverna 1.x workflows (Status: Experimental)</description>
-  <build>
-		<plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <!--
-                <configuration>
-                    <instructions>
-                        <Export-Package>org.apache.taverna.scufl2.api.io;provide:=true</Export-Package>
-                    </instructions>
-                </configuration>
-                 -->
-            </plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>jaxb2-maven-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>xjc</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<packageName>org.apache.taverna.scufl2.xml.scufl.jaxb</packageName>
-					<schemaDirectory>src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/</schemaDirectory>
-				</configuration>
-			</plugin>
-
-	            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-                <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-                  </plugins>
-            </build> 	<dependencies>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>taverna-scufl2-api</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-osgi</artifactId>
-      <version>${jaxb.version}</version>
-			<type>jar</type>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-                        <version>${commons.io.version}</version>
-			<type>jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-                        <groupId>org.jdom</groupId>
-                        <artifactId>com.springsource.org.jdom</artifactId>
-                        <version>${jdom.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jaxen</groupId>
-			<artifactId>com.springsource.org.jaxen</artifactId>
-                        <version>${jaxen.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ParserState.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ParserState.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ParserState.java
deleted file mode 100644
index 7cedf56..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ParserState.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.util.HashMap;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-/**
- * @author alanrw
- */
-public class ParserState {
-	private ScuflParser currentParser;
-	private WorkflowBundle currentWorkflowBundle;
-	private Profile currentProfile;
-	private Workflow currentWorkflow;
-	private Processor currentProcessor;
-	private ScuflExtensionParser currentExtensionParser;
-	private Activity currentActivity;
-
-	private HashMap<Object, WorkflowBean> forwardMapping = new HashMap<>();
-
-	public void setCurrentWorkflowBundle(WorkflowBundle wfBundle) {
-		this.currentWorkflowBundle = wfBundle;
-	}
-
-	public WorkflowBundle getCurrentWorkflowBundle() {
-		return currentWorkflowBundle;
-	}
-
-	public void setCurrentProfile(Profile profile) {
-		this.currentProfile = profile;
-	}
-
-	/**
-	 * @return the currentProfile
-	 */
-	public Profile getCurrentProfile() {
-		return currentProfile;
-	}
-
-	/**
-	 * @return the currentParser
-	 */
-	public ScuflParser getCurrentParser() {
-		return currentParser;
-	}
-
-	/**
-	 * @param currentParser
-	 *            the currentParser to set
-	 */
-	public void setCurrentParser(ScuflParser currentParser) {
-		this.currentParser = currentParser;
-	}
-
-	/**
-	 * @param currentWorkflow
-	 *            the currentWorkflow to set
-	 */
-	public void setCurrentWorkflow(Workflow currentWorkflow) {
-		this.currentWorkflow = currentWorkflow;
-	}
-
-	/**
-	 * @return the currentWorkflow
-	 */
-	public Workflow getCurrentWorkflow() {
-		return currentWorkflow;
-	}
-
-	public void addMapping(Object scuflObject, WorkflowBean scufl2Object) {
-		forwardMapping.put(scuflObject, scufl2Object);
-	}
-
-	/**
-	 * @return the currentProcessor
-	 */
-	public Processor getCurrentProcessor() {
-		return currentProcessor;
-	}
-
-	/**
-	 * @param currentProcessor
-	 *            the currentProcessor to set
-	 */
-	public void setCurrentProcessor(Processor currentProcessor) {
-		this.currentProcessor = currentProcessor;
-	}
-
-	/**
-	 * @return the currentExtensionParser
-	 */
-	public ScuflExtensionParser getCurrentExtensionParser() {
-		return currentExtensionParser;
-	}
-
-	/**
-	 * @param currentExtensionParser
-	 *            the currentExtensionParser to set
-	 */
-	public void setCurrentExtensionParser(
-			ScuflExtensionParser currentExtensionParser) {
-		this.currentExtensionParser = currentExtensionParser;
-	}
-
-	/**
-	 * @return the currentActivity
-	 */
-	public Activity getCurrentActivity() {
-		return currentActivity;
-	}
-
-	/**
-	 * @param currentActivity
-	 *            the currentActivity to set
-	 */
-	public void setCurrentActivity(Activity currentActivity) {
-		this.currentActivity = currentActivity;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflExtensionParser.java
deleted file mode 100644
index 6fc235e..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflExtensionParser.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public interface ScuflExtensionParser {
-	void setParserState(ParserState state);
-	
-	ParserState getParserState();
-
-	List<URI> getAdditionalSchemas();
-
-	void parseScuflObject(Object o);
-
-	boolean canHandle(Class<?> c);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflParser.java
deleted file mode 100644
index b209537..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflParser.java
+++ /dev/null
@@ -1,497 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.util.logging.Level.SEVERE;
-import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.ServiceLoader;
-import java.util.Set;
-import java.util.logging.Logger;
-import java.util.regex.Pattern;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.xml.sax.SAXException;
-
-import org.apache.taverna.scufl2.xml.scufl.jaxb.CoordinationType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.DefaultType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.DefaultsType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.LinkType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.ObjectFactory;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.ProcessorType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.ScuflType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.SinkType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.SourceType;
-import org.apache.taverna.scufl2.xml.scufl.jaxb.WorkflowDescriptionType;
-
-/**
- * WARNING! Incomplete class.
- * @author alanrw
- */
-public class ScuflParser {
-	private static final Logger logger = Logger.getLogger(ScuflParser.class
-			.getCanonicalName());
-	private static final String SCUFL_XSD = "xsd/scufl.xsd";
-	@SuppressWarnings("unused")
-	private static final String LOCAL_XSD = "xsd/scufl-local.xsd";
-	private static final String SCUFL = "SCUFL";
-
-	protected Set<ScuflExtensionParser> scuflExtensionParsers = null;
-	protected final JAXBContext jaxbContext;
-	private boolean strict = false;
-	private boolean validating = false;
-
-	protected ThreadLocal<ParserState> parserState = new ThreadLocalParserState();
-
-	/**
-	 * A static class for the thread-local parser state.
-	 */
-	private static class ThreadLocalParserState extends ThreadLocal<ParserState> {
-		@Override
-		protected ParserState initialValue() {
-			return new ParserState();
-		};
-	}
-
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	protected ServiceLoader<ScuflExtensionParser> discoveredScuflExtensionParsers;
-	protected final ThreadLocal<Unmarshaller> unmarshaller;
-
-	public ScuflParser() throws JAXBException {
-		jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-		unmarshaller = new ThreadLocalUnmarshaller(jaxbContext);
-	}
-
-	/**
-	 * A static class for the thread-local unmarshaller.
-	 */
-	private static class ThreadLocalUnmarshaller extends
-			ThreadLocal<Unmarshaller> {
-		private final JAXBContext jaxbContext;
-
-		ThreadLocalUnmarshaller(JAXBContext jaxbContext) {
-			this.jaxbContext = jaxbContext;
-		}
-
-		@Override
-		protected Unmarshaller initialValue() {
-			try {
-				return jaxbContext.createUnmarshaller();
-			} catch (JAXBException e) {
-				logger.log(SEVERE, "Could not create unmarshaller", e);
-				return null;
-			}
-		};
-	}
-
-	@SuppressWarnings("unchecked")
-	public WorkflowBundle parseScufl(File scuflFile) throws IOException,
-			ReaderException, JAXBException {
-		JAXBElement<ScuflType> root = (JAXBElement<ScuflType>) getUnmarshaller()
-				.unmarshal(scuflFile);
-		return parseScufl(root.getValue());
-	}
-
-	@SuppressWarnings("unchecked")
-	public WorkflowBundle parseScufl(InputStream scuflFile) throws IOException,
-			JAXBException, ReaderException {
-		JAXBElement<ScuflType> root = (JAXBElement<ScuflType>) getUnmarshaller()
-				.unmarshal(scuflFile);
-		return parseScufl(root.getValue());
-	}
-
-	public WorkflowBundle parseScufl(ScuflType wf) throws ReaderException,
-			JAXBException {
-		try {
-			parserState.get().setCurrentParser(this);
-			WorkflowBundle wfBundle = new WorkflowBundle();
-			parserState.get().setCurrentWorkflowBundle(wfBundle);
-			makeProfile(wf);
-			Workflow w = parseWorkflow(wf);
-			wfBundle.setMainWorkflow(w);
-
-			scufl2Tools.setParents(wfBundle);
-
-			return wfBundle;
-		} finally {
-			parserState.remove();
-		}
-	}
-
-	private Workflow parseWorkflow(ScuflType wf) {
-		Workflow oldCurrentWorkflow = parserState.get().getCurrentWorkflow();
-		Workflow workflow = new Workflow();
-		workflow.setParent(parserState.get().getCurrentWorkflowBundle());
-		parserState.get().addMapping(wf, workflow);
-		parserState.get().setCurrentWorkflow(workflow);
-		WorkflowDescriptionType description = wf.getWorkflowdescription();
-		workflow.setName(sanitiseName(description.getTitle()));
-
-		parseWorkflowInputs(wf);
-		parseWorkflowOutputs(wf);
-		parseProcessors(wf);
-		parseLinks(wf);
-		parseCoordinations(wf);
-		parseAnnotations(wf);
-
-		replaceDefaultsWithStringConstants(wf); // To be done
-
-		parserState.get().setCurrentWorkflow(oldCurrentWorkflow);
-		return workflow;
-	}
-
-	private void parseAnnotations(ScuflType wf) {
-		// TODO Auto-generated method stub
-	}
-
-	private void parseCoordinations(ScuflType wf) {
-		for (CoordinationType c : wf.getCoordination())
-			parseCoordination(c);
-	}
-
-	private void parseCoordination(CoordinationType c) {
-		// TODO Auto-generated method stub
-	}
-
-	private void parseLinks(ScuflType wf) {
-		for (LinkType dl : wf.getLink())
-			parseLink(dl);
-	}
-
-	private void parseLink(LinkType dl) {
-		// TODO Auto-generated method stub
-	}
-
-	private void parseWorkflowInputs(ScuflType wf) {
-		for (SourceType st : wf.getSource())
-			parseWorkflowInput(st);
-	}
-
-	private void parseWorkflowInput(SourceType st) {
-		Workflow currentWorkflow = parserState.get().getCurrentWorkflow();
-		InputWorkflowPort iwp = new InputWorkflowPort(currentWorkflow,
-				sanitiseName(st.getName()));
-		parserState.get().addMapping(st, iwp);
-		// Cannot do anything about the depths
-	}
-
-	private void parseWorkflowOutputs(ScuflType wf) {
-		for (SinkType st : wf.getSink())
-			parseWorkflowOutput(st);
-	}
-
-	private void parseWorkflowOutput(SinkType st) {
-		Workflow currentWorkflow = parserState.get().getCurrentWorkflow();
-		OutputWorkflowPort owp = new OutputWorkflowPort(currentWorkflow,
-				sanitiseName(st.getName()));
-		parserState.get().addMapping(st, owp);
-		// Cannot do anything about the depths
-	}
-
-	private void parseProcessors(ScuflType wf) {
-		for (ProcessorType pt : wf.getProcessor())
-			parseProcessor(pt);
-	}
-
-	private void parseProcessor(ProcessorType pt) {
-		Workflow currentWorkflow = parserState.get().getCurrentWorkflow();
-		Processor p = new Processor(currentWorkflow, sanitiseName(pt.getName()));
-		parserState.get().setCurrentProcessor(p);
-		parseDispatchStack(pt);
-		parseProcessorElement(pt.getProcessorElement());
-		Activity activity = parserState.get().getCurrentActivity();
-		if (activity != null)
-			createDefaultProcessorBinding();
-		parserState.get().setCurrentActivity(null);
-
-		parseAlternates(pt);
-		parseIterationStrategy(pt);
-		parserState.get().setCurrentProcessor(null);
-		parserState.get().addMapping(pt, p);
-		// Cannot do anything about the ports
-	}
-
-	private void createDefaultProcessorBinding() {
-		Processor p = parserState.get().getCurrentProcessor();
-		Activity a = parserState.get().getCurrentActivity();
-
-		ProcessorBinding pb = new ProcessorBinding();
-		pb.setParent(parserState.get().getCurrentProfile());
-		pb.setActivityPosition(0);
-		pb.setBoundProcessor(p);
-		pb.setBoundActivity(a);
-		for (InputActivityPort iap : a.getInputPorts()) {
-			InputProcessorPort ipp = findOrCreateProcessorInputPort(p,
-					iap.getName(), iap.getDepth());
-			ProcessorInputPortBinding portBinding = new ProcessorInputPortBinding();
-			portBinding.setParent(pb);
-			portBinding.setBoundActivityPort(iap);
-			portBinding.setBoundProcessorPort(ipp);
-		}
-		for (OutputActivityPort oap : a.getOutputPorts()) {
-			OutputProcessorPort opp = findOrCreateProcessorOutputPort(p,
-					oap.getName(), oap.getDepth(), oap.getGranularDepth());
-			ProcessorOutputPortBinding portBinding = new ProcessorOutputPortBinding();
-			portBinding.setParent(pb);
-			portBinding.setBoundActivityPort(oap);
-			portBinding.setBoundProcessorPort(opp);
-		}
-	}
-
-	private OutputProcessorPort findOrCreateProcessorOutputPort(Processor p,
-			String name, Integer depth, Integer granularDepth) {
-		OutputProcessorPort port = p.getOutputPorts().getByName(name);
-		if (port == null) {
-			port = new OutputProcessorPort();
-			port.setParent(p);
-			port.setName(name);
-			port.setDepth(depth);
-			port.setGranularDepth(granularDepth);
-		}
-		return port;
-	}
-
-	private InputProcessorPort findOrCreateProcessorInputPort(Processor p,
-			String name, Integer depth) {
-		InputProcessorPort port = p.getInputPorts().getByName(name);
-		if (port == null) {
-			port = new InputProcessorPort();
-			port.setParent(p);
-			port.setName(name);
-			port.setDepth(depth);
-		}
-		return port;
-	}
-
-	private void parseAlternates(ProcessorType pt) {
-		// TODO Auto-generated method stub
-	}
-
-	private void parseProcessorElement(JAXBElement<?> processorElement) {
-		Object processorElementValue = processorElement.getValue();
-		parseExtensionObject(processorElementValue);
-	}
-
-	private void parseExtensionObject(Object o) {
-		findExtensionParser(o.getClass());
-		if (parserState.get().getCurrentExtensionParser() != null) {
-			parserState.get().getCurrentExtensionParser()
-					.setParserState(parserState.get());
-			parserState.get().getCurrentExtensionParser().parseScuflObject(o);
-			parserState.get().setCurrentExtensionParser(null);
-		} else {
-			// FIXME write to log instead!
-			System.err.println("Unrecognized extension " + o.getClass());
-		}
-	}
-
-	private void findExtensionParser(Class<?> c) {
-		parserState.get().setCurrentExtensionParser(null);
-		for (ScuflExtensionParser extensionParser : getScuflExtensionParsers())
-			if (extensionParser.canHandle(c)) {
-				parserState.get().setCurrentExtensionParser(extensionParser);
-				break;
-			}
-	}
-
-	private void parseDispatchStack(ProcessorType pt) {
-		// TODO
-	}
-
-	private void parseIterationStrategy(ProcessorType pt) {
-		// TODO
-	}
-
-	/**
-	 * Crawls the scuflModel processors and checks their input ports for unbound
-	 * default values. If one is found then a StringConstantProcessor is
-	 * inserted upstream.
-	 * 
-	 * @param scuflModel
-	 * @throws WorkflowTranslationException
-	 */
-	@SuppressWarnings("unused")
-	private void replaceDefaultsWithStringConstants(ScuflType scuflModel) {
-		for (ProcessorType t1Processor : scuflModel.getProcessor()) {
-			DefaultsType defaults = t1Processor.getDefaults();
-			if (defaults != null)
-				for (DefaultType d : defaults.getDefault()) {
-					String portName = d.getName();
-					String constantValue = d.getValue();
-					// TODO: To be done
-				}
-		}
-	}
-
-	public Unmarshaller getUnmarshaller() {
-		Unmarshaller u = unmarshaller.get();
-
-		if (!isValidating() && u.getSchema() != null) {
-			u.setSchema(null);
-		} else if (isValidating() && u.getSchema() == null) {
-			// Load and set schema to validate against
-			Schema schema;
-			try {
-				SchemaFactory schemaFactory = SchemaFactory
-						.newInstance(W3C_XML_SCHEMA_NS_URI);
-				List<URI> schemas = getAdditionalSchemas();
-
-				URL scuflXSD = getClass().getResource(SCUFL_XSD);
-				schemas.add(scuflXSD.toURI());
-
-				List<Source> schemaSources = new ArrayList<>();
-				for (URI schemaUri : schemas)
-					schemaSources.add(new StreamSource(schemaUri
-							.toASCIIString()));
-				Source[] sources = schemaSources
-						.toArray(new Source[schemaSources.size()]);
-				schema = schemaFactory.newSchema(sources);
-			} catch (SAXException e) {
-				throw new RuntimeException("Can't load schema " + SCUFL_XSD, e);
-			} catch (URISyntaxException | NullPointerException e) {
-				throw new RuntimeException("Can't find schema " + SCUFL_XSD, e);
-			}
-			u.setSchema(schema);
-		}
-		return u;
-	}
-
-	private void makeProfile(ScuflType wf) {
-		Profile profile = new Profile(SCUFL + "-" + wf.getVersion());
-		profile.setParent(parserState.get().getCurrentWorkflowBundle());
-		parserState.get().getCurrentWorkflowBundle().setMainProfile(profile);
-		parserState.get().setCurrentProfile(profile);
-	}
-
-	protected List<URI> getAdditionalSchemas() {
-		List<URI> uris = new ArrayList<>();
-		for (ScuflExtensionParser parser : getScuflExtensionParsers()) {
-			List<URI> schemas = parser.getAdditionalSchemas();
-			if (schemas != null)
-				uris.addAll(schemas);
-		}
-		return uris;
-	}
-
-	public synchronized Set<ScuflExtensionParser> getScuflExtensionParsers() {
-		Set<ScuflExtensionParser> parsers = scuflExtensionParsers;
-		if (parsers != null)
-			return parsers;
-		parsers = new HashSet<>();
-		/*
-		 * TODO: Do we need to cache this, or is the cache in ServiceLoader fast
-		 * enough?
-		 */
-		if (discoveredScuflExtensionParsers == null)
-			discoveredScuflExtensionParsers = ServiceLoader
-					.load(ScuflExtensionParser.class);
-		for (ScuflExtensionParser parser : discoveredScuflExtensionParsers)
-			parsers.add(parser);
-		return parsers;
-	}
-
-	/**
-	 * @return the strict
-	 */
-	public boolean isStrict() {
-		return strict;
-	}
-
-	/**
-	 * @param strict
-	 *            the strict to set
-	 */
-	public void setStrict(boolean strict) {
-		this.strict = strict;
-	}
-
-	/**
-	 * @return the validating
-	 */
-	public boolean isValidating() {
-		return validating;
-	}
-
-	/**
-	 * @param validating
-	 *            the validating to set
-	 */
-	public void setValidating(boolean validating) {
-		this.validating = validating;
-	}
-
-	/**
-	 * Checks that the name does not have any characters that are invalid for a
-	 * processor name.
-	 * 
-	 * The name must contain only the chars[A-Za-z_0-9].
-	 * 
-	 * @param name
-	 *            the original name
-	 * @return the sanitised name
-	 */
-	private static String sanitiseName(String name) {
-		if (Pattern.matches("\\w++", name))
-			return name;
-		StringBuilder result = new StringBuilder();
-		for (char c : name.toCharArray())
-			if (Character.isLetterOrDigit(c) || c == '_')
-				result.append(c);
-		return result.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflReader.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflReader.java
deleted file mode 100644
index 379e6bd..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/ScuflReader.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
-
-
-/**
- * @author alanrw
- */
-public class ScuflReader implements WorkflowBundleReader {
-	public static final String APPLICATION_VND_TAVERNA_SCUFL_XML = "application/vnd.taverna.scufl+xml";
-	private static final Set<String> SCUFL_TYPES = new HashSet<String>(
-			Arrays.asList(new String[] { APPLICATION_VND_TAVERNA_SCUFL_XML }));
-
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private ScuflParser parser;
-	
-	@Override
-	public Set<String> getMediaTypes() {
-		return SCUFL_TYPES;
-	}
-
-	@Override
-	public WorkflowBundle readBundle(File bundleFile, String mediaType)
-			throws ReaderException, IOException {
-		try {
-			WorkflowBundle bundle = getParser().parseScufl(bundleFile);
-			scufl2Tools.setParents(bundle);
-			return bundle;
-		} catch (JAXBException e) {
-			if (e.getCause() instanceof IOException) {
-				IOException ioException = (IOException) e.getCause();
-				throw ioException;
-			}
-			throw new ReaderException("Can't parse SCUFL " + bundleFile, e);
-		}
-	}
-
-	@Override
-	public WorkflowBundle readBundle(InputStream inputStream, String mediaType)
-			throws ReaderException, IOException {
-		try {
-			WorkflowBundle bundle = getParser().parseScufl(inputStream);
-			scufl2Tools.setParents(bundle);
-			return bundle;
-		} catch (JAXBException e) {
-			if (e.getCause() instanceof IOException) {
-				IOException ioException = (IOException) e.getCause();
-				throw ioException;
-			}
-			throw new ReaderException("Can't parse SCUFL", e);
-		}
-	}
-
-	public void setParser(ScuflParser parser) {
-		this.parser = parser;
-	}
-	
-	public ScuflParser getParser() throws JAXBException {
-		if (parser == null)
-			parser = new ScuflParser();
-		return parser;
-	}
-
-	@Override
-	public String guessMediaTypeForSignature(byte[] firstBytes) {
-		if (firstBytes.length < 100)
-			return null;
-		// FIXME: Does not deal with potential UTF-16 encoding
-
-		// Latin 1 can deal with nasty bytes in binaries
-		Charset latin1 = Charset.forName("ISO-8859-1");
-		String asLatin1 = new String(firstBytes, latin1);
-		if (!asLatin1.contains("http://org.embl.ebi.escience/xscufl/0.1alpha"))
-			return null;
-		// Good enough - XML is hard to check on so few bytes
-		return APPLICATION_VND_TAVERNA_SCUFL_XML;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractExtensionParser.java
deleted file mode 100644
index c31e71a..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractExtensionParser.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import org.apache.taverna.scufl2.translator.scufl.ParserState;
-import org.apache.taverna.scufl2.translator.scufl.ScuflExtensionParser;
-
-/**
- * @author alanrw
- */
-public abstract class AbstractExtensionParser implements ScuflExtensionParser {
-	private ParserState parserState;
-
-	/**
-	 * @return the parserState
-	 */
-	@Override
-	public ParserState getParserState() {
-		return parserState;
-	}
-
-	/**
-	 * @param parserState the parserState to set
-	 */
-	@Override
-	public void setParserState(ParserState parserState) {
-		this.parserState = parserState;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractProcessorExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractProcessorExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractProcessorExtensionParser.java
deleted file mode 100644
index 326a44d..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/AbstractProcessorExtensionParser.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class AbstractProcessorExtensionParser extends AbstractExtensionParser {
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.AbstractprocessorType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		return Collections.emptyList();
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/ApiConsumerExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/ApiConsumerExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/ApiConsumerExtensionParser.java
deleted file mode 100644
index b880bc3..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/ApiConsumerExtensionParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class ApiConsumerExtensionParser extends AbstractExtensionParser {
-	private static final String APICONSUMER_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-apiconsumer.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.ApiconsumerType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL apiConsumerXsd = getClass().getResource(APICONSUMER_XSD);
-		try {
-			return Arrays.asList(apiConsumerXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find APIConsumer schema "
-					+ apiConsumerXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BeanshellExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BeanshellExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BeanshellExtensionParser.java
deleted file mode 100644
index 1b7f83c..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BeanshellExtensionParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class BeanshellExtensionParser extends AbstractExtensionParser {
-	private static final String BEANSHELL_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-beanshell.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.BeanshellType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL beanshellXsd = getClass().getResource(BEANSHELL_XSD);
-		try {
-			return Arrays.asList(beanshellXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find Beanshell schema "
-					+ beanshellXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomartExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomartExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomartExtensionParser.java
deleted file mode 100644
index 6862d9c..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomartExtensionParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class BiomartExtensionParser extends AbstractExtensionParser {
-	private static final String BIOMART_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-biomart.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.BiomartType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL biomartXsd = getClass().getResource(BIOMART_XSD);
-		try {
-			return Arrays.asList(biomartXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find Biomart schema "
-					+ biomartXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomobyExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomobyExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomobyExtensionParser.java
deleted file mode 100644
index 96a8516..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/BiomobyExtensionParser.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class BiomobyExtensionParser extends AbstractExtensionParser {
-
-	private static final String BIOMOBY_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-biomoby.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.BiomobyobjectType.class)
-				|| c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.BiomobyparserType.class)
-				|| c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.BiomobywsdlType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL apiConsumerXsd = getClass().getResource(BIOMOBY_XSD);
-		try {
-			return Arrays.asList(apiConsumerXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find APIConsumer schema "
-					+ apiConsumerXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/LocalExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/LocalExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/LocalExtensionParser.java
deleted file mode 100644
index cf2ec42..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/LocalExtensionParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class LocalExtensionParser extends AbstractExtensionParser {
-	private static final String LOCAL_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-local.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.LocalType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL localXsd = getClass().getResource(LOCAL_XSD);
-		try {
-			return Arrays.asList(localXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find Local Service schema "
-					+ localXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/RshellExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/RshellExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/RshellExtensionParser.java
deleted file mode 100644
index a884b18..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/RshellExtensionParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class RshellExtensionParser extends AbstractExtensionParser {
-	private static final String RSHELL_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-rshell.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.RshellType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL rshellXsd = getClass().getResource(RSHELL_XSD);
-		try {
-			return Arrays.asList(rshellXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find RShell schema "
-					+ rshellXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/SoaplabExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/SoaplabExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/SoaplabExtensionParser.java
deleted file mode 100644
index 573d446..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/SoaplabExtensionParser.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class SoaplabExtensionParser extends AbstractExtensionParser {
-	private static final String SOAPLAB_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-soaplab.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.SoaplabwsdlType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL soaplabXsd = getClass().getResource(SOAPLAB_XSD);
-		try {
-			return Arrays.asList(soaplabXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find Soaplab schema "
-					+ soaplabXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/StringConstantExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/StringConstantExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/StringConstantExtensionParser.java
deleted file mode 100644
index d692dd2..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/StringConstantExtensionParser.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-
-import org.apache.taverna.scufl2.xml.scufl.jaxb.StringconstantType;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-/**
- * @author alanrw
- */
-public class StringConstantExtensionParser extends AbstractExtensionParser {
-	private static final String STRINGCONSTANT_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-stringconstant.xsd";
-
-	private static final String VALUE = "value";
-
-	public static URI CONSTANT = URI
-			.create("http://ns.taverna.org.uk/2010/activity/constant");
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.StringconstantType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL stringConstantXsd = getClass().getResource(STRINGCONSTANT_XSD);
-		try {
-			return Arrays.asList(stringConstantXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException(
-					"Can't find String Constant schema " + stringConstantXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		StringconstantType sc = (StringconstantType) o;
-		Configuration configuration = new Configuration();
-		configuration.setParent(getParserState().getCurrentProfile());
-		configuration.setType(CONSTANT.resolve("#Config"));
-		((ObjectNode) configuration.getJson()).put("string", sc.getValue());
-
-		Activity activity = new Activity();
-		getParserState().setCurrentActivity(activity);
-		activity.setParent(getParserState().getCurrentProfile());
-		activity.setType(CONSTANT);
-		OutputActivityPort valuePort = new OutputActivityPort(activity, VALUE);
-		valuePort.setDepth(0);
-		valuePort.setGranularDepth(0);
-		configuration.setConfigures(activity);
-
-		ProcessorBinding pb = new ProcessorBinding();
-		pb.setParent(getParserState().getCurrentProfile());
-		pb.setBoundProcessor(getParserState().getCurrentProcessor());
-		pb.setBoundActivity(activity);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/WsdlExtensionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/WsdlExtensionParser.java b/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/WsdlExtensionParser.java
deleted file mode 100644
index 9537445..0000000
--- a/taverna-scufl2-scufl/src/main/java/org/apache/taverna/scufl2/translator/scufl/processorelement/WsdlExtensionParser.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl.processorelement;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author alanrw
- */
-public class WsdlExtensionParser extends AbstractExtensionParser {
-	private static final String WSDL_XSD = "/uk/org/taverna/scufl2/translator/scufl/xsd/scufl-wsdl.xsd";
-
-	@Override
-	public boolean canHandle(Class<?> c) {
-		return c.equals(org.apache.taverna.scufl2.xml.scufl.jaxb.WsdlType.class);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL wsdlXsd = getClass().getResource(WSDL_XSD);
-		try {
-			return Arrays.asList(wsdlXsd.toURI());
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't find WSDL schema " + wsdlXsd);
-		}
-	}
-
-	@Override
-	public void parseScuflObject(Object o) {
-		// TODO write to log?
-		System.err.println(this.getClass() + " is not yet implemented");
-	}
-}


[36/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java
deleted file mode 100644
index 51767f5..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/TestExample.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.apache.taverna.robundle;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.OutputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.nio.file.StandardOpenOption;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.Test;
-
-public class TestExample {
-	@Test
-	public void example() throws Exception {
-		// Create a new (temporary) RO bundle
-		Bundle bundle = Bundles.createBundle();
-
-		// Get the inputs
-		Path inputs = bundle.getRoot().resolve("inputs");
-		Files.createDirectory(inputs);
-
-		// Get an input port:
-		Path in1 = inputs.resolve("in1");
-
-		// Setting a string value for the input port:
-		Bundles.setStringValue(in1, "Hello");
-
-		// And retrieving it
-		assertTrue(Bundles.isValue(in1));
-		assertEquals("Hello", Bundles.getStringValue(in1));
-
-		// Or just use the regular Files methods:
-		int lines = 0;
-		for (String line : Files.readAllLines(in1, Charset.forName("UTF-8"))) {
-			assertEquals("Hello", line);
-			lines++;
-		}
-		assertEquals(1, lines);
-
-		// Binaries and large files are done through the Files API
-		try (OutputStream out = Files.newOutputStream(in1,
-				StandardOpenOption.APPEND)) {
-			out.write(32);
-		}
-		// Or Java 7 style
-		Path localFile = Files.createTempFile("", ".txt");
-		Files.copy(in1, localFile, StandardCopyOption.REPLACE_EXISTING);
-		//System.out.println("Written to: " + localFile);
-
-		Files.copy(localFile, bundle.getRoot().resolve("out1"));
-
-		// Representing references
-		URI ref = URI.create("http://example.com/external.txt");
-		Path out3 = bundle.getRoot().resolve("out3");
-		Bundles.setReference(out3, ref);
-		if (Bundles.isReference(out3)) {
-			URI resolved = Bundles.getReference(out3);
-			assertNotNull(resolved);
-			//System.out.println(resolved);
-		}
-
-		// Saving a bundle:
-		Path zip = Files.createTempFile("bundle", ".zip");
-		Bundles.closeAndSaveBundle(bundle, zip);
-		// NOTE: From now "bundle" and its Path's are CLOSED
-		// and can no longer be accessed
-
-		//System.out.println("Saved to " + zip);
-
-		// Loading a bundle back from disk
-		try (Bundle bundle2 = Bundles.openBundle(zip)) {
-			assertEquals(zip, bundle2.getSource());
-		}
-
-		// if (Desktop.isDesktopSupported()) {
-		// // Open ZIP file for browsing
-		// Desktop.getDesktop().open(zip.toFile());
-		// }
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java
deleted file mode 100644
index 8538c30..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/Helper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.fs.BundleFileSystemProvider;
-import org.junit.After;
-import org.junit.Before;
-
-public class Helper {
-	protected BundleFileSystem fs;
-
-	@Before
-	public void makeFS() throws IOException {
-		fs = BundleFileSystemProvider.newFileSystemFromTemporary();
-	}
-
-	@After
-	public void closeAndDeleteFS() throws IOException {
-		fs.close();
-		Path source = fs.getSource();
-		Files.deleteIfExists(source);
-		if (source.getParent().getFileName().toString().startsWith("robundle")) {
-			Bundles.deleteRecursively(source.getParent());
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
deleted file mode 100644
index a0d7ed3..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/MemoryEfficiencyIT.java
+++ /dev/null
@@ -1,255 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-import java.util.Date;
-import java.util.Random;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.utils.RecursiveCopyFileVisitor.RecursiveCopyOption;
-import org.junit.Assume;
-import org.junit.Test;
-
-public class MemoryEfficiencyIT extends Helper {
-	private static final int MANY_FOLDERS = 100;
-	private static final int MANY_FILS = 10000;
-	private Runtime rt = Runtime.getRuntime();
-
-	// delays to allow garbage collection to run
-	private static final long GC_DELAY = 300;
-	private static final int kiB = 1024;
-
-	private static final int MiB = 1024 * 1024;
-	private static final long GiB = 1024l * 1024l * 1024l;
-
-	Random rand = new Random();
-	int MAX_WORKERS = 10;
-
-	@Test
-	public void writeManyFiles() throws Exception {
-
-		long usedBefore = usedMemory();
-
-		Path folder = fs.getPath("folder");
-
-		for (int i = 0; i < MANY_FOLDERS; i++) {
-			Path dir = folder.resolve("dir" + i);
-			Files.createDirectories(dir);
-		}
-
-		final byte[] pattern = new byte[8 * kiB];
-		rand.nextBytes(pattern);
-
-		ExecutorService pool = Executors.newFixedThreadPool(MAX_WORKERS);
-		try {
-			int numFiles = MANY_FILS;
-			System.out.println("Writing " + numFiles
-					+ " files in parallell over max " + MAX_WORKERS
-					+ " threads");
-			for (int i = 0; i < numFiles; i++) {
-				int folderNo = i % 100;
-				Path dir = folder.resolve("dir" + folderNo);
-				final Path file = dir.resolve("file" + i);
-				pool.submit(new Runnable() {
-					@Override
-					public void run() {
-						try (OutputStream newOutputStream = Files
-								.newOutputStream(file)) {
-							newOutputStream.write(pattern);
-						} catch (IOException e) {
-							e.printStackTrace();
-						}
-					};
-				});
-			}
-			pool.shutdown();
-			assertTrue("Timed out waiting for threads",
-					pool.awaitTermination(60, TimeUnit.SECONDS));
-			System.out.println("Done");
-		} finally {
-			pool.shutdownNow();
-		}
-		long usedAfterCloseFile = usedMemory();
-		assertTrue(usedAfterCloseFile - usedBefore < 10 * MiB);
-
-		Date startedRecurse = new Date();
-		System.out.println("Recursively copying folder");
-		Bundles.copyRecursively(folder, fs.getPath("copy"),
-				RecursiveCopyOption.IGNORE_ERRORS);
-		long duration = new Date().getTime() - startedRecurse.getTime();
-		System.out.println("Done in " + duration / 1000 + "s");
-
-		long usedAfterRecursive = usedMemory();
-		assertTrue(usedAfterRecursive - usedBefore < 20 * MiB);
-
-		fs.close();
-		long zipSize = Files.size(fs.getSource());
-		System.out.println("ZIP: " + zipSize / MiB + " MiB");
-		long usedAfterCloseFS = usedMemory();
-		assertTrue(usedAfterCloseFS - usedBefore < 20 * MiB);
-		assertTrue(usedAfterCloseFS < zipSize);
-
-	}
-
-	/**
-	 * This file may take a few minutes to complete depending on your OS and
-	 * disk
-	 * 
-	 */
-	@Test
-	public void writeGigaFile() throws Exception {
-
-		long usedBefore = usedMemory();
-
-		Path file = fs.getPath("bigfile");
-		long size = 5l * GiB;
-		Assume.assumeTrue("This test requires at least " + size / GiB
-				+ "GiB free disk space",
-				fs.getFileStore().getUsableSpace() < size);
-		System.out.println("Writing " + size / GiB + "GiB to bundle");
-
-		// We'll use FileChannel as it allows calling .position. This should
-		// be very fast on UNIX which allows zero-padding, but on Windows
-		// this will still take a while as it writes 5 GiB of \00s to disk.
-
-		// Another downside is that the ZipFileProvider compresses the file
-		// once the file channel is closed, requiring ~5 GB disk space
-		try (FileChannel bc = FileChannel.open(file, StandardOpenOption.WRITE,
-				StandardOpenOption.SPARSE, StandardOpenOption.CREATE_NEW)) {
-			bc.position(size);
-			ByteBuffer src = ByteBuffer.allocateDirect(1024);
-			bc.write(src);
-		}
-
-		long fileSize = Files.size(file);
-		assertTrue(fileSize > size);
-		System.out.println("Written " + fileSize / MiB);
-		long usedAfterCloseFile = usedMemory();
-		assertTrue(usedAfterCloseFile - usedBefore < 10 * MiB);
-
-		fs.close();
-		long zipSize = Files.size(fs.getSource());
-		System.out.println("ZIP: " + zipSize / MiB + " MiB");
-		// Zeros should compress fairly well
-		assertTrue(zipSize < 10 * MiB);
-
-		long usedAfterCloseFS = usedMemory();
-		assertTrue(usedAfterCloseFS - usedBefore < 10 * MiB);
-	}
-
-	@Test
-	public void writeBigFile() throws Exception {
-
-		long usedBefore = usedMemory();
-		long size = sufficientlyBig();
-		long limit = size / 2;
-
-		Path file = fs.getPath("bigfile");
-
-		// Big enough random bytes to blow ZIP's compression buffer
-		byte[] pattern = new byte[MiB];
-		rand.nextBytes(pattern);
-
-		long written = 0;
-		try (OutputStream newOutputStream = Files.newOutputStream(file)) {
-			while (written < size) {
-				newOutputStream.write(pattern);
-				written += pattern.length;
-			}
-			pattern = null;
-			rand = null;
-			long usedAfterWrite = usedMemory();
-			assertTrue(usedAfterWrite - usedBefore < limit);
-		}
-		long fileSize = Files.size(file);
-		assertTrue(fileSize >= size);
-		// System.out.println("Written " + fileSize/MiB + ", needed " +
-		// size/MiB);
-		long usedAfterCloseFile = usedMemory();
-		assertTrue(usedAfterCloseFile - usedBefore < limit);
-
-		fs.close();
-		long zipSize = Files.size(fs.getSource());
-		System.out.println("ZIP: " + zipSize / MiB + " MiB");
-		assertTrue(zipSize > limit);
-
-		long usedAfterCloseFS = usedMemory();
-		assertTrue(usedAfterCloseFS - usedBefore < 10 * MiB);
-	}
-
-	private long sufficientlyBig() throws IOException {
-		long usableSpace = fs.getFileStore().getUsableSpace();
-		long need = 64 * MiB;
-		if (need * 2 > usableSpace) {
-			String msg = "Not enough disk space (%s MiB < %s)";
-			long freeSpace = usableSpace / MiB;
-			long needSpace = need * 2 / MiB;
-			throw new IllegalStateException(String.format(msg, freeSpace,
-					needSpace));
-		}
-		return need;
-	}
-
-	@Test
-	public void testUsedMemory() throws Exception {
-		long before = usedMemory();
-		byte[] waste = new byte[50 * MiB];
-		waste[0] = 13;
-		waste[waste.length - 1] = 37;
-		long after = usedMemory();
-
-		assertTrue((after - before) > 10 * MiB);
-		waste = null;
-		long now = usedMemory();
-		// and it should have been freed again
-		assertTrue((after - now) > 10 * MiB);
-
-	}
-
-	public long usedMemory() throws InterruptedException {
-		runGC();
-		long used = rt.totalMemory() - rt.freeMemory();
-		System.out.println("Used memory: " + used / MiB + " MiB");
-		return used;
-	}
-
-	public void runGC() {
-		System.gc();
-		try {
-			Thread.sleep(GC_DELAY);
-			System.gc();
-			Thread.sleep(GC_DELAY);
-		} catch (InterruptedException e) {
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
deleted file mode 100644
index 6a4b7bd..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileSystem.java
+++ /dev/null
@@ -1,236 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.Files;
-import java.nio.file.NoSuchFileException;
-import java.nio.file.Path;
-import java.nio.file.attribute.BasicFileAttributeView;
-import java.nio.file.attribute.FileTime;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.Test;
-
-public class TestBundleFileSystem extends Helper {
-
-	@Test
-	public void writeToNewFile() throws Exception {
-		Path file = fs.getPath("test.txt");
-		Files.newBufferedWriter(file, Charset.defaultCharset()).close();
-	}
-
-	@Test
-	public void reopenNew() throws Exception {
-		Path x = Files.createTempFile("temp", ".zip");
-		Bundle bundle = Bundles.createBundle(x);
-		Path newFile = Files.createTempFile("temp", ".zip");
-		Bundles.closeAndSaveBundle(bundle, newFile);
-		Bundles.openBundle(newFile);
-	}
-
-	@Test
-	public void closeAndSaveToPreserveOriginal() throws Exception {
-		Path x = Files.createTempFile("temp", ".zip");
-		Bundle bundle = Bundles.createBundle(x);
-		Path newFile = Files.createTempFile("temp", ".zip");
-		Bundles.closeAndSaveBundle(bundle, newFile);
-		Bundles.openBundle(x);
-	}
-
-	/**
-	 * Test that BundleFileSystem does not allow a ZIP file to also become a
-	 * directory. See http://stackoverflow.com/questions/16588321/ as Java 7'z
-	 * ZIPFS normally allows this (!)
-	 * 
-	 * @throws Exception
-	 */
-	@Test
-	public void fileAndDirectory() throws Exception {
-		Path folder = fs.getPath("folder");
-
-		// To test on local file system, uncomment next 2 lines:
-		// Path test = Files.createTempDirectory("test");
-		// folder = test.resolve("folder");
-
-		assertFalse(Files.exists(folder));
-		Files.createFile(folder);
-		assertTrue(Files.exists(folder));
-		assertTrue(Files.isRegularFile(folder));
-		assertFalse(Files.isDirectory(folder));
-
-		try {
-			Files.createDirectory(folder);
-			fail("Should have thrown FileAlreadyExistsException");
-		} catch (FileAlreadyExistsException ex) {
-		}
-		assertFalse(Files.isDirectory(folder));
-
-		try {
-			Files.createDirectories(folder);
-			fail("Should have thrown FileAlreadyExistsException");
-		} catch (FileAlreadyExistsException ex) {
-		}
-		assertFalse(Files.isDirectory(folder));
-
-		Path child = folder.resolve("child");
-
-		try {
-			Files.createFile(child);
-			fail("Should have thrown NoSuchFileException");
-		} catch (NoSuchFileException ex) {
-		}
-		assertFalse(Files.exists(child));
-
-		assertTrue(Files.isRegularFile(folder));
-		assertFalse(Files.isDirectory(folder));
-		assertFalse(Files.isDirectory(child.getParent()));
-		assertFalse(Files.isDirectory(fs.getPath("folder/")));
-	}
-
-	/**
-	 * Test that BundleFileSystem does not allow a ZIP directory to also become
-	 * a file. See http://stackoverflow.com/questions/16588321/ as Java 7'z
-	 * ZIPFS normally allows this (!)
-	 * 
-	 * @throws Exception
-	 */
-	@Test
-	public void directoryAndFile() throws Exception {
-		Path folderSlash = fs.getPath("folder/");
-		Path folder = fs.getPath("folder");
-
-		// Uncomment next 3 lines to test on local FS
-		// Path test = Files.createTempDirectory("test");
-		// folderSlash = test.resolve("folder/");
-		// folder = test.resolve("folder");
-
-		assertFalse(Files.exists(folderSlash));
-
-		Files.createDirectory(folderSlash);
-		assertTrue(Files.exists(folderSlash));
-		assertFalse(Files.isRegularFile(folderSlash));
-		assertTrue(Files.isDirectory(folderSlash));
-
-		try {
-			Files.createDirectory(folderSlash);
-			fail("Should have thrown FileAlreadyExistsException");
-		} catch (FileAlreadyExistsException ex) {
-		}
-
-		try {
-			Files.createFile(folderSlash);
-			fail("Should have thrown IOException");
-		} catch (IOException ex) {
-		}
-
-		try {
-			Files.createFile(folder);
-			fail("Should have thrown IOException");
-		} catch (IOException ex) {
-		}
-
-		Path child = folderSlash.resolve("child");
-		Files.createFile(child);
-
-		assertTrue(Files.exists(folder));
-		assertTrue(Files.exists(folderSlash));
-
-		assertFalse(Files.isRegularFile(folder));
-		assertFalse(Files.isRegularFile(folderSlash));
-
-		assertTrue(Files.isDirectory(folder));
-		assertTrue(Files.isDirectory(folderSlash));
-
-	}
-
-	@Test
-	public void setLastModifiedTime() throws Exception {
-		Path root = fs.getRootDirectories().iterator().next();
-
-		Path folder = root.resolve("folder");
-		Files.createDirectory(folder);
-
-		Path file = root.resolve("file");
-		Files.createFile(file);
-
-		int manyDays = 365 * 12;
-		FileTime someTimeAgo = FileTime.from(manyDays, TimeUnit.DAYS);
-		Files.setLastModifiedTime(folder, someTimeAgo);
-		Files.setLastModifiedTime(file, someTimeAgo);
-		Files.setLastModifiedTime(root, someTimeAgo);
-
-		// Should be equal, +/- 2 seconds (allowing precision loss)
-		assertEquals((double) someTimeAgo.toMillis(), Files
-				.getLastModifiedTime(folder).toMillis(), 2001);
-		assertEquals((double) someTimeAgo.toMillis(), Files
-				.getLastModifiedTime(file).toMillis(), 2001);
-
-		// Fails as we'll get back -1 instead
-		// assertEquals((double)someTimeAgo.toMillis(),
-		// Files.getLastModifiedTime(root).toMillis(), 2001);
-	}
-
-	@Test
-	public void creationTime() throws Exception {
-		Path root = fs.getRootDirectories().iterator().next();
-
-		Path folder = root.resolve("folder");
-		Files.createDirectory(folder);
-
-		Path file = root.resolve("file");
-		Files.createFile(file);
-
-		int manyDays = 365 * 12;
-		FileTime someTimeAgo = FileTime.from(manyDays, TimeUnit.DAYS);
-
-		Files.getFileAttributeView(folder, BasicFileAttributeView.class)
-				.setTimes(null, null, someTimeAgo);
-		Files.getFileAttributeView(file, BasicFileAttributeView.class)
-				.setTimes(null, null, someTimeAgo);
-		Files.getFileAttributeView(root, BasicFileAttributeView.class)
-				.setTimes(null, null, someTimeAgo);
-
-		// Should be equal, +/- 2 seconds
-		assertEquals((double) someTimeAgo.toMillis(),
-				(double) ((FileTime) Files.getAttribute(file, "creationTime"))
-						.toMillis(), 2001);
-		assertEquals(
-				(double) someTimeAgo.toMillis(),
-				(double) ((FileTime) Files.getAttribute(folder, "creationTime"))
-						.toMillis(), 2001);
-
-		// FIXME: FAils with NullPointerException! :(
-		// assertEquals((double)someTimeAgo.toMillis(), (double)
-		// ((FileTime)Files.getAttribute(root, "creationTime")).toMillis(),
-		// 2001);
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
deleted file mode 100644
index ca116b0..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundleFileTypeDetector.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.fs.BundleFileTypeDetector;
-import org.junit.Test;
-
-public class TestBundleFileTypeDetector {
-	@Test
-	public void detectRoBundle() throws Exception {
-		BundleFileTypeDetector detector = new BundleFileTypeDetector();
-		try (Bundle bundle = Bundles.createBundle()) {
-			assertEquals("application/vnd.wf4ever.robundle+zip",
-					detector.probeContentType(bundle.getSource()));
-		}
-	}
-
-	@Test
-	public void detectEmptyZip() throws Exception {
-		BundleFileTypeDetector detector = new BundleFileTypeDetector();
-
-		Path zip = Files.createTempFile("test", ".bin");
-		zip.toFile().deleteOnExit();
-		try (ZipOutputStream zout = new ZipOutputStream(
-				Files.newOutputStream(zip))) {
-			ZipEntry entry = new ZipEntry("e");
-			zout.putNextEntry(entry);
-			zout.closeEntry();
-
-		}
-		assertEquals("application/zip", detector.probeContentType(zip));
-	}
-
-	@Test
-	public void detectNonZip() throws Exception {
-		BundleFileTypeDetector detector = new BundleFileTypeDetector();
-
-		Path file = Files.createTempFile("test", ".bin");
-		file.toFile().deleteOnExit();
-		Files.write(file, Arrays.asList("This is just some text",
-				"added here to make the file", "larger than 38 bytes"), Charset
-				.forName("UTF8"));
-		assertTrue(Files.size(file) > 38);
-		assertNull(detector.probeContentType(file));
-	}
-
-	@Test
-	public void detectEmpty() throws Exception {
-		BundleFileTypeDetector detector = new BundleFileTypeDetector();
-
-		Path file = Files.createTempFile("test", ".bin");
-		file.toFile().deleteOnExit();
-		assertEquals(0, Files.size(file));
-		assertNull(detector.probeContentType(file));
-	}
-
-	@Test
-	public void detectorSPI() throws Exception {
-		try (Bundle bundle = Bundles.createBundle()) {
-			assertEquals("application/vnd.wf4ever.robundle+zip",
-					Files.probeContentType(bundle.getSource()));
-		}
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
deleted file mode 100644
index 93f3cdb..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestBundlePaths.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.nio.file.Path;
-
-import org.junit.Test;
-
-public class TestBundlePaths extends Helper {
-
-	@Test
-	public void endsWith() throws Exception {
-		Path root = fs.getRootDirectory();
-		Path barBazAbs = root.resolve("bar/baz");
-		System.out.println(barBazAbs);
-		Path barBaz = root.relativize(barBazAbs);
-		assertEquals("bar/baz", barBaz.toString());
-		assertTrue(barBaz.endsWith("bar/baz"));
-		assertFalse(barBaz.endsWith("bar/../bar/baz"));
-		Path climber = barBaz.resolve("../baz");
-		assertEquals("bar/baz/../baz", climber.toString());
-		assertTrue(climber.endsWith("../baz"));
-		assertFalse(climber.endsWith("bar/baz"));
-		Path climberNorm = climber.normalize();
-		assertFalse(climberNorm.endsWith("../baz"));
-		assertTrue(climberNorm.endsWith("bar/baz"));
-	}
-
-	@Test
-	public void parent() throws Exception {
-		Path root = fs.getRootDirectory();
-		assertNull(root.getParent());
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
deleted file mode 100644
index cdbcae4..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestFileSystemProvider.java
+++ /dev/null
@@ -1,278 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.InvalidPathException;
-import java.nio.file.Path;
-import java.nio.file.spi.FileSystemProvider;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.fs.BundleFileSystemProvider;
-import org.junit.Assume;
-import org.junit.Test;
-
-public class TestFileSystemProvider {
-
-	@Test
-	public void getInstance() throws Exception {
-		assertSame(BundleFileSystemProvider.getInstance(),
-				BundleFileSystemProvider.getInstance());
-	}
-
-	@SuppressWarnings("deprecation")
-	@Test
-	public void getInstanceEquals() throws Exception {
-		assertEquals(BundleFileSystemProvider.getInstance(),
-				new BundleFileSystemProvider());
-	}
-
-	@SuppressWarnings("deprecation")
-	@Test
-	public void getInstanceHashCode() throws Exception {
-		assertEquals(BundleFileSystemProvider.getInstance().hashCode(),
-				new BundleFileSystemProvider().hashCode());
-	}
-
-	@SuppressWarnings({ "deprecation", "static-access" })
-	@Test
-	public void sameOpen() throws Exception {
-		assertSame(BundleFileSystemProvider.getInstance().openFilesystems,
-				new BundleFileSystemProvider().openFilesystems);
-	}
-
-	@Test
-	public void installedProviders() throws Exception {
-		for (FileSystemProvider provider : FileSystemProvider
-				.installedProviders()) {
-			if (provider instanceof BundleFileSystemProvider) {
-				assertSame(provider, BundleFileSystemProvider.getInstance());
-				return;
-			}
-		}
-		fail("Could not find BundleFileSystemProvider as installed provider");
-	}
-
-	@Test
-	public void newByURI() throws Exception {
-
-		Path path = Files.createTempFile("test", "zip");
-		path.toFile().deleteOnExit();
-		BundleFileSystemProvider.createBundleAsZip(path, null);
-
-		// HACK: Use a opaque version of app: with the file URI as scheme
-		// specific part
-		URI w = new URI("app", path.toUri().toASCIIString(), null);
-		try (FileSystem fs = FileSystems.newFileSystem(w,
-				Collections.<String, Object> emptyMap())) {
-			assertTrue(fs instanceof BundleFileSystem);
-		}
-	}
-
-	@Test
-	public void bundleWithSpaces() throws Exception {
-		Path path = Files.createTempFile("with several spaces", ".zip");
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-
-		URI app = new URI("app", path.toUri().toString(), null);
-		assertTrue(app.toASCIIString().contains("with%2520several%2520spaces"));
-
-		Map<String, Object> env = new HashMap<>();
-		env.put("create", "true");
-
-		try (FileSystem fs = FileSystems.newFileSystem(app, env)) {
-		}
-		assertTrue(Files.exists(path));
-		// Reopen from now-existing Path to check that the URI is
-		// escaped in the same way
-		try (FileSystem fs = BundleFileSystemProvider
-				.newFileSystemFromExisting(path)) {
-		}
-	}
-
-	@Test
-	public void bundleWithSpacesSource() throws Exception {
-		Path path = Files.createTempFile("with several spaces", ".zip");
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-
-		try (BundleFileSystem fs = BundleFileSystemProvider
-				.newFileSystemFromNew(path)) {
-			assertTrue(Files.exists(fs.getSource()));
-			assertEquals(path.toAbsolutePath(), fs.getSource());
-		}
-		assertTrue(Files.exists(path));
-	}
-
-	@Test
-	public void bundleWithUnicode() throws Exception {
-		Path path;
-		try {
-			path = Files.createTempFile("with\u2301unicode\u263bhere", ".zip");
-		} catch (InvalidPathException ex) {
-			Assume.assumeNoException(
-					"Can't test unicode filename, as -Dfile.encoding="
-							+ System.getProperty("file.encoding"), ex);
-			return;
-		}
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-		// System.out.println(path); // Should contain a electrical symbol and
-		// smiley
-		URI app = new URI("app", path.toUri().toString(), null);
-		// FIXME: The below passes on Windows 8 but not in Linux!?
-		// System.out.println(app);
-		// assertTrue(app.toString().contains("\u2301"));
-		// assertTrue(app.toString().contains("\u263b"));
-
-		Map<String, Object> env = new HashMap<>();
-		env.put("create", "true");
-
-		try (FileSystem fs = FileSystems.newFileSystem(app, env)) {
-		}
-		assertTrue(Files.exists(path));
-		// Reopen from now-existing Path to check that the URI is
-		// escaped in the same way
-		try (FileSystem fs = BundleFileSystemProvider
-				.newFileSystemFromExisting(path)) {
-		}
-	}
-
-	@Test
-	public void newFileSystemFromExisting() throws Exception {
-		Path path = Files.createTempFile("test", null);
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-		// Make the Bundle first
-		BundleFileSystemProvider.createBundleAsZip(path, "application/x-test");
-		assertTrue(Files.exists(path));
-
-		try (BundleFileSystem f = BundleFileSystemProvider
-				.newFileSystemFromExisting(path)) {
-			assertEquals(path, f.getSource());
-			assertEquals(
-					"application/x-test",
-					Files.readAllLines(
-							f.getRootDirectory().resolve("mimetype"),
-							Charset.forName("ASCII")).get(0));
-		}
-	}
-
-	@Test
-	public void newFileSystemFromExistingPath() throws Exception {
-		Path path = Files.createTempFile("test", null);
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-		// Make the Bundle first as we can't pass inn create=true :/
-		BundleFileSystemProvider.createBundleAsZip(path, "application/x-test");
-		assertTrue(Files.exists(path));
-
-		try (FileSystem fs = FileSystems.newFileSystem(path, getClass()
-				.getClassLoader())) {
-			assertEquals(
-					"application/x-test",
-					Files.readAllLines(fs.getPath("mimetype"),
-							Charset.forName("ASCII")).get(0));
-		}
-	}
-
-	@Test
-	public void newFileSystemFromNewDefaultMime() throws Exception {
-		Path path = Files.createTempFile("test", null);
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-		BundleFileSystem f = BundleFileSystemProvider
-				.newFileSystemFromNew(path);
-		assertTrue(Files.exists(path));
-		assertEquals(path, f.getSource());
-		assertEquals(
-				"application/vnd.wf4ever.robundle+zip",
-				Files.readAllLines(f.getRootDirectory().resolve("mimetype"),
-						Charset.forName("ASCII")).get(0));
-	}
-
-	@Test
-	public void newFileSystemURI() throws Exception {
-		Path path = Files.createTempFile("test", null);
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-
-		URI uri = new URI("app", path.toUri().toASCIIString(), (String) null);
-
-		Map<String, String> env = new HashMap<>();
-		env.put("create", "true");
-		// And the optional mimetype
-		env.put("mimetype", "application/x-test2");
-		FileSystem f = FileSystems.newFileSystem(uri, env, getClass()
-				.getClassLoader());
-		assertTrue(Files.exists(path));
-		assertEquals(
-				"application/x-test2",
-				Files.readAllLines(f.getPath("mimetype"),
-						Charset.forName("ASCII")).get(0));
-	}
-
-	@Test
-	public void newFileSystemFromNew() throws Exception {
-		Path path = Files.createTempFile("test", null);
-		path.toFile().deleteOnExit();
-		Files.delete(path);
-		path.toUri();
-		BundleFileSystem f = BundleFileSystemProvider.newFileSystemFromNew(
-				path, "application/x-test2");
-		assertTrue(Files.exists(path));
-		assertEquals(path, f.getSource());
-		assertEquals(
-				"application/x-test2",
-				Files.readAllLines(f.getRootDirectory().resolve("mimetype"),
-						Charset.forName("ASCII")).get(0));
-	}
-
-	@Test
-	public void newFileSystemFromTemporary() throws Exception {
-		Path source;
-		try (BundleFileSystem f = BundleFileSystemProvider
-				.newFileSystemFromTemporary()) {
-			source = f.getSource();
-			assertTrue(Files.exists(source));
-			assertEquals(
-					"application/vnd.wf4ever.robundle+zip",
-					Files.readAllLines(
-							f.getRootDirectory().resolve("mimetype"),
-							Charset.forName("ASCII")).get(0));
-		}
-		Files.delete(source);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java
deleted file mode 100644
index 95939a8..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/fs/TestZipFS.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.net.URI;
-import java.nio.channels.FileChannel;
-import java.nio.file.DirectoryStream;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.NoSuchFileException;
-import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-import java.nio.file.attribute.FileTime;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestZipFS {
-
-	private static Path zip;
-	private FileSystem fs;
-
-	@Test
-	public void fileChannelCreateNew() throws Exception {
-		Path test = fs.getPath("test.txt");
-		EnumSet<StandardOpenOption> options = EnumSet.<StandardOpenOption> of(
-				StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE);
-		fs.provider().newFileChannel(test, options);
-	}
-
-	@Test
-	public void fileChannelCreate() throws Exception {
-		try {
-			Path test = fs.getPath("test.txt");
-			FileChannel.open(test, StandardOpenOption.WRITE,
-					StandardOpenOption.CREATE).close();
-		} catch (NoSuchFileException ex) {
-			System.err.println("Unexpected exception");
-			ex.printStackTrace();
-			// Bug in JDK
-		}
-	}
-
-	@Test(expected = FileAlreadyExistsException.class)
-	public void fileChannelCreateFails() throws Exception {
-		Path test = fs.getPath("test.txt");
-		Files.createFile(test);
-		FileChannel.open(test, StandardOpenOption.WRITE,
-				StandardOpenOption.CREATE_NEW).close();
-	}
-
-	@Test
-	public void fileChannelTruncate() throws Exception {
-		Path test = fs.getPath("test.txt");
-		Files.write(test, new byte[1024]);
-		assertEquals(1024, Files.size(test));
-		FileChannel.open(test, StandardOpenOption.WRITE,
-				StandardOpenOption.TRUNCATE_EXISTING).close();
-		assertEquals(0, Files.size(test));
-	}
-
-	/**
-	 * Verifies http://stackoverflow.com/questions/16588321/ as both ZIP format
-	 * and Java 7 ZIPFS allows a folder and file to have the same name.
-	 * 
-	 */
-	@Test
-	public void directoryOrFile() throws Exception {
-		Path folder = fs.getPath("folder");
-		assertFalse(Files.exists(folder));
-		Files.createFile(folder);
-		assertTrue(Files.exists(folder));
-		assertTrue(Files.isRegularFile(folder));
-		assertFalse(Files.isDirectory(folder));
-
-		try {
-			Path folderCreated = Files.createDirectory(folder);
-			assertEquals(folder, folderCreated);
-			folder = folderCreated;
-			System.out.println(folder + " " + folderCreated);
-
-			// Disable for now, just to see where this leads
-			// fail("Should have thrown FileAlreadyExistsException");
-		} catch (FileAlreadyExistsException ex) {
-		}
-
-		// For some reason the second createDirectory() fails correctly
-		try {
-			Files.createDirectory(folder);
-			fail("Should have thrown FileAlreadyExistsException");
-		} catch (FileAlreadyExistsException ex) {
-		}
-
-		Path child = folder.resolve("child");
-		Files.createFile(child);
-
-		// Look, it's both a file and folder!
-		// Can this be asserted?
-		assertTrue(Files.isRegularFile(folder));
-		// Yes, if you include the final /
-		assertTrue(Files.isDirectory(fs.getPath("folder/")));
-		// But not the parent
-		// assertTrue(Files.isDirectory(child.getParent()));
-		// Or the original Path
-		// assertTrue(Files.isDirectory(folder));
-
-		fs.close();
-		// What if we open it again.. can we find both?
-		try (FileSystem fs2 = FileSystems.newFileSystem(zip, null)) {
-			assertTrue(Files.isRegularFile(fs2.getPath("folder")));
-			assertTrue(Files.isRegularFile(fs2.getPath("folder/child")));
-			assertTrue(Files.isDirectory(fs2.getPath("folder/")));
-
-			// We can even list the folder
-			try (DirectoryStream<Path> s = Files.newDirectoryStream(fs2
-					.getPath("folder/"))) {
-				boolean found = false;
-				for (Path p : s) {
-					found = p.endsWith("child");
-				}
-				assertTrue("Did not find 'child'", found);
-			}
-			// But if we list the root, do we find "folder" or "folder/"?
-			Path root = fs2.getRootDirectories().iterator().next();
-			try (DirectoryStream<Path> s = Files.newDirectoryStream(root)) {
-				List<String> paths = new ArrayList<>();
-				for (Path p : s) {
-					paths.add(p.toString());
-				}
-				// We find both!
-				assertEquals(2, paths.size());
-				assertTrue(paths.contains("/folder"));
-				assertTrue(paths.contains("/folder/"));
-			}
-			// SO does that mean this is a feature, and not a bug?
-			// See http://stackoverflow.com/questions/16588321/ for more
-		}
-
-	}
-
-	@Test
-	public void setLastModifiedTime() throws Exception {
-		Path root = fs.getRootDirectories().iterator().next();
-
-		Path folder = root.resolve("folder");
-		Files.createDirectory(folder);
-
-		Path file = root.resolve("file");
-		Files.createFile(file);
-
-		FileTime someTimeAgo = FileTime.from(365 * 12, TimeUnit.DAYS);
-		Files.setLastModifiedTime(folder, someTimeAgo);
-		Files.setLastModifiedTime(file, someTimeAgo);
-		try {
-			Files.setLastModifiedTime(root, someTimeAgo);
-		} catch (NoSuchFileException ex) {
-			System.err
-					.println("Unexpected failure of setLastModifiedTime on root");
-			ex.printStackTrace();
-		}
-	}
-
-	@Before
-	public void tempZipFS() throws Exception {
-		zip = Files.createTempFile("test", ".zip");
-		Files.delete(zip);
-		System.out.println(zip);
-		URI jar = new URI("jar", zip.toUri().toString(), null);
-		Map<String, Object> env = new HashMap<>();
-		env.put("create", "true");
-		fs = FileSystems.newFileSystem(jar, env);
-	}
-
-	@After
-	public void deleteTempFS() throws IOException {
-		fs.close();
-		Files.deleteIfExists(zip);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
deleted file mode 100644
index 3ca4030..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifest.java
+++ /dev/null
@@ -1,280 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.apache.taverna.robundle.manifest.RDFToManifest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.hp.hpl.jena.query.Query;
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-import com.hp.hpl.jena.query.QueryFactory;
-import com.hp.hpl.jena.query.QuerySolution;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.Resource;
-
-@SuppressWarnings({ "deprecation", "unused" })
-public class TestManifest {
-	private Bundle bundle;
-
-	@Test
-	public void populateFromBundle() throws Exception {
-		Path r = bundle.getRoot();
-		URI base = r.toUri();
-
-		Manifest manifest = new Manifest(bundle);
-		manifest.populateFromBundle();
-
-		List<String> uris = new ArrayList<>();
-		for (PathMetadata s : manifest.getAggregates()) {
-			uris.add(s.getFile().toString());
-			Path path = s.getFile();
-			assertNotNull(path.getParent());
-			assertEquals(Manifest.withSlash(path.getParent()), s.getFolder());
-			if (s.getFile().equals(URI.create("/f/nested/empty/"))) {
-				continue;
-				// Folder's don't need proxy and createdOn
-			}
-			assertEquals("urn", s.getProxy().getScheme());
-			UUID.fromString(s.getProxy().getSchemeSpecificPart()
-					.replace("uuid:", ""));
-			assertEquals(s.getCreatedOn(), Files.getLastModifiedTime(path));
-		}
-		//System.out.println(uris);
-		assertFalse(uris.contains("/mimetype"));
-		assertFalse(uris.contains("/META-INF"));
-		assertTrue(uris.remove("/hello.txt"));
-		assertTrue(uris.remove("/f/file1.txt"));
-		assertTrue(uris.remove("/f/file2.txt"));
-		assertTrue(uris.remove("/f/file3.txt"));
-		assertTrue(uris.remove("/f/nested/file1.txt"));
-		assertTrue(uris.remove("/f/nested/empty/"));
-		assertTrue(uris.isEmpty());
-	}
-
-	@Test
-	public void repopulateFromBundle() throws Exception {
-		Path r = bundle.getRoot();
-		URI base = r.toUri();
-
-		Manifest manifest = new Manifest(bundle);
-		manifest.populateFromBundle();
-		// Second populate should not add additional entries
-		manifest.populateFromBundle();
-
-		List<String> uris = new ArrayList<>();
-		for (PathMetadata s : manifest.getAggregates()) {
-			uris.add(s.getFile().toString());
-			Path path = s.getFile();
-			assertNotNull(path.getParent());
-			assertEquals(Manifest.withSlash(path.getParent()), s.getFolder());
-			if (s.getFile().equals(URI.create("/f/nested/empty/"))) {
-				continue;
-				// Folder's don't need proxy and createdOn
-			}
-			assertEquals("urn", s.getProxy().getScheme());
-			UUID.fromString(s.getProxy().getSchemeSpecificPart()
-					.replace("uuid:", ""));
-			assertEquals(s.getCreatedOn(), Files.getLastModifiedTime(path));
-		}
-		//System.out.println(uris);
-		assertFalse(uris.contains("/mimetype"));
-		assertFalse(uris.contains("/META-INF"));
-		assertTrue(uris.remove("/hello.txt"));
-		assertTrue(uris.remove("/f/file1.txt"));
-		assertTrue(uris.remove("/f/file2.txt"));
-		assertTrue(uris.remove("/f/file3.txt"));
-		assertTrue(uris.remove("/f/nested/file1.txt"));
-		assertTrue(uris.remove("/f/nested/empty/"));
-		assertTrue("Unexpected uri: " + uris, uris.isEmpty());
-	}
-
-	private Path uri2path(URI base, URI uri) {
-		URI fileUri = base.resolve(uri);
-		return Paths.get(fileUri);
-	}
-
-	@Test
-	public void writeAsJsonLD() throws Exception {
-		Manifest manifest = new Manifest(bundle);
-		manifest.populateFromBundle();
-		PathMetadata helloMeta = null;
-		for (PathMetadata meta : manifest.getAggregates()) {
-			if (meta.getFile().endsWith("hello.txt")) {
-				helloMeta = meta;
-			}
-		}
-		assertNotNull("No metadata for </hello.txt>", helloMeta);
-
-		Path jsonld = manifest.writeAsJsonLD();
-		assertEquals(bundle.getFileSystem().getPath("/.ro", "manifest.json"),
-				jsonld);
-		assertTrue(Files.exists(jsonld));
-		String manifestStr = new String(Files.readAllBytes(jsonld), "UTF8");
-		//System.out.println(manifestStr);
-
-		// Rough and ready that somethings are there
-		// TODO: Read back and check as JSON structure
-		// TODO: Check as JSON-LD graph
-		assertTrue(manifestStr.contains("@context"));
-		assertTrue(manifestStr.contains("https://w3id.org/bundle/context"));
-		assertTrue(manifestStr.contains("/f/file2.txt"));
-		assertTrue(manifestStr.contains("/hello.txt"));
-		assertTrue(manifestStr.contains(helloMeta.getProxy().toASCIIString()));
-
-		// Parse back as JSON-LD
-		try (InputStream jsonIn = Files.newInputStream(jsonld)) {
-			URI baseURI = jsonld.toUri();
-			Model model = RDFToManifest.jsonLdAsJenaModel(jsonIn, baseURI);
-			model.write(new ByteArrayOutputStream(), "TURTLE", baseURI.toString());
-			model.write(new ByteArrayOutputStream(), "RDF/XML", baseURI.toString());
-
-			String queryStr = "PREFIX ore: <http://www.openarchives.org/ore/terms/>"
-					+ "PREFIX bundle: <http://purl.org/wf4ever/bundle#>"
-					+ "SELECT ?file ?proxy "
-					+ "WHERE {"
-					+ "    ?ro ore:aggregates ?file ."
-					+ "    OPTIONAL { ?file bundle:bundledAs ?proxy . } " + "}";
-			Query query = QueryFactory.create(queryStr);
-			QueryExecution qexec = QueryExecutionFactory.create(query, model);
-
-			try {
-				ResultSet results = qexec.execSelect();
-				int aggregationCount = 0;
-				for (; results.hasNext(); aggregationCount++) {
-					QuerySolution soln = results.nextSolution();
-					Resource fileRes = soln.getResource("file");
-					Resource proxy = soln.getResource("proxy");
-					//System.out.println("File: " + fileRes);
-					//System.out.println(asURI(fileRes));
-
-					Path file = Paths.get(asURI(fileRes));
-					assertTrue(Files.exists(file));
-					PathMetadata meta = manifest.getAggregation(file);
-					assertEquals(meta.getProxy(), asURI(proxy));
-				}
-				assertEquals("Could not find all aggregations from manifest: "
-						+ manifest.getAggregates(), manifest.getAggregates()
-						.size(), aggregationCount);
-			} finally {
-				// WHY is not QueryExecution an instance of Closable?
-				qexec.close();
-			}
-		}
-	}
-
-	@Test
-	public void readManifest() throws Exception {
-		Manifest manifest = new Manifest(bundle);
-
-		new RDFToManifest().readTo(
-				getClass().getResourceAsStream("/manifest.json"), manifest,
-				manifest.getBaseURI().resolve("does/not/exist"));
-
-		Path r = bundle.getRoot();
-		assertNotNull(manifest.getAggregation(r.resolve("/README.txt")));
-		PathMetadata readme = manifest.getAggregation(r.resolve("/README.txt"));
-		assertEquals("http://example.com/foaf#bob", readme.getCreatedBy()
-				.getUri().toString());
-		assertEquals("Bob Builder",
-				manifest.getAggregation(r.resolve("/README.txt"))
-						.getCreatedBy().getName());
-		assertEquals("text/plain",
-				manifest.getAggregation(r.resolve("/README.txt"))
-						.getMediatype());
-
-		assertNull(manifest.getAggregation(r.resolve("/README.txt"))
-				.getBundledAs());
-
-		// Disabled: RO Bundle in flux on how to put external URIs in folders
-		// assertNotNull(manifest.getAggregation(
-		// URI.create("http://example.com/comments.txt")).getProxy());
-
-		//System.out.println(manifest.getAnnotations());
-
-		assertEquals(3, manifest.getAnnotations().size());
-
-	}
-
-	private URI asURI(Resource proxy) {
-		if (proxy == null) {
-			return null;
-		}
-		String uri = proxy.getURI();
-		if (uri == null) {
-			return null;
-		}
-		return bundle.getRoot().toUri().resolve(uri);
-	}
-
-	@Before
-	public void exampleBundle() throws IOException {
-		Path source;
-		try (Bundle bundle = Bundles.createBundle()) {
-			source = bundle.getSource();
-			Path r = bundle.getRoot();
-			Files.createFile(r.resolve("hello.txt"));
-			Path f = r.resolve("f");
-			Files.createDirectory(f);
-			Files.createFile(f.resolve("file3.txt"));
-			Files.createFile(f.resolve("file2.txt"));
-			Files.createFile(f.resolve("file1.txt"));
-
-			Path nested = f.resolve("nested");
-			Files.createDirectory(nested);
-			Files.createFile(nested.resolve("file1.txt"));
-
-			Files.createDirectory(nested.resolve("empty"));
-			bundle.setDeleteOnClose(false);
-		}
-		bundle = Bundles.openBundle(source);
-	}
-
-	@After
-	public void closeBundle() throws IOException {
-		bundle.close();
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
deleted file mode 100644
index efab8a9..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestManifestJSON.java
+++ /dev/null
@@ -1,275 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.attribute.FileTime;
-import java.util.Calendar;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Agent;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathAnnotation;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class TestManifestJSON {
-	@Test
-	public void createBundle() throws Exception {
-		// Create bundle as in Example 3 of the specification
-		// http://wf4ever.github.io/ro/bundle/2013-05-21/
-		try (Bundle bundle = Bundles.createBundle()) {
-			Calendar createdOnCal = Calendar.getInstance(
-					TimeZone.getTimeZone("Z"), Locale.ENGLISH);
-			// "2013-03-05T17:29:03Z"
-			// Remember months are 0-based in java.util.Calendar!
-			createdOnCal.set(2013, 3 - 1, 5, 17, 29, 03);
-			createdOnCal.set(Calendar.MILLISECOND, 0);
-			FileTime createdOn = FileTime.fromMillis(createdOnCal
-					.getTimeInMillis());
-			Manifest manifest = bundle.getManifest();
-			manifest.setCreatedOn(createdOn);
-			Agent createdBy = new Agent("Alice W. Land");
-			createdBy.setUri(URI.create("http://example.com/foaf#alice"));
-			createdBy.setOrcid(URI
-					.create("http://orcid.org/0000-0002-1825-0097"));
-
-			manifest.setCreatedBy(createdBy);
-
-			Path evolutionPath = bundle.getPath(".ro/evolution.ttl");
-			Files.createDirectories(evolutionPath.getParent());
-			Bundles.setStringValue(
-					evolutionPath,
-					"<manifest.json> < http://purl.org/pav/retrievedFrom> "
-							+ "<http://wf4ever.github.io/ro/bundle/2013-05-21/example/.ro/manifest.json> .");
-			manifest.getHistory().add(evolutionPath);
-
-			Path jpeg = bundle.getPath("folder/soup.jpeg");
-			Files.createDirectory(jpeg.getParent());
-			Files.createFile(jpeg);
-			// register in manifest first
-			bundle.getManifest().getAggregation(jpeg);
-
-			URI blog = URI.create("http://example.com/blog/");
-			bundle.getManifest().getAggregation(blog);
-
-			Path readme = bundle.getPath("README.txt");
-			Files.createFile(readme);
-			PathMetadata readmeMeta = bundle.getManifest().getAggregation(
-					readme);
-			readmeMeta.setMediatype("text/plain");
-			Agent readmeCreatedby = new Agent("Bob Builder");
-			readmeCreatedby.setUri(URI.create("http://example.com/foaf#bob"));
-			readmeMeta.setCreatedBy(readmeCreatedby);
-
-			// 2013-02-12T19:37:32.939Z
-			createdOnCal.set(2013, 2 - 1, 12, 19, 37, 32);
-			createdOnCal.set(Calendar.MILLISECOND, 939);
-			createdOn = FileTime.fromMillis(createdOnCal.getTimeInMillis());
-			Files.setLastModifiedTime(readme, createdOn);
-			readmeMeta.setCreatedOn(createdOn);
-
-			PathMetadata comments = bundle.getManifest().getAggregation(
-					URI.create("http://example.com/comments.txt"));
-			comments.getOrCreateBundledAs()
-					.setURI(URI
-							.create("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644"));
-			comments.getOrCreateBundledAs().setFolder(
-					bundle.getPath("/folder/"));
-			comments.getOrCreateBundledAs().setFilename("external.txt");
-
-			PathAnnotation jpegAnn = new PathAnnotation();
-			jpegAnn.setAbout(jpeg);
-			Path soupProps = Bundles.getAnnotations(bundle).resolve(
-					"soup-properties.ttl");
-			Bundles.setStringValue(soupProps,
-					"</folder/soup.jpeg> <http://xmlns.com/foaf/0.1/depicts> "
-							+ "<http://example.com/menu/tomato-soup> .");
-			jpegAnn.setContent(soupProps);
-			// jpegAnn.setContent(URI.create("annotations/soup-properties.ttl"));
-			jpegAnn.setUri(URI
-					.create("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf"));
-			manifest.getAnnotations().add(jpegAnn);
-
-			PathAnnotation proxyAnn = new PathAnnotation();
-			proxyAnn.setAbout(comments.getBundledAs().getURI());
-			proxyAnn.setContent(URI
-					.create("http://example.com/blog/they-aggregated-our-file"));
-			manifest.getAnnotations().add(proxyAnn);
-
-			Path metaAnn = Bundles.getAnnotations(bundle).resolve(
-					"a-meta-annotation-in-this-ro.txt");
-			Bundles.setStringValue(metaAnn,
-					"This bundle contains an annotation about /folder/soup.jpeg");
-
-			PathAnnotation metaAnnotation = new PathAnnotation();
-			metaAnnotation.setAbout(bundle.getRoot());
-			metaAnnotation
-					.getAboutList()
-					.add(URI.create("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf"));
-
-			metaAnnotation.setContent(metaAnn);
-			manifest.getAnnotations().add(metaAnnotation);
-
-			Path jsonPath = bundle.getManifest().writeAsJsonLD();
-			ObjectMapper objectMapper = new ObjectMapper();
-			String jsonStr = Bundles.getStringValue(jsonPath);
-			//System.out.println(jsonStr);
-			JsonNode json = objectMapper.readTree(jsonStr);
-			checkManifestJson(json);
-		}
-	}
-
-	public void checkManifestJson(JsonNode json) {
-		JsonNode context = json.get("@context");
-		assertNotNull("Could not find @context", context);
-		assertTrue("@context SHOULD be an array", context.isArray());
-		assertTrue("@context SHOULD include a context", context.size() > 0);
-		JsonNode lastContext = context.get(context.size() - 1);
-		assertEquals(
-				"@context SHOULD include https://w3id.org/bundle/context as last item",
-				"https://w3id.org/bundle/context", lastContext.asText());
-
-		assertEquals("/", json.get("id").asText());
-
-		JsonNode manifest = json.get("manifest");
-		if (manifest.isValueNode()) {
-			assertEquals(
-					"manifest SHOULD be literal value \"manifest.json\" or list",
-					"manifest.json", manifest.asText());
-		} else {
-			assertTrue("manifest is neither literal or list",
-					manifest.isArray());
-			boolean found = false;
-			for (JsonNode n : manifest) {
-				found = n.asText().equals("manifest.json");
-				if (found) {
-					break;
-				}
-			}
-			;
-			assertTrue("Could not find 'manifest.json' in 'manifest' list: "
-					+ manifest, found);
-		}
-
-		assertEquals("2013-03-05T17:29:03Z", json.get("createdOn").asText());
-		JsonNode createdBy = json.get("createdBy");
-		assertNotNull("Could not find createdBy", createdBy);
-		assertEquals("http://example.com/foaf#alice", createdBy.get("uri")
-				.asText());
-		assertEquals("http://orcid.org/0000-0002-1825-0097",
-				createdBy.get("orcid").asText());
-		assertEquals("Alice W. Land", createdBy.get("name").asText());
-
-		JsonNode history = json.get("history");
-		if (history.isValueNode()) {
-			assertEquals("evolution.ttl", history.asText());
-		} else {
-			assertEquals("evolution.ttl", history.get(0).asText());
-		}
-
-		JsonNode aggregates = json.get("aggregates");
-		assertTrue("aggregates not a list", aggregates.isArray());
-		JsonNode soup = aggregates.get(0);
-		if (soup.isValueNode()) {
-			assertEquals("/folder/soup.jpeg", soup.asText());
-		} else {
-			assertEquals("/folder/soup.jpeg", soup.get("uri").asText());
-		}
-
-		JsonNode blog = aggregates.get(1);
-		if (blog.isValueNode()) {
-			assertEquals("http://example.com/blog/", blog.asText());
-		} else {
-			assertEquals("http://example.com/blog/", blog.get("uri").asText());
-		}
-
-		JsonNode readme = aggregates.get(2);
-		assertEquals("/README.txt", readme.get("uri").asText());
-		assertEquals("text/plain", readme.get("mediatype").asText());
-		assertEquals("2013-02-12T19:37:32.939Z", readme.get("createdOn")
-				.asText());
-		JsonNode readmeCreatedBy = readme.get("createdBy");
-		assertEquals("http://example.com/foaf#bob", readmeCreatedBy.get("uri")
-				.asText());
-		assertEquals("Bob Builder", readmeCreatedBy.get("name").asText());
-
-		JsonNode comments = aggregates.get(3);
-		assertEquals("http://example.com/comments.txt", comments.get("uri")
-				.asText());
-		JsonNode bundledAs = comments.get("bundledAs");
-		assertEquals("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644", bundledAs
-				.get("uri").asText());
-		assertEquals("/folder/", bundledAs.get("folder").asText());
-		assertEquals("external.txt", bundledAs.get("filename").asText());
-
-		JsonNode annotations = json.get("annotations");
-		assertTrue("annotations MUST be a list", annotations.isArray());
-
-		JsonNode ann0 = annotations.get(0);
-		assertEquals("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf",
-				ann0.get("uri").asText());
-		assertEquals("/folder/soup.jpeg", ann0.get("about").asText());
-		assertEquals("annotations/soup-properties.ttl", ann0.get("content")
-				.asText());
-
-		JsonNode ann1 = annotations.get(1);
-		assertNull(ann1.get("annotation"));
-		assertEquals("urn:uuid:a0cf8616-bee4-4a71-b21e-c60e6499a644",
-				ann1.get("about").asText());
-		assertEquals("http://example.com/blog/they-aggregated-our-file", ann1
-				.get("content").asText());
-
-		JsonNode ann2 = annotations.get(2);
-		assertNull(ann2.get("annotation"));
-		JsonNode about = ann2.get("about");
-		assertTrue("about was not a list", about.isArray());
-		assertEquals("/", about.get(0).asText());
-		assertEquals("urn:uuid:d67466b4-3aeb-4855-8203-90febe71abdf", about
-				.get(1).asText());
-		assertEquals("annotations/a-meta-annotation-in-this-ro.txt",
-				ann2.get("content").asText());
-
-	}
-
-	@Test
-	public void checkJsonFromSpec() throws Exception {
-		// Verify that our test confirms the existing spec example
-		ObjectMapper objectMapper = new ObjectMapper();
-		JsonNode json = objectMapper.readTree(getClass().getResource(
-				"/manifest.json"));
-		checkManifestJson(json);
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
deleted file mode 100644
index 2557973..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/TestRDFToManifest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-import java.util.Map;
-
-import org.junit.Test;
-
-import com.github.jsonldjava.core.DocumentLoader;
-
-//import com.github.jsonldjava.core.DocumentLoader;
-
-public class TestRDFToManifest {
-	private static final String CONTEXT = "https://w3id.org/bundle/context";
-
-	@Test
-	public void contextLoadedFromJarCache() throws Exception {
-		// RDFToManifest.makeBaseURI(); // trigger static{} block
-		@SuppressWarnings("unchecked")
-		Map<String, Object> context = (Map<String, Object>) new DocumentLoader()
-				.fromURL(new URL(CONTEXT));
-		// FIXME: jsonld-java 0.3 and later uses DocumentLoader instead of
-		// JSONUtils
-		// Map<String, Object> context = (Map<String, Object>)
-		// JSONUtils.fromURL(new URL(CONTEXT));
-		Object retrievedFrom = context.get("http://purl.org/pav/retrievedFrom");
-		assertNotNull("Did not load context from cache: " + CONTEXT,
-				retrievedFrom);
-
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
deleted file mode 100644
index 5286d67..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/combine/TestCombineManifest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package org.apache.taverna.robundle.manifest.combine;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Agent;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.junit.Test;
-
-public class TestCombineManifest {
-	@Test
-	public void convertAslanidi() throws Exception {
-		Path file = Files.createTempFile("aslanidi", ".zip");
-		try (InputStream src = getClass().getResourceAsStream(
-				"/combine/aslanidi_purkinje_model_2009.zip")) {
-			Files.copy(src, file, StandardCopyOption.REPLACE_EXISTING);
-		}
-		System.out.println(file);
-		try (Bundle bundle = Bundles.openBundle(file)) {
-			Manifest manifest = bundle.getManifest();
-			Path manifestXml = bundle.getRoot().resolve("manifest.xml");
-			assertTrue("manifest.xml not listed in " + manifest.getManifest(),
-					manifest.getManifest().contains(manifestXml));
-
-			// List<Agent> manifestCreator = manifest.getCreatedBy();
-			// Agent createdBy = manifestCreator.get(0);
-			// assertEquals("Gary Mirams", createdBy.getName());
-			// assertEquals("mbox:gary.mirams@cs.ox.ac.uk", createdBy.getUri());
-			// assertEquals("2014-02-06T22:01:58Z",
-			// manifest.getCreatedOn().toString());
-			//
-			Path csvPath = bundle.getRoot().resolve(
-					"outputs_degree_of_block.csv");
-			PathMetadata csv = manifest.getAggregation(csvPath);
-			assertEquals("text/csv", csv.getMediatype());
-			Agent csvCreator = csv.getCreatedBy();
-			assertEquals("Gary Mirams", csvCreator.getName());
-			assertEquals("mbox:gary.mirams@cs.ox.ac.uk", csvCreator.getUri()
-					.toString());
-			assertEquals("2014-02-06T22:01:58Z", csv.getCreatedOn().toString());
-
-		}
-	}
-
-	@Test
-	public void convertBoris() throws Exception {
-		Path file = Files.createTempFile("Boris", ".omex");
-		try (InputStream src = getClass().getResourceAsStream(
-				"/combine/Boris.omex")) {
-			Files.copy(src, file, StandardCopyOption.REPLACE_EXISTING);
-		}
-		//System.out.println(file);
-		try (Bundle bundle = Bundles.openBundle(file)) {
-			Manifest manifest = bundle.getManifest();
-			Path manifestXml = bundle.getRoot().resolve("manifest.xml");
-			assertTrue("manifest.xml not listed in " + manifest.getManifest(),
-					manifest.getManifest().contains(manifestXml));
-
-			assertEquals("2013-05-28T16:50:43.999Z", manifest.getCreatedOn()
-					.toString());
-
-			// Can't test these - as Boris.omex manifest.xml only
-			// list these as unconnected bnodes
-			// List<Agent> manifestCreator = manifest.getCreatedBy();
-			// Agent createdBy = manifestCreator.get(0);
-			// assertEquals("Frank Bergmann", createdBy.getName());
-			// assertEquals("mbox:fbergman@caltech.edu", createdBy.getUri());
-			//
-		}
-
-	}
-
-	@Test
-	public void convertDirectoryMadness() throws Exception {
-		Path file = Files.createTempFile("DirectoryMadness", ".omex");
-		try (InputStream src = getClass().getResourceAsStream(
-				"/combine/DirectoryMadness.omex")) {
-			Files.copy(src, file, StandardCopyOption.REPLACE_EXISTING);
-		}
-		//System.out.println(file);
-		try (Bundle bundle = Bundles.openBundle(file)) {
-			Manifest manifest = bundle.getManifest();
-			Path manifestXml = bundle.getRoot().resolve("manifest.xml");
-			assertTrue("manifest.xml not listed in " + manifest.getManifest(),
-					manifest.getManifest().contains(manifestXml));
-
-			Path boris = bundle.getRoot().resolve("BorisEJB.xml");
-			PathMetadata borisMeta = bundle.getManifest().getAggregation(boris);
-			assertEquals(
-					URI.create("http://identifiers.org/combine.specifications/sbml"),
-					borisMeta.getConformsTo());
-			// dcterms:modified
-			assertEquals("2013-04-05T12:50:56Z", borisMeta.getCreatedOn()
-					.toString());
-
-			Path paperPdf = bundle.getRoot().resolve("paper")
-					.resolve("Kholodenko2000.pdf");
-			PathMetadata paperMeta = bundle.getManifest().getAggregation(
-					paperPdf);
-			assertEquals("application/pdf", paperMeta.getMediatype());
-
-			URI biomd = URI
-					.create("http://www.ebi.ac.uk/biomodels-main/BIOMD0000000010");
-			PathMetadata biomdMeta = bundle.getManifest().getAggregation(biomd);
-			assertEquals(
-					URI.create("http://identifiers.org/combine.specifications/sbml"),
-					biomdMeta.getConformsTo());
-
-		}
-
-	}
-
-	@Test
-	public void convertDirectoryMadnessZipped() throws Exception {
-		Path file = Files.createTempFile("DirectoryMadnessZipped", ".omex");
-		try (InputStream src = getClass().getResourceAsStream(
-				"/combine/DirectoryMadnessZipped.omex")) {
-			Files.copy(src, file, StandardCopyOption.REPLACE_EXISTING);
-		}
-		//System.out.println(file);
-		try (Bundle bundle = Bundles.openBundle(file)) {
-
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
deleted file mode 100644
index 539c289..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/odf/TestODFManifest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.taverna.robundle.manifest.odf;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.junit.Test;
-
-public class TestODFManifest {
-	@Test
-	public void openHelloWorld() throws Exception {
-		URL helloworld = getClass().getResource("/helloworld.wfbundle");
-		assertNotNull(helloworld);
-		try (Bundle bundle = Bundles.openBundle(helloworld)) {
-			assertEquals("application/vnd.taverna.scufl2.workflow-bundle",
-					Bundles.getMimeType(bundle));
-			Path t2flow = bundle
-					.getPath("history/8781d5f4-d0ba-48a8-a1d1-14281bd8a917.t2flow");
-			assertEquals("application/vnd.taverna.t2flow+xml", bundle
-					.getManifest().getAggregation(t2flow).getMediatype());
-			Path manifestRdf = bundle.getPath("META-INF/manifest.xml");
-			assertTrue(Files.exists(manifestRdf));
-			assertTrue(bundle.getManifest().getManifest().contains(manifestRdf));
-		}
-	}
-
-	@Test
-	public void openODTDocument() throws Exception {
-		URL url = getClass().getResource("/document.odt");
-		assertNotNull(url);
-		try (Bundle bundle = Bundles.openBundle(url)) {
-			assertEquals("application/vnd.oasis.opendocument.text",
-					Bundles.getMimeType(bundle));
-
-			Path contentXml = bundle.getPath("content.xml");
-			Manifest manifest = bundle.getManifest();
-			assertEquals("text/xml", manifest.getAggregation(contentXml)
-					.getMediatype());
-			PathMetadata rootMeta = manifest.getAggregation(bundle.getRoot());
-			assertEquals("1.2", rootMeta.getConformsTo() + "");
-			assertEquals("application/vnd.oasis.opendocument.text",
-					rootMeta.getMediatype());
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
deleted file mode 100644
index 84012e9..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitor.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.taverna.robundle.manifest.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.util.Arrays;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.robundle.Bundles;
-import org.junit.After;
-import org.junit.Test;
-
-public class TestRecursiveCopyFileVisitor {
-
-	// TODO: Test NOFOLLOW and follow of symlinks
-
-	private Set<Path> tmps = new LinkedHashSet<>();
-
-	@After
-	public void deleteTmps() throws IOException {
-		IOException lastEx = null;
-		for (Path p : tmps) {
-			try {
-				Bundles.deleteRecursively(p);
-			} catch (IOException e) {
-				lastEx = e;
-			}
-		}
-		if (lastEx != null)
-			throw lastEx;
-	}
-
-	@Test(expected = FileAlreadyExistsException.class)
-	public void copyRecursivelyAlreadyExists() throws Exception {
-		Path orig = tempDir("orig");
-		Path dest = tempDir("dest");
-		Bundles.copyRecursively(orig, dest);
-	}
-
-	protected Path tempDir(String name) throws IOException {
-		Path dir = Files.createTempDirectory(name);
-		tmps.add(dir);
-		return dir;
-	}
-
-	@Test
-	public void copyRecursivelyReplace() throws Exception {
-		Path orig = tempDir("orig");
-		Files.createFile(orig.resolve("file"));
-		Path dest = tempDir("dest");
-		Bundles.copyRecursively(orig, dest, StandardCopyOption.REPLACE_EXISTING);
-		assertTrue(Files.isRegularFile(dest.resolve("file")));
-		// Second copy should also be OK
-		Bundles.copyRecursively(orig, dest, StandardCopyOption.REPLACE_EXISTING);
-	}
-
-	@Test
-	public void copyRecursively() throws Exception {
-		Path orig = tempDir("orig");
-		Files.createFile(orig.resolve("1"));
-		Files.createDirectory(orig.resolve("2"));
-		Files.createFile(orig.resolve("2/1"));
-		Files.createDirectory(orig.resolve("2/2"));
-		List<String> hello = Arrays.asList("Hello");
-
-		Charset ascii = Charset.forName("ASCII");
-		Files.write(orig.resolve("2/2/1"), hello, ascii);
-
-		Files.createDirectory(orig.resolve("2/2/2"));
-		Files.createFile(orig.resolve("3"));
-
-		Path dest = tempDir("dest");
-		Files.delete(dest);
-		Bundles.copyRecursively(orig, dest);
-
-		assertTrue(Files.isDirectory(dest.resolve("2")));
-		assertTrue(Files.isDirectory(dest.resolve("2/2")));
-		assertTrue(Files.isDirectory(dest.resolve("2/2")));
-		assertTrue(Files.isDirectory(dest.resolve("2/2/2")));
-		assertTrue(Files.isRegularFile(dest.resolve("1")));
-		assertTrue(Files.isRegularFile(dest.resolve("2/1")));
-		assertTrue(Files.isRegularFile(dest.resolve("2/2/1")));
-		assertTrue(Files.isRegularFile(dest.resolve("3")));
-		assertEquals(hello, Files.readAllLines(dest.resolve("2/2/1"), ascii));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
deleted file mode 100644
index d66c03a..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorInBundle.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.robundle.manifest.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.After;
-import org.junit.Before;
-
-public class TestRecursiveCopyFileVisitorInBundle extends
-		TestRecursiveCopyFileVisitor {
-
-	private Bundle bundle;
-
-	@Before
-	public void createBundle() throws IOException {
-		bundle = Bundles.createBundle();
-	}
-
-	@After
-	public void closeBundle() throws IOException {
-		if (bundle != null) {
-			bundle.close();
-		}
-		bundle = null;
-	}
-
-	@Override
-	protected Path tempDir(String name) throws IOException {
-		return Files.createTempDirectory(bundle.getRoot(), name);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java b/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
deleted file mode 100644
index c38c502..0000000
--- a/taverna-robundle/src/test/java/org/apache/taverna/robundle/manifest/utils/TestRecursiveCopyFileVisitorMultipleBundles.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.apache.taverna.robundle.manifest.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.Bundles;
-import org.junit.After;
-
-public class TestRecursiveCopyFileVisitorMultipleBundles extends
-		TestRecursiveCopyFileVisitor {
-
-	private List<Bundle> bundles = new ArrayList<>();
-
-	@After
-	public void closeBundle() throws IOException {
-		for (Bundle b : bundles) {
-			b.close();
-		}
-	}
-
-	@Override
-	protected Path tempDir(String name) throws IOException {
-		Bundle bundle = Bundles.createBundle();
-		bundles.add(bundle);
-		return Files.createTempDirectory(bundle.getRoot(), name);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/test/resources/combine/Boris.omex
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/test/resources/combine/Boris.omex b/taverna-robundle/src/test/resources/combine/Boris.omex
deleted file mode 100644
index a4d5cf4..0000000
Binary files a/taverna-robundle/src/test/resources/combine/Boris.omex and /dev/null differ


[22/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java
deleted file mode 100644
index 822419a..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/impl/NamespacePrefixMapperJAXB_RI.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml.impl;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
-
-public class NamespacePrefixMapperJAXB_RI extends NamespacePrefixMapper {
-	@Override
-	public String getPreferredPrefix(String namespaceUri, String suggestion,
-			boolean requirePrefix) {
-		switch (namespaceUri) {
-		case "http://www.w3.org/2001/XMLSchema-instance":
-			return "xsi";
-		case "http://ns.taverna.org.uk/2010/scufl2#":
-			return ""; // default
-		case "http://www.w3.org/1999/02/22-rdf-syntax-ns#":
-			return "rdf";
-		case "http://www.w3.org/2000/01/rdf-schema#":
-			return "rdfs";
-		case "http://purl.org/dc/elements/1.1/":
-			return "dc";
-		case "http://purl.org/dc/terms/":
-			return "dcterms";
-		case "http://www.w3.org/2002/07/owl#":
-			return "owl";
-		default:
-			return suggestion;
-		}
-	}
-
-	@Override
-	public String[] getPreDeclaredNamespaceUris() {
-		return new String[] {};
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader b/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
deleted file mode 100644
index 42ee9f0..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.scufl2.rdfxml.RDFXMLReader

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter b/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
deleted file mode 100644
index d3370c3..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleWriter
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.scufl2.rdfxml.RDFXMLWriter

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml b/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml
deleted file mode 100644
index e05618f..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context-osgi.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:beans="http://www.springframework.org/schema/beans"
-	xsi:schemaLocation="http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
-		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<service ref="rdfXMLReader" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleReader" />
-
-	<service ref="rdfXMLWriter" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleWriter" />
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml b/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml
deleted file mode 100644
index 2560aac..0000000
--- a/taverna-scufl2-rdfxml/src/main/resources/META-INF/spring/scufl2-rdfxml-context.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans 
-        http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<bean id="rdfXMLReader" class="org.apache.taverna.scufl2.rdfxml.RDFXMLReader" />
-
-	<bean id="rdfXMLWriter" class="org.apache.taverna.scufl2.rdfxml.RDFXMLWriter" />
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java
deleted file mode 100644
index 8f5d548..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/DummyParserTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.net.URL;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.ObjectFactory;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Profile;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProfileDocument;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Workflow;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundleDocument;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowDocument;
-
-public class DummyParserTest {
-
-	private JAXBContext jaxbContext;
-	private Unmarshaller unmarshaller;
-
-	@SuppressWarnings("unchecked")
-	@Test
-	public void parse() throws Exception {
-		URL resource = getClass().getResource("example/workflowBundle.rdf");
-		URI baseUri = resource.toURI();
-
-		@SuppressWarnings("rawtypes")
-		JAXBElement<WorkflowBundleDocument> workflowBundle = (JAXBElement<WorkflowBundleDocument>) unmarshaller
-				.unmarshal(resource);
-		WorkflowBundleDocument bundleDoc = workflowBundle.getValue();
-		WorkflowBundle wfBundle = (WorkflowBundle) bundleDoc.getAny().get(0);
-
-		//System.out.println(wfBundle.getName());
-		//System.out.println(wfBundle.getMainWorkflow());
-		//System.out.println(wfBundle.getSameBaseAs().getResource());
-		for (WorkflowBundle.Workflow wfLink : wfBundle.getWorkflow()) {
-			String about = wfLink.getWorkflow().getAbout();
-			String seeAlso = wfLink.getWorkflow().getSeeAlso().getResource();
-
-			URI wfResource = baseUri.resolve(seeAlso);
-			JAXBElement<WorkflowDocument> unmarshalled = (JAXBElement<WorkflowDocument>) unmarshaller
-					.unmarshal(wfResource.toURL());
-			WorkflowDocument wfDoc = unmarshalled.getValue();
-			Workflow wf = (Workflow) wfDoc.getAny().get(0);
-			//System.out.println(about + " " + wf.getName());
-		}
-
-		for (WorkflowBundle.Profile profileLink : wfBundle.getProfile()) {
-			String about = profileLink.getProfile().getAbout();
-			String seeAlso = profileLink.getProfile().getSeeAlso()
-					.getResource();
-
-			URI profileResource = baseUri.resolve(seeAlso);
-			JAXBElement unmarshalled = (JAXBElement) unmarshaller
-					.unmarshal(profileResource.toURL());
-			ProfileDocument profileDoc = (ProfileDocument) unmarshalled
-					.getValue();
-			Profile profile = (Profile) profileDoc.getAny().get(0);
-			//System.out.println(about + " " + profile.getName());
-		}
-	}
-
-	@Before
-	public void makeUnmarshaller() throws JAXBException {
-		
-		Class<?>[] packages = { ObjectFactory.class,
-				org.w3._1999._02._22_rdf_syntax_ns_.ObjectFactory.class,
-				org.w3._2000._01.rdf_schema_.ObjectFactory.class };
-		jaxbContext = JAXBContext.newInstance(packages);	
-		unmarshaller = jaxbContext.createUnmarshaller();
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java
deleted file mode 100644
index a4cb052..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestProfileParser.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Stack;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.rdfxml.ProfileParser;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestProfileParser {
-	private static final String PROFILE_RDF = "example/profile/tavernaWorkbench.rdf";
-
-	protected ProfileParser profileParser = new ProfileParser();
-
-	private URL profileUrl;
-
-	private WorkflowBundle bundle;
-
-	private Profile profile;
-
-	@Test
-	public void activity() throws Exception {
-		assertEquals(1, profile.getActivities().size());
-		Activity helloScript = profile.getActivities().getByName("HelloScript");
-		assertEquals("HelloScript", helloScript.getName());
-		assertEquals(
-"http://ns.taverna.org.uk/2010/activity/beanshell",
-				helloScript.getType().toASCIIString());
-		assertEquals(1, helloScript.getInputPorts().size());
-		InputActivityPort personName = helloScript.getInputPorts().getByName(
-				"personName");
-		assertEquals("personName", personName.getName());
-		assertEquals(0, personName.getDepth().intValue());
-
-		assertEquals(1, helloScript.getOutputPorts().size());
-		OutputActivityPort hello = helloScript.getOutputPorts().getByName(
-				"hello");
-		assertEquals("hello", hello.getName());
-		assertEquals(0, hello.getDepth().intValue());
-		assertEquals(0, hello.getGranularDepth().intValue());
-
-	}
-
-	@Test
-	public void configuration() throws Exception {
-		assertEquals(1, profile.getConfigurations().size());
-		Configuration hello = profile.getConfigurations().getByName("Hello");
-		assertEquals("Hello", hello.getName());
-		assertEquals(profile.getActivities().getByName("HelloScript"),
-				hello.getConfigures());
-		assertEquals(
-"http://ns.taverna.org.uk/2010/activity/beanshell#Config",
-				hello.getType().toASCIIString());
-	}
-
-	public void loadProfileDocument() {
-		profileUrl = getClass().getResource(PROFILE_RDF);
-		assertNotNull("Could not find profile document " + PROFILE_RDF,
-				profileUrl);
-	}
-
-	@Test
-	public void parserStackEmpty() throws Exception {
-		Stack<WorkflowBean> stack = profileParser.getParserState().getStack();
-		assertEquals(1, stack.size());
-		assertEquals(bundle, stack.peek());
-	}
-
-	@Test
-	public void portBindings() throws Exception {
-		ProcessorBinding hello = profile.getProcessorBindings().getByName(
-				"Hello");
-		assertEquals(1, hello.getInputPortBindings().size());
-		assertEquals(1, hello.getOutputPortBindings().size());
-
-		ProcessorInputPortBinding input = hello.getInputPortBindings()
-				.iterator().next();
-		InputActivityPort inputActivityPort = profile.getActivities()
-				.getByName("HelloScript").getInputPorts()
-				.getByName("personName");
-		assertEquals(inputActivityPort, input.getBoundActivityPort());
-
-		InputProcessorPort inputProcessorPort = bundle.getMainWorkflow()
-				.getProcessors().getByName("Hello").getInputPorts()
-				.getByName("name");
-		assertEquals(inputProcessorPort, input.getBoundProcessorPort());
-
-		ProcessorOutputPortBinding output = hello.getOutputPortBindings()
-				.iterator().next();
-		OutputActivityPort outputActivityPort = profile.getActivities()
-				.getByName("HelloScript").getOutputPorts().getByName("hello");
-		assertEquals(outputActivityPort, output.getBoundActivityPort());
-
-		OutputProcessorPort outputProcessorPort = bundle.getMainWorkflow()
-				.getProcessors().getByName("Hello").getOutputPorts()
-				.getByName("greeting");
-		assertEquals(outputProcessorPort, output.getBoundProcessorPort());
-
-	}
-
-	public void prepareParserState() throws URISyntaxException {
-		bundle = new ExampleWorkflow().makeWorkflowBundle();
-		bundle.getProfiles().clear();
-		bundle.setMainProfile(null);
-
-		profileParser.getParserState().setLocation(URI.create("/"));
-		profileParser.getParserState().push(bundle);
-	}
-
-	@Test
-	public void processorBinding() throws Exception {
-		assertEquals(1, profile.getProcessorBindings().size());
-		ProcessorBinding hello = profile.getProcessorBindings().getByName(
-				"Hello");
-		assertEquals(profile.getActivities().getByName("HelloScript"),
-				hello.getBoundActivity());
-		assertEquals(bundle.getMainWorkflow().getProcessors()
-				.getByName("Hello"), hello.getBoundProcessor());
-		assertEquals("Hello", hello.getName());
-		assertEquals(10, hello.getActivityPosition().intValue());
-	}
-
-	@Test
-	public void profileName() throws Exception {
-		assertEquals("tavernaWorkbench", profile.getName());
-	}
-
-	@Before
-	public void readProfile() throws Exception {
-		loadProfileDocument();
-		prepareParserState();
-		profileParser.readProfile(URI.create("/profile/tavernaWorkbench/"),
-				URI.create("profile/tavernaWorkbench.rdf"),
-				profileUrl.openStream());
-		profile = bundle.getProfiles().getByName("tavernaWorkbench");
-		assertNotNull(profile);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java
deleted file mode 100644
index 0ffccb1..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLReader.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.api.io.structure.StructureReader.TEXT_VND_TAVERNA_SCUFL2_STRUCTURE;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.rdfxml.RDFXMLSerializer;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestRDFXMLReader {
-
-	private static final String EXAMPLE_SCUFL2 = "example.wfbundle";
-	private URL exampleBundle;
-	public static final String APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE = "application/vnd.taverna.scufl2.workflow-bundle";
-	protected WorkflowBundle workflowBundle;
-	protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-	org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO testWorkflowBundleIO = new org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO();
-
-	@Test
-	public void bundleName() throws Exception {
-		assertEquals("HelloWorld", workflowBundle.getName());
-	}
-
-	@Before
-	public void exampleBundle() throws ReaderException, IOException {
-		String name = EXAMPLE_SCUFL2;
-		exampleBundle = getClass().getResource(name);
-		assertNotNull("Can't find example workflow bundle " + name,
-				exampleBundle);
-		workflowBundle = bundleIO.readBundle(exampleBundle,
-				APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-	}
-
-	@Test
-	public void iterationStrategy() throws Exception {
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertEquals(1, hello.getIterationStrategyStack().size());
-		IterationStrategyTopNode iterationStrategyTopNode = hello
-				.getIterationStrategyStack().get(0);
-		assertTrue(iterationStrategyTopNode instanceof CrossProduct);
-		CrossProduct cross = (CrossProduct) iterationStrategyTopNode;
-		assertEquals(1, cross.size());
-		PortNode portNode = (PortNode) cross.get(0);
-		assertEquals(hello.getInputPorts().getByName("name"),
-				portNode.getInputProcessorPort());
-		assertEquals(0, portNode.getDesiredDepth().intValue());
-	}
-
-	@Test
-	public void iterationStrategyWait4Me() throws Exception {
-		Processor wait4me = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("wait4me");
-		assertEquals(0, wait4me.getIterationStrategyStack().size());
-	}
-
-	@Test
-	public void processorInputPorts() throws Exception {
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertEquals(1, hello.getInputPorts().size());
-		assertEquals("name", hello.getInputPorts().getByName("name").getName());
-		assertEquals(0, hello.getInputPorts().getByName("name").getDepth()
-				.intValue());
-	}
-
-	@Test
-	public void processorOutputPorts() throws Exception {
-		Processor hello = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertEquals(1, hello.getOutputPorts().size());
-		assertEquals("greeting", hello.getOutputPorts().getByName("greeting")
-				.getName());
-		assertEquals(0, hello.getOutputPorts().getByName("greeting").getDepth()
-				.intValue());
-		assertEquals(0, hello.getOutputPorts().getByName("greeting")
-				.getGranularDepth().intValue());
-	}
-
-	@Test
-	public void processorPortsWait4Me() throws Exception {
-		Processor wait4me = workflowBundle.getMainWorkflow().getProcessors()
-				.getByName("wait4me");
-		assertEquals(0, wait4me.getInputPorts().size());
-		assertEquals(0, wait4me.getOutputPorts().size());
-	}
-
-	@Test
-	public void processors() throws Exception {
-		Set<String> expected = new HashSet<String>();
-		expected.add("Hello");
-		expected.add("wait4me");
-		assertEquals(expected, workflowBundle.getMainWorkflow().getProcessors()
-				.getNames());
-	}
-
-	@Test
-	public void profiles() throws Exception {
-		assertEquals(2, workflowBundle.getProfiles().size());
-		Profile tavernaWorkbench = workflowBundle.getProfiles().getByName(
-				"tavernaWorkbench");
-		assertEquals("tavernaWorkbench", tavernaWorkbench.getName());
-		assertEquals(workflowBundle.getMainProfile(), tavernaWorkbench);
-		assertEquals("tavernaServer", workflowBundle.getProfiles().getByName("tavernaServer").getName());
-	}
-
-	@Test
-	public void globalBaseURI() throws Exception {
-		assertEquals("http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/", workflowBundle.getGlobalBaseURI().toASCIIString());
-	}
-
-	// TODO: Un-ignore and update this test
-	@Ignore
-	@Test
-	public void testParsedWorkflow() throws Exception {
-		assertEquals("HelloWorld", workflowBundle.getName());
-
-		ByteArrayOutputStream output = new ByteArrayOutputStream();
-		bundleIO.writeBundle(workflowBundle, output,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		String bundleTxt = new String(output.toByteArray(), "UTF-8");
-
-		assertEquals(testWorkflowBundleIO.getStructureFormatWorkflowBundle(),
-				bundleTxt);
-
-	}
-
-	@Test
-	public void guessMediaType() throws Exception {
-
-		byte[] firstBytes = new byte[1024];
-		getClass().getResourceAsStream(EXAMPLE_SCUFL2).read(firstBytes);		
-		assertEquals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE, bundleIO.guessMediaTypeForSignature(firstBytes));
-		// Mess up the mime type string
-		firstBytes[45] = 32;
-		assertEquals(null, bundleIO.guessMediaTypeForSignature(firstBytes));
-	}
-
-	@Test
-	public void readStreamNoMediaType() throws ReaderException, IOException {
-		workflowBundle = bundleIO.readBundle(getClass().getResourceAsStream(EXAMPLE_SCUFL2), null);
-		assertNotNull(workflowBundle);
-	}
-	
-	@Test
-	public void workflowIdentifier() throws Exception {
-		assertEquals(
-				"http://ns.taverna.org.uk/2010/workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/",
-				workflowBundle.getMainWorkflow().getIdentifier()
-						.toASCIIString());
-	}
-
-	@Test
-	public void workflowInputPorts() throws Exception {
-		NamedSet<InputWorkflowPort> inputPorts = workflowBundle
-				.getMainWorkflow().getInputPorts();
-		assertEquals(1, inputPorts.size());
-		assertEquals("yourName", inputPorts.getByName("yourName").getName());
-		assertEquals(0, inputPorts.getByName("yourName").getDepth().intValue());
-	}
-
-	@Test
-	public void workflowOutputPorts() throws Exception {
-		NamedSet<OutputWorkflowPort> outputPorts = workflowBundle
-				.getMainWorkflow().getOutputPorts();
-		assertEquals(1, outputPorts.size());
-		assertEquals("results", outputPorts.getByName("results").getName());
-	}
-
-	@Test
-	public void workflows() throws Exception {
-		assertEquals(1, workflowBundle.getWorkflows().size());
-		Workflow helloWorld = workflowBundle.getWorkflows().getByName(
-				"HelloWorld");
-		assertEquals("HelloWorld", helloWorld.getName());
-		assertEquals(workflowBundle.getMainWorkflow(), helloWorld);
-	}
-	 
-	@Test
-	public void xmlOutput() throws Exception {
-		ByteArrayOutputStream output = new ByteArrayOutputStream();
-		new RDFXMLSerializer(workflowBundle).workflowDoc(output,
-				workflowBundle.getMainWorkflow(),
-				URI.create("workflows/HelloWorld.rdf"));
-		@SuppressWarnings("unused")
-		String bundleTxt = new String(output.toByteArray(), "UTF-8");
-//		System.out.println(bundleTxt);
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java
deleted file mode 100644
index f44aab8..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLSerializer.java
+++ /dev/null
@@ -1,490 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.fail;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.commons.io.output.NullOutputStream;
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.rdfxml.RDFXMLSerializer;
-import org.jdom.Attribute;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.Namespace;
-import org.jdom.input.SAXBuilder;
-import org.jdom.xpath.XPath;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestRDFXMLSerializer {
-	protected static final String TAVERNAWORKBENCH_RDF = "profile/tavernaWorkbench.rdf";
-	protected static final String TAVERNASERVER_RDF = "profile/tavernaServer.rdf";
-	protected static final String HELLOWORLD_RDF = "workflow/HelloWorld.rdf";
-	RDFXMLSerializer serializer = new RDFXMLSerializer();
-	ExampleWorkflow exampleWf = new ExampleWorkflow();
-	WorkflowBundle workflowBundle;
-
-	Namespace XSI_NS = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
-	Namespace RDF_NS = Namespace.getNamespace("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
-	Namespace RDSF_NS = Namespace.getNamespace("rdfs", "http://www.w3.org/2000/01/rdf-schema#");
-	Namespace SCUFL2_NS = Namespace.getNamespace("s", "http://ns.taverna.org.uk/2010/scufl2#");
-	Namespace BEANSHELL_NS = Namespace.getNamespace("beanshell",
-			"http://ns.taverna.org.uk/2010/activity/beanshell#");
-
-
-	protected void assertXpathEquals(String expected, Element element,
-			String xpath) throws JDOMException {
-		Object o = xpathSelectElement(element, xpath);
-		if (o == null) {
-			fail("Can't find " + xpath  + " in " + element);
-			return;
-		}
-		String text;
-		if (o instanceof Attribute) {
-			text = ((Attribute)o).getValue();
-		} else {
-			text = ((Element)o).getValue();
-		}
-		assertEquals(expected, text);
-	}
-
-
-	protected void checkProfileDocument(Element root, boolean isWorkbench) throws JDOMException {
-
-		assertEquals("ProfileDocument", root.getAttributeValue("type", XSI_NS));
-		assertXpathEquals(isWorkbench ? "tavernaWorkbench/" : "tavernaServer/", root, "./@xml:base");
-
-		Element profile = (Element) root.getChildren().get(0);
-		Element activity = (Element) root.getChildren().get(1);
-		Element binding = (Element) root.getChildren().get(2);
-		Element configuration = (Element) root.getChildren().get(3);
-
-
-		assertSame(xpathSelectElement(root, "./s:Profile"), profile);
-		assertSame(xpathSelectElement(root, "./s:Activity"), activity);
-		assertSame(xpathSelectElement(root, "./s:ProcessorBinding"), binding);
-		assertSame(xpathSelectElement(root, "./s:Configuration"), configuration);
-
-		assertXpathEquals("", profile, "./@rdf:about");
-		assertXpathEquals(isWorkbench ? "tavernaWorkbench" : "tavernaServer", profile, "./s:name");
-		assertXpathEquals("processorbinding/Hello/", profile, "./s:processorBinding/@rdf:resource");
-		assertXpathEquals("configuration/Hello/", profile, "./s:activateConfiguration/@rdf:resource");
-
-		// activity
-		assertXpathEquals("activity/HelloScript/", activity, "./@rdf:about");
-		assertXpathEquals("HelloScript", activity, "./s:name");
-		assertXpathEquals("http://ns.taverna.org.uk/2010/activity/beanshell",
-				activity, "./rdf:type/@rdf:resource");
-		// activity input
-		assertXpathEquals("activity/HelloScript/in/personName", activity, "./s:inputActivityPort/s:InputActivityPort/@rdf:about");
-		assertXpathEquals("personName", activity, "./s:inputActivityPort/s:InputActivityPort/s:name");
-		assertXpathEquals("0", activity, "./s:inputActivityPort/s:InputActivityPort/s:portDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", activity, "./s:inputActivityPort/s:InputActivityPort/s:portDepth/@rdf:datatype");
-		// activity output
-		assertXpathEquals("activity/HelloScript/out/hello", activity, "./s:outputActivityPort/s:OutputActivityPort/@rdf:about");
-		assertXpathEquals("hello", activity, "./s:outputActivityPort/s:OutputActivityPort/s:name");
-		assertXpathEquals("0", activity, "./s:outputActivityPort/s:OutputActivityPort/s:portDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", activity, "./s:outputActivityPort/s:OutputActivityPort/s:portDepth/@rdf:datatype");
-		assertXpathEquals("0", activity, "./s:outputActivityPort/s:OutputActivityPort/s:granularPortDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", activity, "./s:outputActivityPort/s:OutputActivityPort/s:granularPortDepth/@rdf:datatype");
-
-		// processor binding
-		assertXpathEquals("processorbinding/Hello/", binding, "./@rdf:about");
-		assertXpathEquals("Hello", binding, "./s:name");
-		assertXpathEquals("activity/HelloScript/", binding, "./s:bindActivity/@rdf:resource");
-		assertXpathEquals("../../workflow/HelloWorld/processor/Hello/", binding, "./s:bindProcessor/@rdf:resource");
-		// input port binding
-		assertXpathEquals("processorbinding/Hello/in/name", binding, "./s:inputPortBinding/s:InputPortBinding/@rdf:about");
-		assertXpathEquals("activity/HelloScript/in/personName", binding, "./s:inputPortBinding/s:InputPortBinding/s:bindInputActivityPort/@rdf:resource");
-		assertXpathEquals("../../workflow/HelloWorld/processor/Hello/in/name", binding, "./s:inputPortBinding/s:InputPortBinding/s:bindInputProcessorPort/@rdf:resource");
-		// output port binding
-		assertXpathEquals("processorbinding/Hello/out/greeting", binding, "./s:outputPortBinding/s:OutputPortBinding/@rdf:about");
-		assertXpathEquals("activity/HelloScript/out/hello", binding, "./s:outputPortBinding/s:OutputPortBinding/s:bindOutputActivityPort/@rdf:resource");
-		assertXpathEquals("../../workflow/HelloWorld/processor/Hello/out/greeting", binding, "./s:outputPortBinding/s:OutputPortBinding/s:bindOutputProcessorPort/@rdf:resource");
-
-
-		assertXpathEquals("configuration/Hello/", configuration, "./@rdf:about");
-		assertXpathEquals("configuration/Hello.json", configuration, "./rdfs:seeAlso/@rdf:resource");
-
-		assertXpathEquals(
-				"http://ns.taverna.org.uk/2010/activity/beanshell#Config",
-				configuration, "./rdf:type/@rdf:resource");
-		assertXpathEquals("Hello", configuration, "./s:name");
-		assertXpathEquals("activity/HelloScript/", configuration, "./s:configure/@rdf:resource");
-//		assertXpathEquals("hello = \"Hello, \" + personName;\n" +
-//				(isWorkbench ? "JOptionPane.showMessageDialog(null, hello);" : "System.out.println(\"Server says: \" + hello);"), configuration, "./beanshell:script");
-
-	}
-
-	protected void checkRoot(Element root) {
-		assertEquals(RDF_NS, root.getNamespace());
-		assertEquals("rdf", root.getNamespacePrefix());
-		assertEquals("RDF", root.getName());
-		assertEquals(SCUFL2_NS, root.getNamespace(""));
-		String schemaLocation = root.getAttributeValue("schemaLocation", XSI_NS);
-		schemaLocation = schemaLocation.replaceAll("\\s+", " ");
-		String[] schemaLocations = schemaLocation.split(" ");
-		String[] expectedSchemaLocations = {
-				"http://ns.taverna.org.uk/2010/scufl2#","http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd",
-				"http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://ns.taverna.org.uk/2010/scufl2/rdf.xsd"
-		};
-		assertArrayEquals(expectedSchemaLocations, schemaLocations);
-	}
-
-
-	protected void checkWorkflowBundleDocument(Element root) throws JDOMException {
-		assertEquals("WorkflowBundleDocument", root.getAttributeValue("type", XSI_NS));
-
-		assertXpathEquals("./", root, "./@xml:base");
-
-		Element wbundle = root.getChild("WorkflowBundle", SCUFL2_NS);
-		assertSame(wbundle, root.getChildren().get(0));
-
-
-
-		assertXpathEquals("", wbundle, "./@rdf:about");
-
-		assertXpathEquals("HelloWorld", wbundle, "./s:name");
-		assertXpathEquals("http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/",
-				wbundle, "./s:globalBaseURI/@rdf:resource");
-
-		assertXpathEquals("workflow/HelloWorld/",
-				wbundle, "./s:mainWorkflow/@rdf:resource");
-		assertXpathEquals("workflow/HelloWorld/",
-				wbundle, "./s:workflow/s:Workflow/@rdf:about");
-		assertXpathEquals(HELLOWORLD_RDF,
-				wbundle, "./s:workflow/s:Workflow/rdfs:seeAlso/@rdf:resource");
-
-		assertXpathEquals("profile/tavernaWorkbench/",
-				wbundle, "./s:mainProfile/@rdf:resource");
-
-
-
-		assertXpathEquals("profile/tavernaServer/",
-				wbundle, "./s:profile[1]/s:Profile/@rdf:about");
-		assertXpathEquals("profile/tavernaServer.rdf", wbundle, "./s:profile[1]/s:Profile/rdfs:seeAlso/@rdf:resource");
-
-		assertXpathEquals("profile/tavernaWorkbench/",
-				wbundle, "./s:profile[2]/s:Profile/@rdf:about");
-		assertXpathEquals(TAVERNAWORKBENCH_RDF,
-				wbundle, "./s:profile[2]/s:Profile/rdfs:seeAlso/@rdf:resource");
-
-
-
-	}
-
-
-	protected void checkWorkflowDocument(Element root) throws JDOMException {
-		assertEquals("WorkflowDocument", root.getAttributeValue("type", XSI_NS));
-
-
-
-		assertXpathEquals("HelloWorld/", root, "./@xml:base");
-
-
-		Element wf = root.getChild("Workflow", SCUFL2_NS);
-		assertSame(wf, root.getChildren().get(0));
-
-		assertXpathEquals("", wf, "./@rdf:about");
-
-
-		assertXpathEquals("HelloWorld", wf, "./s:name");
-		assertXpathEquals("http://ns.taverna.org.uk/2010/workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/",
-				wf, "./s:workflowIdentifier/@rdf:resource");
-
-		assertXpathEquals("in/yourName",
-				wf, "./s:inputWorkflowPort/s:InputWorkflowPort/@rdf:about");
-		assertXpathEquals("yourName",
-				wf, "./s:inputWorkflowPort/s:InputWorkflowPort/s:name");
-		assertXpathEquals("0",
-				wf, "./s:inputWorkflowPort/s:InputWorkflowPort/s:portDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:inputWorkflowPort/s:InputWorkflowPort/s:portDepth/@rdf:datatype");
-
-
-		assertXpathEquals("out/results",
-				wf, "./s:outputWorkflowPort/s:OutputWorkflowPort/@rdf:about");
-		assertXpathEquals("results",
-				wf, "./s:outputWorkflowPort/s:OutputWorkflowPort/s:name");
-
-
-		assertXpathEquals("processor/Hello/",
-				wf, "./s:processor[1]/s:Processor/@rdf:about");
-		assertXpathEquals("Hello",
-				wf, "./s:processor[1]/s:Processor/s:name");
-
-		assertXpathEquals("processor/Hello/in/name",
-				wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/@rdf:about");
-		assertXpathEquals("name",
-				wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/s:name");
-		assertXpathEquals("0",
-				wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/s:portDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:processor[1]/s:Processor/s:inputProcessorPort/s:InputProcessorPort/s:portDepth/@rdf:datatype");
-
-
-
-		assertXpathEquals("processor/Hello/out/greeting",
-				wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/@rdf:about");
-
-		assertXpathEquals("greeting",
-				wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:name");
-		assertXpathEquals("0",
-				wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:portDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:portDepth/@rdf:datatype");
-		assertXpathEquals("0",
-				wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:granularPortDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:processor[1]/s:Processor/s:outputProcessorPort/s:OutputProcessorPort/s:granularPortDepth/@rdf:datatype");
-
-		assertXpathEquals("processor/Hello/iterationstrategy/", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/@rdf:about");
-		assertXpathEquals("Collection", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/@rdf:parseType");
-		assertXpathEquals("processor/Hello/iterationstrategy/0/", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/@rdf:about");
-		assertXpathEquals("Collection", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/@rdf:parseType");
-		assertXpathEquals("processor/Hello/iterationstrategy/0/0/", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/@rdf:about");
-		assertXpathEquals("processor/Hello/in/name", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/s:iterateOverInputPort/@rdf:resource");
-		assertXpathEquals("0", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/s:desiredDepth");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer", wf, "./s:processor[1]/s:Processor/s:iterationStrategyStack/s:IterationStrategyStack/s:iterationStrategies/s:CrossProduct/s:productOf/s:PortNode/s:desiredDepth/@rdf:datatype");
-
-
-		assertXpathEquals("processor/wait4me/",
-				wf, "./s:processor[2]/s:Processor/@rdf:about");
-		assertXpathEquals("wait4me",
-				wf, "./s:processor[2]/s:Processor/s:name");
-
-
-		assertXpathEquals("datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0",
-				wf, "./s:datalink[1]/s:DataLink/@rdf:about");
-
-		assertXpathEquals("datalink?from=in/yourName&to=processor/Hello/in/name",
-				wf, "./s:datalink[2]/s:DataLink/@rdf:about");
-
-		assertXpathEquals("datalink?from=in/yourName&to=out/results&mergePosition=1",
-				wf, "./s:datalink[3]/s:DataLink/@rdf:about");
-		assertXpathEquals("in/yourName",
-				wf, "./s:datalink[3]/s:DataLink/s:receiveFrom/@rdf:resource");
-		assertXpathEquals("out/results",
-				wf, "./s:datalink[3]/s:DataLink/s:sendTo/@rdf:resource");
-		assertXpathEquals("1",
-				wf, "./s:datalink[3]/s:DataLink/s:mergePosition");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:datalink[3]/s:DataLink/s:mergePosition/@rdf:datatype");
-
-		assertXpathEquals("control?block=processor/Hello/&untilFinished=processor/wait4me/",
-				wf, "./s:control/s:Blocking/@rdf:about");
-
-
-		assertXpathEquals("processor/Hello/",
-				wf, "./s:control/s:Blocking/s:block/@rdf:resource");
-		assertXpathEquals("processor/wait4me/",
-				wf, "./s:control/s:Blocking/s:untilFinished/@rdf:resource");
-
-		assertXpathEquals("datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0",
-				wf, "./s:datalink[1]/s:DataLink/@rdf:about");
-		assertXpathEquals("processor/Hello/out/greeting",
-				wf, "./s:datalink[1]/s:DataLink/s:receiveFrom/@rdf:resource");
-		assertXpathEquals("out/results",
-				wf, "./s:datalink[1]/s:DataLink/s:sendTo/@rdf:resource");
-		assertXpathEquals("0",
-				wf, "./s:datalink[1]/s:DataLink/s:mergePosition");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:datalink[1]/s:DataLink/s:mergePosition/@rdf:datatype");
-
-
-
-		assertXpathEquals("datalink?from=in/yourName&to=processor/Hello/in/name",
-				wf, "./s:datalink[2]/s:DataLink/@rdf:about");
-		assertXpathEquals("in/yourName",
-				wf, "./s:datalink[2]/s:DataLink/s:receiveFrom/@rdf:resource");
-		assertXpathEquals("processor/Hello/in/name",
-				wf, "./s:datalink[2]/s:DataLink/s:sendTo/@rdf:resource");
-		assertNull(xpathSelectElement(wf, "./s:datalink[2]/s:DataLink/s:mergePosition"));
-
-
-
-		assertXpathEquals("datalink?from=in/yourName&to=out/results&mergePosition=1",
-				wf, "./s:datalink[3]/s:DataLink/@rdf:about");
-		assertXpathEquals("in/yourName",
-				wf, "./s:datalink[3]/s:DataLink/s:receiveFrom/@rdf:resource");
-		assertXpathEquals("out/results",
-				wf, "./s:datalink[3]/s:DataLink/s:sendTo/@rdf:resource");
-		assertXpathEquals("1",
-				wf, "./s:datalink[3]/s:DataLink/s:mergePosition");
-		assertXpathEquals("http://www.w3.org/2001/XMLSchema#integer",
-				wf, "./s:datalink[3]/s:DataLink/s:mergePosition/@rdf:datatype");
-
-		assertXpathEquals("control?block=processor/Hello/&untilFinished=processor/wait4me/",
-				wf, "./s:control/s:Blocking/@rdf:about");
-
-
-		assertXpathEquals("processor/Hello/",
-				wf, "./s:control/s:Blocking/s:block/@rdf:resource");
-		assertXpathEquals("processor/wait4me/",
-				wf, "./s:control/s:Blocking/s:untilFinished/@rdf:resource");
-
-	}
-
-	// TODO: Update tests
-	@Ignore
-	@Test
-	public void exampleProfileTavernaServer() throws Exception {
-		URL tavernaWorkbenc = getClass().getResource("example/profile/tavernaServer.rdf");
-		SAXBuilder saxBuilder = new SAXBuilder();
-		Document doc = saxBuilder.build(tavernaWorkbenc);
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkProfileDocument(root, false);
-
-	}
-
-
-	// TODO: Update tests
-	@Ignore
-	@Test
-	public void exampleProfileTavernaWorkbench() throws Exception {
-		URL tavernaWorkbenc = getClass().getResource("example/profile/tavernaWorkbench.rdf");
-		SAXBuilder saxBuilder = new SAXBuilder();
-		Document doc = saxBuilder.build(tavernaWorkbenc);
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkProfileDocument(root, true);
-
-	}
-
-	@Test
-	public void exampleWorkflow() throws Exception {
-		URL workflowURL = getClass().getResource("example/workflow/HelloWorld.rdf");
-		SAXBuilder saxBuilder = new SAXBuilder();
-		Document doc = saxBuilder.build(workflowURL);
-
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkWorkflowDocument(root);
-
-	}
-
-
-	@Test
-	public void exampleWorkflowBundle() throws Exception {
-		URL workflowBundleURL = getClass().getResource("example/workflowBundle.rdf");
-
-
-		SAXBuilder saxBuilder = new SAXBuilder();
-		Document doc = saxBuilder.build(workflowBundleURL);
-
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkWorkflowBundleDocument(root);
-
-	}
-
-
-	@Before
-	public void makeExampleWorkflow() {
-		workflowBundle = new ExampleWorkflow().makeWorkflowBundle();
-		serializer.setWfBundle(workflowBundle);
-	}
-
-
-	protected Document parseXml(ByteArrayOutputStream outStream)
-			throws JDOMException, IOException {
-		SAXBuilder saxBuilder = new SAXBuilder();
-		return saxBuilder.build(new ByteArrayInputStream(outStream.toByteArray()));
-	}
-
-
-	@Test
-	public void profile() throws Exception {
-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		// To test that seeAlso URIs are stored
-		serializer.profileDoc(outStream, workflowBundle.getMainProfile(), URI.create(TAVERNAWORKBENCH_RDF));
-		//System.out.write(outStream.toByteArray());
-		Document doc = parseXml(outStream);
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkProfileDocument(root, true);
-	}
-
-
-	@Test
-	public void workflow() throws Exception {
-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		// To test that seeAlso URIs are stored
-		serializer.workflowDoc(outStream, workflowBundle.getMainWorkflow(), URI.create(HELLOWORLD_RDF));
-//		System.out.write(outStream.toByteArray());
-		Document doc = parseXml(outStream);
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkWorkflowDocument(root);
-	}
-
-	@Test
-	public void workflowBundle() throws Exception {
-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		// To test that seeAlso URIs are stored
-		serializer.workflowDoc(new NullOutputStream(), workflowBundle.getMainWorkflow(), URI.create(HELLOWORLD_RDF));
-		serializer.profileDoc(new NullOutputStream(), workflowBundle.getProfiles().getByName("tavernaWorkbench"), URI.create(TAVERNAWORKBENCH_RDF));
-		serializer.profileDoc(new NullOutputStream(), workflowBundle.getProfiles().getByName("tavernaServer"), URI.create(TAVERNASERVER_RDF));
-
-		serializer.workflowBundleDoc(outStream, URI.create("workflowBundle.rdf"));
-		//System.out.write(outStream.toByteArray());
-		Document doc = parseXml(outStream);
-		Element root = doc.getRootElement();
-
-		checkRoot(root);
-		checkWorkflowBundleDocument(root);
-
-	}
-
-
-	protected Object xpathSelectElement(Element element, String xpath) throws JDOMException {
-		XPath x = XPath.newInstance(xpath);
-		x.addNamespace(SCUFL2_NS);
-		x.addNamespace(RDF_NS);
-		x.addNamespace(RDSF_NS);
-		x.addNamespace(BEANSHELL_NS);
-		//x.addNamespace(XML_NS);
-
-		return x.selectSingleNode(element);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java
deleted file mode 100644
index 4ecad1b..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRDFXMLWriter.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.rdfxml.RDFXMLReader;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage.ResourceEntry;
-import org.junit.Before;
-import org.junit.Test;
-
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public class TestRDFXMLWriter {
-
-	private static final String APPLICATION_RDF_XML = "application/rdf+xml";
-	public static final String APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE = "application/vnd.taverna.scufl2.workflow-bundle";
-	protected WorkflowBundle workflowBundle;
-	protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-
-	@Before
-	public void makeExampleWorkflow() {
-		workflowBundle = new TestWorkflowBundleIO().makeWorkflowBundle();
-	}
-	
-	@Test
-    public void awkwardFilenames() throws Exception {
-	    workflowBundle.getProfiles().removeByName("tavernaServer");
-	    String funnyName = "Funny_%2f_characters_50%_of the time";
-        workflowBundle.getMainProfile().setName(funnyName);        
-        workflowBundle.getMainWorkflow().setName(funnyName);
-        File bundleFile = tempFile();
-        bundleIO.writeBundle(workflowBundle, bundleFile,
-                APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-        UCFPackage ucfPackage = new UCFPackage(bundleFile);
-        Map<String, ResourceEntry> profiles = ucfPackage.listResources("profile");
-        assertEquals(2, profiles.size());
-        assertTrue(profiles.keySet().contains("Funny_%252f_characters_50%25_of%20the%20time.rdf"));
-        assertTrue(profiles.keySet().contains("Funny_%252f_characters_50%25_of%20the%20time/"));
-        
-        Map<String, ResourceEntry> workflows = ucfPackage.listResources("workflow");
-        assertEquals(1, workflows.size());
-        assertEquals("Funny_%252f_characters_50%25_of%20the%20time.rdf", workflows.keySet().iterator().next());
-        
-        // and.. can we read it in again correctly?
-        WorkflowBundle readBundle = bundleIO.readBundle(bundleFile, APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-        assertEquals(funnyName, readBundle.getMainProfile().getName());
-        assertEquals(funnyName, readBundle.getMainWorkflow().getName());
-        // did the JSON parse back in?
-        JsonNode oldJson = workflowBundle.getMainProfile().getConfigurations().getByName("Hello").getJson();
-        assertTrue(oldJson.get("script").asText().startsWith("hello"));           
-        JsonNode newJson = readBundle.getMainProfile().getConfigurations().getByName("Hello").getJson();
-        assertTrue(newJson.get("script").asText().startsWith("hello"));        
-        assertEquals(oldJson, newJson);
-    }
-
-	@Test
-	public void writeBundleToFile() throws Exception {
-		File bundleFile = tempFile();
-		bundleIO.writeBundle(workflowBundle, bundleFile,
-				APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-		UCFPackage ucfPackage = new UCFPackage(bundleFile);
-		verifyRootFile(ucfPackage);
-		verifyPackageStructure(ucfPackage);
-		// TODO: Check RDF/XML using xpath
-	}
-
-    private void verifyRootFile(UCFPackage ucfPackage) {
-        List<ResourceEntry> rootFiles = ucfPackage.getRootFiles();
-        assertEquals(1, rootFiles.size());
-		assertEquals("workflowBundle.rdf", rootFiles.get(0).getPath());
-		assertEquals("application/rdf+xml", rootFiles.get(0).getMediaType());
-		assertEquals("0.4.0", rootFiles.get(0).getVersion());
-    }
-
-	
-	@Test
-	public void writeBundleToStream() throws Exception {
-
-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		bundleIO.writeBundle(workflowBundle, outStream,
-				APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-		outStream.close();
-
-		InputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
-		UCFPackage ucfPackage;
-		try {
-			// Avoid UCFPackage from creating a temporary file
-			System.setProperty("org.odftoolkit.odfdom.tmpfile.disable", "true");
-			ucfPackage = new UCFPackage(inStream);
-		} finally {
-			System.clearProperty("org.odftoolkit.odfdom.tmpfile.disable");
-		}
-		verifyPackageStructure(ucfPackage);
-
-	}
-
-	protected void verifyPackageStructure(UCFPackage ucfPackage) {
-		assertEquals(
-				RDFXMLReader.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE,
-				ucfPackage.getPackageMediaType());
-		assertEquals(APPLICATION_RDF_XML,
-				ucfPackage.getResourceEntry("workflowBundle.rdf")
-						.getMediaType());
-
-		assertEquals(APPLICATION_RDF_XML,
-				ucfPackage.getResourceEntry("workflow/HelloWorld.rdf")
-						.getMediaType());
-
-		assertEquals(APPLICATION_RDF_XML,
-				ucfPackage.getResourceEntry("profile/tavernaServer.rdf")
-						.getMediaType());
-		assertEquals(APPLICATION_RDF_XML,
-				ucfPackage.getResourceEntry("profile/tavernaWorkbench.rdf")
-						.getMediaType());
-	}
-
-	public File tempFile() throws IOException {
-		File bundleFile = File.createTempFile("test", ".scufl2");
-//		bundleFile.deleteOnExit();
-		System.out.println(bundleFile);
-		return bundleFile;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java
deleted file mode 100644
index 2ac4bd2..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestResourcesInZip.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.rdfxml.TestRDFXMLWriter.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE;
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.junit.Before;
-import org.junit.Test;
-
-
-@SuppressWarnings("resource")
-public class TestResourcesInZip {
-
-	protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-	protected ExampleWorkflow exampleWorkflow = new ExampleWorkflow();
-	protected WorkflowBundle originalBundle;
-
-
-	@Before
-	public void makeBundle() {
-		originalBundle = exampleWorkflow.makeWorkflowBundle();
-	}
-
-	@Test
-	public void singleFile() throws Exception {
-		UCFPackage resources = originalBundle.getResources();
-		assertEquals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE, resources.getPackageMediaType());
-		resources.addResource("Hello there", "hello.txt", "text/plain");
-		File bundleFile = tempFile();
-		bundleIO.writeBundle(originalBundle, bundleFile, APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);		
-		assertEquals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE, resources.getPackageMediaType());
-		assertEquals(1, resources.getRootFiles().size());
-		assertEquals("workflowBundle.rdf", resources.getRootFiles().get(0).getPath());
-		
-		ZipFile zipFile = new ZipFile(bundleFile);
-		ZipEntry hello = zipFile.getEntry("hello.txt");
-		assertEquals("hello.txt", hello.getName());
-		assertEquals("Hello there",
-				IOUtils.toString(zipFile.getInputStream(hello), "ASCII"));		
-	}
-	
-	@Test
-	public void differentMediaType() throws Exception {
-		UCFPackage resources = originalBundle.getResources();
-		resources.setPackageMediaType("application/x-something-else");
-		assertEquals("application/x-something-else", resources.getPackageMediaType());
-		
-		resources.addResource("Hello there", "hello.txt", "text/plain");
-		File bundleFile = tempFile();
-		bundleIO.writeBundle(originalBundle, bundleFile, APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-		assertEquals("application/x-something-else", resources.getPackageMediaType());
-		assertEquals(0, resources.getRootFiles().size());
-		// RDFXMLWriter does not touch the rootFile or media type if it's non-null
-		
-		ZipFile zipFile = new ZipFile(bundleFile);
-		ZipEntry hello = zipFile.getEntry("hello.txt");
-		assertEquals("hello.txt", hello.getName());
-		assertEquals("Hello there",
-				IOUtils.toString(zipFile.getInputStream(hello), "ASCII"));		
-	}
-	
-	public File tempFile() throws IOException {
-		File bundleFile = File.createTempFile("test", ".scufl2");
-		bundleFile.deleteOnExit();
-		//System.out.println(bundleFile);
-		return bundleFile;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRevisionParsing.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRevisionParsing.java b/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRevisionParsing.java
deleted file mode 100644
index 79cceb8..0000000
--- a/taverna-scufl2-rdfxml/src/test/java/org/apache/taverna/scufl2/rdfxml/TestRevisionParsing.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.rdfxml.RevisionParser;
-import org.junit.Test;
-
-
-public class TestRevisionParsing {
-	
-	private static final String ROEVO_TEST_XML = "roevo-test.xml";
-	RevisionParser parser = new RevisionParser();
-	
-	@Test
-	public void parseTestXML() throws Exception {
-		URL base = getClass().getResource(ROEVO_TEST_XML);
-		assertNotNull("Could not find " + ROEVO_TEST_XML, base);
-		InputStream inStream = base.openStream();
-		Map<URI, Revision> revisions = parser.readRevisionChain(inStream, base.toURI());
-		assertTrue(revisions.size() > 3);
-		
-		Revision r3 = revisions.get(URI.create("http://example.com/test/v3"));
-		assertNotNull("Did not return a Revision", r3);
-		assertEquals("http://example.com/test/v3", r3.getIdentifier().toASCIIString());	
-		
-		GregorianCalendar expectedTime = createTime(2012, 12, 24, 18, 0, 0);
-		assertEquals(expectedTime.getTimeInMillis(), r3.getGeneratedAtTime().getTimeInMillis());
-		
-		
-		
-		assertEquals("http://example.com/InsertNestedWorkflow", 
-				r3.getChangeSpecificationType().toASCIIString());
-		
-		
-		assertEquals(2, r3.getWasAttributedTo().size());
-		assertTrue(r3.getWasAttributedTo().contains(URI.create("http://example.com/Fred")));
-		assertTrue(r3.getWasAttributedTo().contains(URI.create("http://example.net/SomeoneElse#me")));
-		
-		assertEquals(2, r3.getHadOriginalSources().size());
-		List<Revision> originals = new ArrayList<Revision>(r3.getHadOriginalSources());
-		assertEquals("http://example.org/originalSource1", originals.get(0).getIdentifier().toASCIIString());
-		assertEquals("http://example.com/test/originalSource2", originals.get(1).getIdentifier().toASCIIString());
-
-		
-		assertEquals(2, r3.getAdditionOf().size());
-		assertTrue(r3.getAdditionOf().contains(URI.create("http://example.com/test/nested-workflow1")));
-		assertTrue(r3.getAdditionOf().contains(URI.create("http://example.net/nested-workflow2")));
-
-		assertEquals(2, r3.getRemovalOf().size());
-		assertTrue(r3.getRemovalOf().contains(URI.create("http://example.net/removed-item")));
-		assertTrue(r3.getRemovalOf().contains(URI.create("http://example.com/test/removed-item2")));
-
-		assertEquals(2, r3.getModificationsOf().size());
-		assertTrue(r3.getModificationsOf().contains(URI.create("http://example.com/test/modified")));
-		assertTrue(r3.getModificationsOf().contains(URI.create("http://example.net/modified2")));
-
-		Revision r2 = r3.getPreviousRevision();
-		assertEquals("http://example.com/test/v2", r2.getIdentifier().toASCIIString());	
-		
-		GregorianCalendar r2Time = createTime(2010, 1, 15, 11, 0, 0);
-		assertEquals(r2Time.getTimeInMillis(), r2.getGeneratedAtTime().getTimeInMillis());
-
-		Revision r1 = r2.getPreviousRevision();
-		assertEquals("http://example.net/v1", r1.getIdentifier().toASCIIString());
-		Revision r0 = r1.getPreviousRevision();
-		assertEquals("http://example.net/v0", r0.getIdentifier().toASCIIString());
-		assertEquals(null, r0.getPreviousRevision());
-		
-	}
-
-	private GregorianCalendar createTime(int year, int month, int date, int hourOfDay, int minute,
-            int second) {		
-		// WARNING: java.util.GregorianCalendar is the most broken Calendar API I've ever come across.		
-		GregorianCalendar expectedTime = new GregorianCalendar(TimeZone.getTimeZone("GMT+01:00"));
-		// 1) Months (but only months) start at 0, not 1!
-		expectedTime.set(year, month-1, date, hourOfDay, minute, second);
-		// 2) Even if you set the time explicitly, we have to set the millis as well
-		// otherwise it would use the millisecond value at the point of construction (!!)
-		expectedTime.set(Calendar.MILLISECOND, 0);
-		// 3) Still they don't actually compare equal, even if they are at the point in time in
-		// milliseconds since epochs
-		return expectedTime;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example.wfbundle
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example.wfbundle b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example.wfbundle
deleted file mode 100644
index 5e01a49..0000000
Binary files a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example.wfbundle and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/container.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/container.xml b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/container.xml
deleted file mode 100644
index 8d064af..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/container.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<container version="1.0"
-    xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
-    <rootfiles>
-        <rootfile full-path="workflowBundle.ttl"
-         media-type="text/turtle" />  
-        <rootfile full-path="workflowBundle.rdf"
-         media-type="application/rdf+xml" />  
-    </rootfiles>
-    <relationships>
-        <relationship type="metadata" target="/annotation/$dir/$filename.$ext" />
-    </relationships>
-</container>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/manifest.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/manifest.xml b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/manifest.xml
deleted file mode 100644
index f30dd2b..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/META-INF/manifest.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
- <manifest:file-entry manifest:media-type="application/vnd.taverna.scufl2.workflowBundle" manifest:full-path="/"/>
-
- <manifest:file-entry manifest:media-type="text/turtle" manifest:full-path="workflowBundle.ttl"/>
- <manifest:file-entry manifest:media-type="text/turtle" manifest:full-path="workflow/HelloWorld.ttl"/>
- <manifest:file-entry manifest:media-type="text/turtle" manifest:full-path="annotation/workflow/HelloWorld.ttl"/>
- <manifest:file-entry manifest:media-type="text/turtle" manifest:full-path="annotation/workflowBundle.ttl"/>
- <manifest:file-entry manifest:media-type="text/turtle" manifest:full-path="profile/tavernaWorkbench.ttl"/>
- <manifest:file-entry manifest:media-type="text/turtle" manifest:full-path="profile/tavernaServer.ttl"/>
-
- <manifest:file-entry manifest:media-type="application/rdf+xml" manifest:full-path="workflowBundle.rdf"/>
- <manifest:file-entry manifest:media-type="application/rdf+xml" manifest:full-path="workflow/HelloWorld.rdf"/>
- <manifest:file-entry manifest:media-type="application/rdf+xml" manifest:full-path="annotation/workflow/HelloWorld.rdf"/>
- <manifest:file-entry manifest:media-type="application/rdf+xml" manifest:full-path="annotation/workflowBundle.rdf"/>
- <manifest:file-entry manifest:media-type="application/rdf+xml" manifest:full-path="profile/tavernaWorkbench.rdf"/>
- <manifest:file-entry manifest:media-type="application/rdf+xml" manifest:full-path="profile/tavernaServer.rdf"/>
-
- <manifest:file-entry manifest:media-type="image/svg+xml" manifest:full-path="Thumbnails/thumbnail.svg"/>
- <manifest:file-entry manifest:media-type="image/png" manifest:full-path="Thumbnails/thumbnail.png"/>
-
- <manifest:file-entry manifest:media-type="image/svg+xml" manifest:full-path="diagram/workflow/HelloWorld.svg"/>
- <manifest:file-entry manifest:media-type="image/png" manifest:full-path="diagram/workflow/HelloWorld.png"/>
-</manifest:manifest>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.png
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.png b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.png
deleted file mode 100644
index 8b69f43..0000000
Binary files a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.svg
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.svg b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.svg
deleted file mode 100644
index 0c14a45..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/Thumbnails/thumbnail.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
- <!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
-]>
-<!-- Generated by Graphviz version 2.20.2 (Tue Mar &#160;2 19:03:41 UTC 2010)
-     For user: (stain) Stian Soiland&#45;Reyes,,,, -->
-<!-- Title: A_simple_hello_world_workflow Pages: 1 -->
-<svg width="146pt" height="210pt"
- viewBox="0.00 0.00 146.00 210.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 206)">
-<title>A_simple_hello_world_workflow</title>
-<polygon style="fill:#ffffff;stroke:#ffffff;" points="-4,4 -4,-206 142,-206 142,4 -4,4"/>
-<g id="cluster2" class="cluster"><title>cluster_A_simple_hello_world_workflowsinks</title>
-<polygon style="fill:none;stroke:black;stroke-dasharray:1,5;" points="11,-16 11,-73 130,-73 130,-16 11,-16"/>
-<text text-anchor="middle" x="70" y="-60.5" style="font-family:Times New Roman;font-size:10.00;">Workflow output ports</text>
-</g>
-<g id="cluster3" class="cluster"><title>cluster_A_simple_hello_world_workflowsources</title>
-<polygon style="fill:none;stroke:black;stroke-dasharray:1,5;" points="10,-137 10,-194 121,-194 121,-137 10,-137"/>
-<text text-anchor="middle" x="65" y="-181.5" style="font-family:Times New Roman;font-size:10.00;">Workflow input ports</text>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSINKCONTROL -->
-<g id="node2" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSINKCONTROL</title>
-<polygon style="fill:#66cd00;stroke:black;" points="96,-28 102,-37 90,-37 96,-28"/>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results -->
-<g id="node3" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results</title>
-<polygon style="fill:#8ed6f0;stroke:black;" points="67,-44 23,-44 23,-24 67,-24 67,-44"/>
-<text text-anchor="middle" x="45" y="-31" style="font-family:Arial;font-size:10.00;">results</text>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCECONTROL -->
-<g id="node5" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCECONTROL</title>
-<polygon style="fill:#ff4040;stroke:black;" points="101,-161 95,-152 107,-152 101,-161"/>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName -->
-<g id="node6" class="node"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName</title>
-<polygon style="fill:#8ed6f0;stroke:black;" points="86,-165 26,-165 26,-145 86,-145 86,-165"/>
-<text text-anchor="middle" x="56" y="-152" style="font-family:Arial;font-size:10.00;">yourName</text>
-</g>
-<!-- A_simple_hello_world_workflowBeanshell -->
-<g id="node7" class="node"><title>A_simple_hello_world_workflowBeanshell</title>
-<polygon style="fill:#deb887;stroke:black;" points="58,-129 2.13163e-14,-129 0,-109 58,-109 58,-129"/>
-<text text-anchor="middle" x="29" y="-116" style="font-family:Arial;font-size:10.00;">Beanshell</text>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowBeanshell -->
-<g id="edge4" class="edge"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowBeanshell</title>
-<path style="fill:none;stroke:#000000;" d="M48,-145C46,-143 44,-140 42,-138"/>
-<polygon style="fill:#000000;stroke:#000000;" points="44.916,-136.042 37,-129 38.7969,-139.441 44.916,-136.042"/>
-</g>
-<!-- A_simple_hello_world_workflowMerge0 -->
-<g id="node8" class="node"><title>A_simple_hello_world_workflowMerge0</title>
-<ellipse style="fill:#4f94cd;stroke:black;" cx="45" cy="-87" rx="6" ry="6"/>
-</g>
-<!-- A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowMerge0 -->
-<g id="edge6" class="edge"><title>A_simple_hello_world_workflowWORKFLOWINTERNALSOURCE_yourName&#45;&gt;A_simple_hello_world_workflowMerge0</title>
-<path style="fill:none;stroke:#000000;" d="M58,-145C60,-135 61,-121 58,-109 57,-106 56,-103 54,-100"/>
-<polygon style="fill:#000000;stroke:#000000;" points="57.268,-98.625 49,-92 51.332,-102.335 57.268,-98.625"/>
-</g>
-<!-- A_simple_hello_world_workflowBeanshell&#45;&gt;A_simple_hello_world_workflowMerge0 -->
-<g id="edge8" class="edge"><title>A_simple_hello_world_workflowBeanshell&#45;&gt;A_simple_hello_world_workflowMerge0</title>
-<path style="fill:none;stroke:#000000;" d="M34,-109C35,-107 36,-105 38,-102"/>
-<polygon style="fill:#000000;stroke:#000000;" points="41.1369,-103.56 42,-93 34.7402,-100.717 41.1369,-103.56"/>
-</g>
-<!-- A_simple_hello_world_workflowMerge0&#45;&gt;A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results -->
-<g id="edge10" class="edge"><title>A_simple_hello_world_workflowMerge0&#45;&gt;A_simple_hello_world_workflowWORKFLOWINTERNALSINK_results</title>
-<path style="fill:none;stroke:#000000;" d="M45,-81C45,-74 45,-64 45,-54"/>
-<polygon style="fill:#000000;stroke:#000000;" points="48.5001,-54 45,-44 41.5001,-54 48.5001,-54"/>
-</g>
-</g>
-</svg>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflow/HelloWorld.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflow/HelloWorld.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflow/HelloWorld.rdf
deleted file mode 100644
index 46152dc..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflow/HelloWorld.rdf
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<rdf:RDF xmlns="http://purl.org/dc/elements/1.1/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:scufl2="http://ns.taverna.org.uk/2010/scufl2#"
-    xml:base="../../workflow/HelloWorld/">
-
-    <rdf:Description rdf:about="">
-        <date>2010-07-28</date>
-        <description>A simple hello world workflow</description>
-    </rdf:Description>
-
-    <rdf:Description rdf:about="datalink/5">
-        <description>Connects workflow input port "yourName"
-    directly to be merged on workflow output port "result". Merged in
-    position 1, meaning that the data from "Hello" will come first. </description>
-    </rdf:Description>
-
-    <rdf:Description rdf:about="in/yourName">
-        <scufl2:exampleValue>John Doe</scufl2:exampleValue>
-        <description>Your name</description>
-    </rdf:Description>
-
-    <rdf:Description rdf:about="out/results">
-        <scufl2:exampleList rdf:parseType="Resource">
-            <rdf:first>Hello, John Doe!</rdf:first>
-            <rdf:rest rdf:parseType="Resource">
-                <rdf:first>John Doe</rdf:first>
-                <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
-            </rdf:rest>
-        </scufl2:exampleList>
-        <description>Personalised greeting, followed by name</description>
-    </rdf:Description>
-
-    <rdf:Description rdf:about="processor/Hello">
-        <description>A service that says greets the given name</description>
-        <title>Hello world</title>
-    </rdf:Description>
-
-    <rdf:Description rdf:about="processor/Hello/in/name">
-        <scufl2:exampleValue>Stian</scufl2:exampleValue>
-        <description>Name of person to greet</description>
-    </rdf:Description>
-
-    <rdf:Description rdf:about="processor/Hello/out/greeting">
-        <scufl2:exampleValue>Hello, Stian!</scufl2:exampleValue>
-        <description>Personalised greeting</description>
-    </rdf:Description>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflowBundle.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflowBundle.rdf b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflowBundle.rdf
deleted file mode 100644
index e4317f1..0000000
--- a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/annotation/workflowBundle.rdf
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version='1.0'?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-
-<!-- Processed by Id: cwm.py,v 1.197 2007/12/13 15:38:39 syosi Exp -->
-<!--     using base file:///home/stain/stuff/src/workspace/scufl2/scufl2-rdf/src/main/resources/example/annotation/workflowBundle.ttl-->
-
-
-<rdf:RDF xmlns="http://purl.org/dc/elements/1.1/"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-    xmlns:dcterms="http://purl.org/dc/terms/"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-
-    <rdf:Description rdf:about="../">
-		<dcterms:created>2010-07-29T14:12:14+01:00</dcterms:created>
-		<dcterms:modified>2010-07-29T14:12:14+01:00</dcterms:modified>
-        <dc:creator>Stian Soiland-Reyes</dc:creator>
-        <dc:description>An example workflow to illustrate SCUFL2</dc:description>
-    </rdf:Description>
-</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.png
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.png b/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.png
deleted file mode 100644
index 74bc4e1..0000000
Binary files a/taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/diagram/workflow/HelloWorld.png and /dev/null differ


[05/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/missing_produced_by_941.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/missing_produced_by_941.t2flow b/taverna-scufl2-t2flow/src/test/resources/missing_produced_by_941.t2flow
deleted file mode 100644
index a259a00..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/missing_produced_by_941.t2flow
+++ /dev/null
@@ -1,247 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1"><dataflow id="00c8a793-d305-494b-ba61-a1fd2a0986df" role="top"><name>dataflow0</name><inputPorts /><outputPorts><port><name>mzs</name></port><port><name>intensities</name></port></outputPorts><processors><processor><name>getPeak</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="parameters" to="parameters" /></inputMap><outputMap><map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.massbank.jp/api/services/MassBankAPI?wsdl</wsdl>
-  <operation>getPeak</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getPeak_input</name><inputPorts><port><name>ids</name><depth>1</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity</c
 lass><inputMap><map from="ids" to="ids" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getPeak" name="parameters" qname="{http://api.massbank}getPeak"&gt;&lt;s:elements&gt;&lt;s:arraytype optional="true" unbounded="true" wrapped="false" typename="string" name="ids" qname="{http://api.massbank}&amp;gt;getPeak&amp;gt;ids"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>ids</name>
-      <depth>1</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">l('text/plain')</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="ids" depth="1" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>String_Constant</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value"
  /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>KO009304</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>XPath_From_Text</name><inputPorts><port><name>xml-text</name><depth>0</depth></port><port><name>xpath</name><depth>0</depth></port></inputPorts><outputPorts><port><name>nodelist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><i
 nputMap><map from="xml-text" to="xml-text" /><map from="xpath" to="xpath" /></inputMap><outputMap><map from="nodelist" to="nodelist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <script>import org.dom4j.Document;
-import org.dom4j.Node;
-import org.dom4j.io.SAXReader;
-
-SAXReader reader = new SAXReader(false);
-reader.setIncludeInternalDTDDeclarations(false);
-reader.setIncludeExternalDTDDeclarations(false);
-
-Document document = reader.read(new StringReader(xmltext));
-List nodelist = document.selectNodes(xpath);
-
-// Process the elements in the nodelist
-ArrayList outputList = new ArrayList();
-ArrayList outputXmlList = new ArrayList();
-
-String val = null;
-String xmlVal = null;
-for (Iterator iter = nodelist.iterator(); iter.hasNext();) {
-	Node element = (Node) iter.next();
-	xmlVal = element.asXML();
-	val = element.getStringValue();
-	if (val != null &amp;&amp; !val.equals("")) {
-		outputList.add(val);
-		outputXmlList.add(xmlVal);
-	}
-
-}
-
-List nodelist=outputList;
-List nodelistAsXML=outputXmlList;</script>
-  <dependencies>
-    <string>dom4j:dom4j:1.6</string>
-  </dependencies>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>dom4j</groupId>
-      <artifactId>dom4j</artifactId>
-      <version>1.6</version>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-  </artifactDependencies>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>xpath</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>xml-text</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/xml'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>nodelist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>nodelistAsXML</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="xml-text" depth="0" /><port name="xpath" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>XPath_From_Text0</name><inputPorts><port><name>xml-text</name><depth>0</depth></port><port><name>xpath</name><depth>0</depth></port></inputPorts><outputPorts><port><name>nodelist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>0.4</ver
 sion></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="xml-text" to="xml-text" /><map from="xpath" to="xpath" /></inputMap><outputMap><map from="nodelist" to="nodelist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <script>import org.dom4j.Document;
-import org.dom4j.Node;
-import org.dom4j.io.SAXReader;
-
-SAXReader reader = new SAXReader(false);
-reader.setIncludeInternalDTDDeclarations(false);
-reader.setIncludeExternalDTDDeclarations(false);
-
-Document document = reader.read(new StringReader(xmltext));
-List nodelist = document.selectNodes(xpath);
-
-// Process the elements in the nodelist
-ArrayList outputList = new ArrayList();
-ArrayList outputXmlList = new ArrayList();
-
-String val = null;
-String xmlVal = null;
-for (Iterator iter = nodelist.iterator(); iter.hasNext();) {
-	Node element = (Node) iter.next();
-	xmlVal = element.asXML();
-	val = element.getStringValue();
-	if (val != null &amp;&amp; !val.equals("")) {
-		outputList.add(val);
-		outputXmlList.add(xmlVal);
-	}
-
-}
-
-List nodelist=outputList;
-List nodelistAsXML=outputXmlList;</script>
-  <dependencies>
-    <string>dom4j:dom4j:1.6</string>
-  </dependencies>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>dom4j</groupId>
-      <artifactId>dom4j</artifactId>
-      <version>1.6</version>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-  </artifactDependencies>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>xpath</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>xml-text</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/xml'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>nodelist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>nodelistAsXML</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="xml-text" depth="0" /><port name="xpath" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>String_Constant0</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><o
 utputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>//ax21:intensities</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>String_Constant1</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.s
 f.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>//ax21:mzs</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>getPeak</processor><port>parameters</port></sink><source type="processor"><processor>getPeak_input</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>getPeak_input</processor><port>ids</port></sink><source type="processor"><processor>String_Constant</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>XPath_From_Text</processor><port>xml-
 text</port></sink><source type="processor"><processor>getPeak</processor><port>parameters</port></source></datalink><datalink><sink type="processor"><processor>XPath_From_Text</processor><port>xpath</port></sink><source type="processor"><processor>String_Constant0</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>XPath_From_Text0</processor><port>xml-text</port></sink><source type="processor"><processor>getPeak</processor><port>parameters</port></source></datalink><datalink><sink type="processor"><processor>XPath_From_Text0</processor><port>xpath</port></sink><source type="processor"><processor>String_Constant1</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>mzs</port></sink><source type="processor"><processor>XPath_From_Text0</processor><port>nodelist</port></source></datalink><datalink><sink type="dataflow"><port>intensities</port></sink><source type="processor"><processor>XPath_From_Text</processor>
 <port>nodelist</port></source></datalink></datalinks><annotations /></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/random.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/random.t2flow b/taverna-scufl2-t2flow/src/test/resources/random.t2flow
deleted file mode 100644
index e68bc17..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/random.t2flow
+++ /dev/null
@@ -1,219 +0,0 @@
-<?xml version="1.0"?>
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.1-beta-2"><dataflow id="e87de19a-02c7-4106-ae81-0b8e28efb22c" role="top"><name>Workflow9</name><inputPorts><port><name>InputText</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Text text from which you want to extract terms</text>
-      </annotationBean>
-      <date>2009-07-23 16:52:37.781 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>Technical terms are important for knowledge mining, especially in the bio-medical area where vast amount of documents are available. Technical terms are important for knowledge mining, especially in the bio-medical area where vast amount of documents are available. Technical terms are important for knowledge mining, especially in the bio-medical area where vast amount of documents are available. Technical terms are important for knowledge mining, especially in the bio-medical area where vast amount of documents are available.</text>
-      </annotationBean>
-      <date>2009-07-23 15:11:57.453 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Text text from which you want to extract terms. This should be in utf-8 format but can be in natural language form. This workflow assumes the language is English.</text>
-      </annotationBean>
-      <date>2009-07-23 16:53:50.984 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>Terms</name></port></outputPorts><processors><processor><name>SentenceSplitter</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="parameters" to="parameters" /></inputMap><outputMap><map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://nactem.mib.man.ac.uk:8082/SentenceBreaker/SentBreakerService?wsdl</wsdl>
-  <operation>annotateSentences</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>SentenceSplitter_input</name><inputPorts><port><name>text</name><depth>0</depth></port><port><name>formatFlag</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>0.8</version></raven><class>net.sf
 .taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap><map from="formatFlag" to="formatFlag" /><map from="text" to="text" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="annotateSentences" name="parameters" qname="{http://soapservices/}annotateSentences"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="int" name="formatFlag" qname="annotateSentences&amp;gt;formatFlag" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="text" qname="annotateSentences&amp;gt;text" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>formatFlag</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>text</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="text" depth="0" /><port name="formatFlag" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>formatFlag_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMa
 p /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>4</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>SentenceSplitter_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts><port><name>return</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input
 " /></inputMap><outputMap><map from="return" to="return" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="annotateSentencesResponse" name="parameters" qname="{http://soapservices/}annotateSentencesResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="return" qname="annotateSentencesResponse&amp;gt;return" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>return</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>TerMine</name><inputPorts><port><name>src</name><depth>0</depth></port><port><name>input_format</name><depth>0</depth></port><port><name>output_format</name><depth>0</depth></port><port><name>stoplist</name><depth>0</depth></port><port><name>filter</name><depth>0</depth></port></inputPorts><outputPorts><port><name>result</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><ac
 tivity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="input_format" to="input_format" /><map from="output_format" to="output_format" /><map from="src" to="src" /><map from="stoplist" to="stoplist" /><map from="filter" to="filter" /></inputMap><outputMap><map from="result" to="result" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.nactem.ac.uk/software/termine/webservice/termine.wsdl</wsdl>
-  <operation>analyze</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="src" depth="0" /><port name="input_format" depth="0" /><port name="output_format" depth="0" /><port name="stoplist" depth="0" /><port name="filter" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>input_format_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.
 8</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>plain.genia</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>output_format_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream
 "><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>xml</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>stoplist_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><ne
 t.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>""</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>filter_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.
 sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value />
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.8</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>SentenceSplitter</processor><port>parameters</port></sink><source type="processor"><processor>SentenceSplitter_input</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>SentenceSplitter_input</processor><port>text</port></sink><source type="dataflow"><port>InputText</port></source></datalink><datalink><sink type="processor"><processor>SentenceSplitter_input</processor><port
 >formatFlag</port></sink><source type="processor"><processor>formatFlag_value</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>SentenceSplitter_output</processor><port>input</port></sink><source type="processor"><processor>SentenceSplitter</processor><port>parameters</port></source></datalink><datalink><sink type="processor"><processor>TerMine</processor><port>src</port></sink><source type="processor"><processor>SentenceSplitter_output</processor><port>return</port></source></datalink><datalink><sink type="processor"><processor>TerMine</processor><port>input_format</port></sink><source type="processor"><processor>input_format_value</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>TerMine</processor><port>output_format</port></sink><source type="processor"><processor>output_format_value</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>TerMine</processor>
 <port>stoplist</port></sink><source type="processor"><processor>stoplist_value</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>TerMine</processor><port>filter</port></sink><source type="processor"><processor>filter_value</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>Terms</port></sink><source type="processor"><processor>TerMine</processor><port>result</port></source></datalink></datalinks><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
-        <text>Term Extraction using NaCTeM's TerMine tool.</text>
-      </annotationBean>
-      <date>2009-07-23 16:55:16.0 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Pass in text and retrieve a list of terms discovered ranked by their importance within the text.</text>
-      </annotationBean>
-      <date>2009-07-23 16:55:48.328 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
-        <text>Brian Rea - National Centre for Text Mining (NaCTeM), University of Manchester</text>
-      </annotationBean>
-      <date>2009-07-23 16:54:56.921 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/rest-2-2.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/rest-2-2.t2flow b/taverna-scufl2-t2flow/src/test/resources/rest-2-2.t2flow
deleted file mode 100755
index d88967e..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/rest-2-2.t2flow
+++ /dev/null
@@ -1,79 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="44e3e7d3-df8c-401b-8b77-9d001343d8c2" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>default</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.ui-activities</group><artifact>rest-activity</artifact><version>0.3.1</version></raven><class>net.sf.taverna.t2.activities.rest.RESTActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean xmlns="">
-  <httpMethod>GET</httpMethod>
-  <urlSignature>http://www.myexperiment.org/user.xml?id={userID}</urlSignature>
-  <acceptsHeaderValue>text/plain</acceptsHeaderValue>
-  <contentTypeForUpdates>application/xml</contentTypeForUpdates>
-  <outgoingDataFormat>String</outgoingDataFormat>
-  <sendHTTPExpectRequestHeader>false</sendHTTPExpectRequestHeader>
-  <showRedirectionOutputPort>false</showRedirectionOutputPort>
-  <activityInputs>
-    <entry>
-      <string>userID</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-  </activityInputs>
-</net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>put</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.ui-activities</group><artifact>rest-activity</artifact><version>0.3.1</version></raven><class>net.sf.taverna.t2.activities.rest.RESTActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean xmlns="">
-  <httpMethod>PUT</httpMethod>
-  <urlSignature>http://example.com/{thing}/user.xml?id={userID}</urlSignature>
-  <acceptsHeaderValue>application/xml</acceptsHeaderValue>
-  <contentTypeForUpdates>application/json</contentTypeForUpdates>
-  <outgoingDataFormat>String</outgoingDataFormat>
-  <sendHTTPExpectRequestHeader>true</sendHTTPExpectRequestHeader>
-  <showRedirectionOutputPort>true</showRedirectionOutputPort>
-  <activityInputs>
-    <entry>
-      <string>userID</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-    <entry>
-      <string>thing</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-  </activityInputs>
-</net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>post</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.ui-activities</group><artifact>rest-activity</artifact><version>0.3.1</version></raven><class>net.sf.taverna.t2.activities.rest.RESTActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean xmlns="">
-  <httpMethod>POST</httpMethod>
-  <urlSignature>http://www.myexperiment.org/user.xml?id={userID}</urlSignature>
-  <acceptsHeaderValue>text/plain</acceptsHeaderValue>
-  <contentTypeForUpdates>application/zip</contentTypeForUpdates>
-  <outgoingDataFormat>Binary</outgoingDataFormat>
-  <sendHTTPExpectRequestHeader>false</sendHTTPExpectRequestHeader>
-  <showRedirectionOutputPort>false</showRedirectionOutputPort>
-  <activityInputs>
-    <entry>
-      <string>userID</string>
-      <java-class>java.lang.String</java-class>
-    </entry>
-  </activityInputs>
-</net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks /><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>44e3e7d3-df8c-401b-8b77-9d001343d8c2</identification>
-      </annotationBean>
-      <date>2011-08-30 16:11:29.231 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file


[41/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/foaf.rdf
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/foaf.rdf b/taverna-robundle/src/main/resources/ontologies/foaf.rdf
deleted file mode 100644
index cf6a2a9..0000000
--- a/taverna-robundle/src/main/resources/ontologies/foaf.rdf
+++ /dev/null
@@ -1,640 +0,0 @@
-<?xml version='1.0'?>
-
-<!--
-
-
-This work is licensed under a Creative Commons Attribution License. This copyright applies to the FOAF Vocabulary Specification and accompanying documentation in RDF.
-
-http://creativecommons.org/licenses/by/1.0/
-
-
-You are free to:
-
-    Share — copy and redistribute the material in any medium or format
-    Adapt — remix, transform, and build upon the material
-    for any purpose, even commercially.
-
-    The licensor cannot revoke these freedoms as long as you follow the license terms.
-
-Under the following terms:
-
-    Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
-
-    No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
-
-
-Notices:
-
-    You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.
-    No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.
-
-
-
-     -->
-
-<!-- This is the FOAF formal vocabulary description, expressed using W3C RDFS and OWL markup. foaf/spec version -->
-<!-- For more information about FOAF:                                            -->
-<!--   see the FOAF project homepage, http://www.foaf-project.org/               -->
-<!--   FOAF specification, http://xmlns.com/foaf/spec/                             -->
-<!--                                                                             -->
-<!-- first we introduce a number of RDF namespaces we will be using... -->
-<rdf:RDF 
-	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
-	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
-	xmlns:owl="http://www.w3.org/2002/07/owl#" 
-	xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#" 
-	xmlns:foaf="http://xmlns.com/foaf/0.1/" 
-	xmlns:wot="http://xmlns.com/wot/0.1/" 
-	xmlns:dc="http://purl.org/dc/elements/1.1/">
-<!-- Here we describe general characteristics of the FOAF vocabulary ('ontology'). -->
-  <owl:Ontology rdf:about="http://xmlns.com/foaf/0.1/" dc:title="Friend of a Friend (FOAF) vocabulary" dc:description="The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language." >
-  </owl:Ontology>
-
-
-  <!-- OWL/RDF interop section - geeks only -->
-  <!--  most folk can ignore this lot. the game here is to make FOAF
-  	work with vanilla RDF/RDFS tools, and with the stricter OWL DL 
-	profile of OWL. At the moment we're in the OWL Full flavour of OWL. 
-	The following are tricks to try have the spec live in both worlds
-	at once. See
-		http://phoebus.cs.man.ac.uk:9999/OWL/Validator
-		http://www.mindswap.org/2003/pellet/demo.shtml
-	...for some tools that help. 					-->
-  <owl:AnnotationProperty rdf:about="http://xmlns.com/wot/0.1/assurance"/>
-  <owl:AnnotationProperty rdf:about="http://xmlns.com/wot/0.1/src_assurance"/>
-  <owl:AnnotationProperty rdf:about="http://www.w3.org/2003/06/sw-vocab-status/ns#term_status"/>
-  <!--  DC terms are NOT annotation properties in general, so we consider the following 
-	claims scoped to this document. They may be removed in future revisions if
-	OWL tools become more flexible. -->
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/description"/>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/title"/>
-  <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/date"/>
-  <owl:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Class"/>
-
-<!--  <owl:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Resource"/>
-  <owl:Class rdf:about="http://www.w3.org/2000/01/rdf-schema#Literal"/> -->
-  <!-- end of OWL/RDF interop voodoo. mostly. -->
-
-  <!-- utility class, a candidate for replacing the pattern of subproperty-ing rdfs:label -->
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/LabelProperty" vs:term_status="unstable">
-    <rdfs:label>Label Property</rdfs:label>
-    <rdfs:comment>A foaf:LabelProperty is any RDF property with texual values that serve as labels.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-
-<!-- FOAF classes (types) are listed first. -->
-
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Person" rdfs:label="Person" rdfs:comment="A person." vs:term_status="stable">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Person"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/foaf/0.1/Agent"/></rdfs:subClassOf>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Agent"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf><owl:Class rdf:about="http://www.w3.org/2000/10/swap/pim/contact#Person" rdfs:label="Person"/></rdfs:subClassOf>
-    <rdfs:subClassOf><owl:Class rdf:about="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing" rdfs:label="Spatial Thing"/></rdfs:subClassOf>
-    <!-- aside: 
-	are spatial things always spatially located? 
-	Person includes imaginary people... discuss... -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-
-<!--    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Document"/> this was a mistake; tattoo'd people, for example. -->
-
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Project"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Document" rdfs:label="Document" rdfs:comment="A document." vs:term_status="testing">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf rdf:resource="http://xmlns.com/wordnet/1.6/Document"/> -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Organization"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Project"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Organization" rdfs:label="Organization" rdfs:comment="An organization." vs:term_status="stable">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Organization"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Group" vs:term_status="stable" rdfs:label="Group" rdfs:comment="A class of Agents.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Agent" vs:term_status="stable" rdfs:label="Agent" rdfs:comment="An agent (eg. person, group, software or physical artifact).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <owl:equivalentClass rdf:resource="http://purl.org/dc/terms/Agent"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Agent-3"/></rdfs:subClassOf> -->
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Project" vs:term_status="testing" rdfs:label="Project" rdfs:comment="A project (a collective endeavour of some kind).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Project"/></rdfs:subClassOf> -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <owl:disjointWith rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-<!-- arguably a subclass of Agent; to be discussed -->
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/Image" vs:term_status="testing" rdfs:label="Image" rdfs:comment="An image.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-<!--    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Document"/></rdfs:subClassOf> -->
-    <rdfs:subClassOf><owl:Class rdf:about="http://xmlns.com/foaf/0.1/Document"/></rdfs:subClassOf>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/PersonalProfileDocument" rdfs:label="PersonalProfileDocument" rdfs:comment="A personal profile RDF document." vs:term_status="testing">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-  </rdfs:Class>
-	
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineAccount" vs:term_status="testing" rdfs:label="Online Account" rdfs:comment="An online account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing" rdfs:label="Thing"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineGamingAccount" vs:term_status="unstable" rdfs:label="Online Gaming Account" rdfs:comment="An online gaming account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineEcommerceAccount" vs:term_status="unstable" rdfs:label="Online E-commerce Account" rdfs:comment="An online e-commerce account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-  <rdfs:Class rdf:about="http://xmlns.com/foaf/0.1/OnlineChatAccount" vs:term_status="unstable" rdfs:label="Online Chat Account" rdfs:comment="An online chat account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
-    <rdfs:subClassOf rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdfs:Class>
-<!-- FOAF properties (ie. relationships). -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/mbox" vs:term_status="stable" rdfs:label="personal mailbox" rdfs:comment="A 
-personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that  there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/mbox_sha1sum" vs:term_status="testing" rdfs:label="sha1sum of a personal mailbox URI name" rdfs:comment="The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the  first owner of the mailbox.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-
-<!--
-put it back in again 2006-01-29 - see 
-http://chatlogs.planetrdf.com/swig/2006-01-29.html#T21-12-35
-I have mailed rdfweb-dev@vapours.rdfweb.org for discussion.
-Libby
-
-Commenting out as a kindness to OWL DL users. The semantics didn't quite cover
-our usage anyway, since (a) we want static-across-time, which is so beyond OWL as 
-to be from another planet (b) we want identity reasoning invariant across xml:lang 
-tagging. FOAF code will know what to do. OWL folks note, this assertion might return. 
-
-danbri
--->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/gender" vs:term_status="testing" 
-rdfs:label="gender" 
-rdfs:comment="The gender of this Agent (typically but not necessarily 'male' or 'female').">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <!-- whatever one's gender is, and we are liberal in leaving room for more options 
-    than 'male' and 'female', we model this so that an agent has only one gender. -->
-  </rdf:Property>
-
-
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/geekcode" vs:term_status="archaic" rdfs:label="geekcode" rdfs:comment="A textual geekcode for this person, see http://www.geekcode.com/geek.html">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/dnaChecksum" vs:term_status="archaic" rdfs:label="DNA checksum" rdfs:comment="A checksum for the DNA of some thing. Joke.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/sha1" vs:term_status="unstable" rdfs:label="sha1sum (hex)" rdfs:comment="A sha1sum hash, in hex.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-<!-- rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty" -->
-<!-- IFP under discussion -->
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/based_near" vs:term_status="testing" rdfs:label="based near" rdfs:comment="A location that something is based near, for some broadly human notion of near.">
-<!-- see http://esw.w3.org/topic/GeoOnion for extension  ideas -->
-<!-- this was ranged as Agent... hmm -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- FOAF naming properties -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/title" vs:term_status="testing" rdfs:label="title" rdfs:comment="Title (Mr, Mrs, Ms, Dr. etc)">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/nick" vs:term_status="testing" rdfs:label="nickname" rdfs:comment="A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- ......................... chat IDs ........................... -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/jabberID" vs:term_status="testing" rdfs:label="jabber ID" rdfs:comment="A jabber ID for something.">
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-<!--
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-...different to the other IM IDs, as Jabber has wider usage, so 
-we don't want the implied rdfs:domain here.
-
--->
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <!-- there is a case for using resources/URIs here, ... -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/aimChatID" vs:term_status="testing" rdfs:label="AIM chat ID" rdfs:comment="An AIM chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/skypeID" vs:term_status="testing" rdfs:label="Skype ID" rdfs:comment="A Skype ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <!-- todo: OWL2 easy key definition -->
-  </rdf:Property>
-
-<!-- http://www.stud.uni-karlsruhe.de/~uck4/ICQ/Packet-112.html -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/icqChatID" vs:term_status="testing" rdfs:label="ICQ chat ID" rdfs:comment="An ICQ chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/yahooChatID" vs:term_status="testing" rdfs:label="Yahoo chat ID" rdfs:comment="A Yahoo chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/msnChatID" vs:term_status="testing" rdfs:label="MSN chat ID" rdfs:comment="An MSN chat ID">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-  </rdf:Property>
-<!-- ....................................................... -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/name" vs:term_status="testing" rdfs:label="name" rdfs:comment="A name for some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:subPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#label"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/firstName" vs:term_status="testing" rdfs:label="firstName" rdfs:comment="The first name of a person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/lastName" vs:term_status="testing" rdfs:label="lastName" rdfs:comment="The last name of a person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/givenName" vs:term_status="testing" rdfs:label="Given name" rdfs:comment="The given name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/givenname" vs:term_status="archaic" rdfs:label="Given name" rdfs:comment="The given name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/surname" vs:term_status="archaic" rdfs:label="Surname" rdfs:comment="The surname of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/family_name" vs:term_status="archaic" rdfs:label="family_name" rdfs:comment="The family name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/familyName" vs:term_status="testing" rdfs:label="familyName" rdfs:comment="The family name of some person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- end of naming properties. See http://rdfweb.org/issues/show_bug.cgi?id=7
-	   for open issue / re-design discussions.
-	-->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/phone" vs:term_status="testing" rdfs:label="phone" rdfs:comment="A phone,  specified using fully qualified tel: URI scheme (refs: http://www.w3.org/Addressing/schemes.html#tel).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/homepage" vs:term_status="stable" rdfs:label="homepage" rdfs:comment="A homepage for some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <!--  previously: rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent" -->
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/weblog" vs:term_status="testing" rdfs:label="weblog" rdfs:comment="A weblog of some thing (whether person, group, company etc.).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/openid" vs:term_status="testing" rdfs:label="openid" rdfs:comment="An OpenID for an Agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/tipjar" vs:term_status="testing" rdfs:label="tipjar" rdfs:comment="A tipjar document for this agent, describing means for payment and reward.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/plan" vs:term_status="testing" rdfs:label="plan" rdfs:comment="A .plan comment, in the tradition of finger and '.plan' files.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/made" vs:term_status="stable" rdfs:label="made" rdfs:comment="Something that was made by this agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/maker"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/maker"  vs:term_status="stable" rdfs:label="maker" rdfs:comment="An agent that 
-made this thing.">
-    <owl:equivalentProperty rdf:resource="http://purl.org/dc/terms/creator"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/made"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/img" vs:term_status="testing" rdfs:label="image" rdfs:comment="An image that can be used to represent some thing (ie. those depictions which are particularly representative of something, eg. one's photo on a homepage).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/depiction"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/depiction" vs:term_status="testing" rdfs:label="depiction" rdfs:comment="A depiction of some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/depicts"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/depicts" vs:term_status="testing" rdfs:label="depicts" rdfs:comment="A thing depicted in this representation.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/depiction"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/thumbnail" vs:term_status="testing" rdfs:label="thumbnail" rdfs:comment="A derived thumbnail image.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Image"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/myersBriggs" vs:term_status="testing" rdfs:label="myersBriggs" rdfs:comment="A Myers Briggs (MBTI) personality classification.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/workplaceHomepage" vs:term_status="testing" rdfs:label="workplace homepage" rdfs:comment="A workplace homepage of some person; the homepage of an organization they work for.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/workInfoHomepage" vs:term_status="testing" rdfs:label="work info homepage" rdfs:comment="A work info homepage of some person; a page about their work for some organization.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/schoolHomepage" vs:term_status="testing" rdfs:label="schoolHomepage" rdfs:comment="A homepage of a school attended by the person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/knows" vs:term_status="stable" rdfs:label="knows" rdfs:comment="A person known by this person (indicating some level of reciprocated interaction between the parties).">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/interest" vs:term_status="testing" rdfs:label="interest" rdfs:comment="A page about a topic of interest to this person.">
-<!-- we should distinguish the page from the topic more carefully. danbri 2002-07-08 -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/topic_interest" vs:term_status="testing" rdfs:label="topic_interest" rdfs:comment="A thing of interest to this person.">
-<!-- we should distinguish the page from the topic more carefully. danbri 2002-07-08 -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/publications" vs:term_status="testing" rdfs:label="publications" rdfs:comment="A link to the publications of this person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-<!-- by libby for ILRT mappings 2001-10-31 -->
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/currentProject" vs:term_status="testing" rdfs:label="current project" rdfs:comment="A current project this person works on.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/pastProject" vs:term_status="testing" rdfs:label="past project" rdfs:comment="A project this person has previously worked on.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/fundedBy" vs:term_status="archaic" rdfs:label="funded by" rdfs:comment="An organization funding a project or person.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/logo" vs:term_status="testing" rdfs:label="logo" rdfs:comment="A logo representing some thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/topic" vs:term_status="testing" rdfs:label="topic" rdfs:comment="A topic of some page or document.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/primaryTopic"
- vs:term_status="stable" rdfs:label="primary topic" rdfs:comment="The primary topic of some page or document.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/focus"  vs:term_status="testing" rdfs:label="focus" rdfs:comment="The underlying or 'focal' entity associated with some SKOS-described concept.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2004/02/skos/core#Concept" rdfs:label="Concept"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/isPrimaryTopicOf"
- vs:term_status="stable" rdfs:label="is primary topic of" rdfs:comment="A document that this thing is the primary topic of.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
-    <rdfs:subPropertyOf rdf:resource="http://xmlns.com/foaf/0.1/page"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/primaryTopic"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/page" vs:term_status="testing" rdfs:label="page" rdfs:comment="A page or document about this thing.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-    <owl:inverseOf rdf:resource="http://xmlns.com/foaf/0.1/topic"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/theme" vs:term_status="archaic" rdfs:label="theme" rdfs:comment="A theme.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/account" vs:term_status="testing" rdfs:label="account" rdfs:comment="Indicates an account held by this agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/holdsAccount" vs:term_status="archaic" rdfs:label="account" rdfs:comment="Indicates an account held by this agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/accountServiceHomepage" vs:term_status="testing" rdfs:label="account service homepage" rdfs:comment="Indicates a homepage of the service provide for this online account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/accountName" vs:term_status="testing" rdfs:label="account name" rdfs:comment="Indicates the name (identifier) associated with this online account.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/member" vs:term_status="stable" rdfs:label="member" rdfs:comment="Indicates a member of a Group">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Group"/>
-    <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/membershipClass" vs:term_status="unstable" rdfs:label="membershipClass" rdfs:comment="Indicates the class of individuals that are a member of a Group">
-    <!-- maybe we should just use SPARQL or Rules, instead of trying to use OWL here -->
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
-    <!-- Added to keep OWL DL from bluescreening. DON'T CROSS THE STREAMERS, etc. -->
-    <!-- This may get dropped if it means non-DL tools don't expose it as a real property.
-	 Should be fine though; I think only OWL stuff cares about AnnotationProperty.
-	 Dan									 -->
-
-<!--    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Group"/> prose only for now...-->
-<!--    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> -->
-<!--    <rdfs:range rdf:resource="http://www.w3.org/2002/07/owl#Class"/> -->
-
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-
-  <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/birthday" vs:term_status="unstable" rdfs:label="birthday" rdfs:comment="The birthday of this Agent, represented in mm-dd string form, eg. '12-31'.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-  </rdf:Property>
-
-   <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/age" vs:term_status="unstable" rdfs:label="age" rdfs:comment="The age in years of some agent.">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-     <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-     <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-   </rdf:Property>
-
-   <rdf:Property rdf:about="http://xmlns.com/foaf/0.1/status" vs:term_status="unstable" rdfs:label="status" rdfs:comment="A string expressing what the user is happy for the general public (normally) to know about their current activity.">
-     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-     <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
-     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-     <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
-   </rdf:Property>
-
-</rdf:RDF>
-


[26/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/as.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/as.t2flow b/taverna-scufl2-examples/src/test/resources/workflows/t2flow/as.t2flow
deleted file mode 100644
index fcb7d09..0000000
--- a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/as.t2flow
+++ /dev/null
@@ -1,1674 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.1.0">
-  <dataflow id="92c5e8d5-8360-4f86-a845-09c9849cbdc5" role="top">
-    <name>Workflow1</name>
-    <inputPorts />
-    <outputPorts>
-      <port>
-        <name>asdasd</name>
-        <annotations />
-      </port>
-    </outputPorts>
-    <processors>
-      <processor>
-        <name>Workflow19</name>
-        <inputPorts>
-          <port>
-            <name>lk</name>
-            <depth>0</depth>
-          </port>
-        </inputPorts>
-        <outputPorts>
-          <port>
-            <name>kk</name>
-            <depth>0</depth>
-            <granularDepth>0</granularDepth>
-          </port>
-          <port>
-            <name>String_constant_value</name>
-            <depth>0</depth>
-            <granularDepth>0</granularDepth>
-          </port>
-        </outputPorts>
-        <annotations />
-        <activities>
-          <activity>
-            <raven>
-              <group>net.sf.taverna.t2.activities</group>
-              <artifact>dataflow-activity</artifact>
-              <version>1.0</version>
-            </raven>
-            <class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</class>
-            <inputMap>
-              <map from="lk" to="lk" />
-            </inputMap>
-            <outputMap>
-              <map from="String_constant_value" to="String_constant_value" />
-              <map from="kk" to="kk" />
-            </outputMap>
-            <configBean encoding="dataflow">
-              <dataflow ref="c451b1cf-1c95-47e5-b89c-537a5501a1ef" />
-            </configBean>
-            <annotations />
-          </activity>
-        </activities>
-        <dispatchStack>
-          <dispatchLayer>
-            <raven>
-              <group>net.sf.taverna.t2.core</group>
-              <artifact>workflowmodel-impl</artifact>
-              <version>1.0</version>
-            </raven>
-            <class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-            <configBean encoding="xstream">
-              <net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-                <maxJobs>1</maxJobs>
-              </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-            </configBean>
-          </dispatchLayer>
-          <dispatchLayer>
-            <raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="lk" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings</name>
-<inputPorts>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string2" depth="0" />
-<port name="string1" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings_2</name>
-<inputPorts>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string2" depth="0" />
-<port name="string1" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Create_Lots_Of_Strings</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>strings</name>
-<depth>1</depth>
-<granularDepth>1</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap />
-<outputMap>
-<map from="strings" to="strings" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
-  <script>List strings = new ArrayList();
-for (int i = 0; i &lt; 40; i++) {
-	strings.add("String" + i);
-}
-</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>strings</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings_3</name>
-<inputPorts>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string1" depth="0" />
-<port name="string2" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>String_constant</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>value</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>stringconstant-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class>
-<inputMap />
-<outputMap>
-<map from="value" to="value" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Add your own value here</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings_4</name>
-<inputPorts>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string1" depth="0" />
-<port name="string2" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Echo_List</name>
-<inputPorts>
-<port>
-<name>inputlist</name>
-<depth>1</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>outputlist</name>
-<depth>1</depth>
-<granularDepth>1</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="inputlist" to="inputlist" />
-</inputMap>
-<outputMap>
-<map from="outputlist" to="outputlist" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EchoList</localworkerName>
-  <script>outputlist = inputlist;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="inputlist" depth="1" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-</processors>
-<conditions />
-<datalinks>
-<datalink>
-<sink type="processor">
-<processor>Workflow19</processor>
-<port>lk</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings_2</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>Create_Lots_Of_Strings</processor>
-<port>strings</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_2</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>Create_Lots_Of_Strings</processor>
-<port>strings</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_2</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>Create_Lots_Of_Strings</processor>
-<port>strings</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_3</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>Workflow19</processor>
-<port>kk</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_3</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>String_constant</processor>
-<port>value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_4</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>String_constant</processor>
-<port>value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_4</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>Workflow19</processor>
-<port>String_constant_value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="merge">
-<processor>Echo_List</processor>
-<port>inputlist</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings_4</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="merge">
-<processor>Echo_List</processor>
-<port>inputlist</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings_3</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="dataflow">
-<port>asdasd</port>
-</sink>
-<source type="processor">
-<processor>Echo_List</processor>
-<port>outputlist</port>
-</source>
-</datalink>
-</datalinks>
-<annotations />
-</dataflow>
-<dataflow id="c451b1cf-1c95-47e5-b89c-537a5501a1ef" role="nested">
-<name>Workflow19</name>
-<inputPorts>
-<port>
-<name>lk</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-<annotations />
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>kk</name>
-<annotations />
-</port>
-<port>
-<name>String_constant_value</name>
-<annotations />
-</port>
-</outputPorts>
-<processors>
-<processor>
-<name>Concatenate_two_strings</name>
-<inputPorts>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string1" depth="0" />
-<port name="string2" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>string1_value</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>value</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>stringconstant-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class>
-<inputMap />
-<outputMap>
-<map from="value" to="value" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>kjkj</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>String_constant</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>value</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>stringconstant-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class>
-<inputMap />
-<outputMap>
-<map from="value" to="value" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Add your own value here</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-</processors>
-<conditions>
-<condition control="Concatenate_two_strings" target="String_constant" />
-</conditions>
-<datalinks>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>string1_value</processor>
-<port>value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string2</port>
-</sink>
-<source type="dataflow">
-<port>lk</port>
-</source>
-</datalink>
-<datalink>
-<sink type="dataflow">
-<port>kk</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="dataflow">
-<port>String_constant_value</port>
-</sink>
-<source type="processor">
-<processor>String_constant</processor>
-<port>value</port>
-</source>
-</datalink>
-</datalinks>
-<annotations />
-</dataflow>
-</workflow>
\ No newline at end of file


[47/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f7/f7e2a950-6426-4e3f-b9f0-844bfae9ed96.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f7/f7e2a950-6426-4e3f-b9f0-844bfae9ed96.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f7/f7e2a950-6426-4e3f-b9f0-844bfae9ed96.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f7/f7e2a950-6426-4e3f-b9f0-844bfae9ed96.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/sequence.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/sequence.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/sequence.txt
deleted file mode 100644
index 19a43dd..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/sequence.txt
+++ /dev/null
@@ -1,8 +0,0 @@
->sp|Q9BTV4|TMM43_HUMAN Transmembrane protein 43 OS=Homo sapiens GN=TMEM43 PE=1 SV=1
-MAANYSSTSTRREHVKVKTSSQPGFLERLSETSGGMFVGLMAFLLSFYLIFTNEGRALKT
-ATSLAEGLSLVVSPDSIHSVAPENEGRLVHIIGALRTSKLLSDPNYGVHLPAVKLRRHVE
-MYQWVETEESREYTEDGQVKKETRYSYNTEWRSEIINSKNFDREIGHKNPSAMAVESFMA
-TAPFVQIGRFFLSSGLIDKVDNFKSLSLSKLEDPHVDIIRRGDFFYHSENPKYPEVGDLR
-VSFSYAGLSGDDPDLGPAHVVTVIARQRGDQLVPFSTKSGDTLLLLHHGDFSAEEVFHRE
-LRSNSMKTWGLRAAGWMAMFMGLNLMTRILYTLVDWFPVFRDLVNIGLKAFAFCVATSLT
-LLTVAAGWLFYRPLWALLIAGLALVPILVARTRVPAKKLE
\ No newline at end of file


[29/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURITools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURITools.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURITools.java
deleted file mode 100644
index 76e4a85..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURITools.java
+++ /dev/null
@@ -1,196 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.util.UUID;
-
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.TestWorkflowBundleIO;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestURITools {
-
-	private URITools uriTools = new URITools();
-	private WorkflowBundle wfBundle;
-
-	@Before
-	public void makeExampleWorkflow() {
-		wfBundle = new TestWorkflowBundleIO().makeWorkflowBundle();
-	}
-
-	@Test
-	public void relativizeNotSameFolder() {
-		URI base = URI.create("workflow/Workflow.rdf");
-		URI uri = URI.create("profile/Profile/");
-		assertEquals("../profile/Profile/", uriTools.relativePath(base, uri).toASCIIString());
-	}
-
-	@Test
-	public void relativizeNotSameFolderAbsolute() {
-		URI base = URI.create("/workflow/Workflow.rdf");
-		URI uri = URI.create("/profile/Profile/");
-		assertEquals("../profile/Profile/", uriTools.relativePath(base, uri).toASCIIString());
-	}
-
-	@Test
-	public void relativizeNotSameFolderComplete() {
-		URI base = URI.create("http://example.com/workflow/Workflow.rdf");
-		URI uri = URI.create("http://example.com/profile/Profile/");
-		assertEquals("../profile/Profile/", uriTools.relativePath(base, uri)
-				.toASCIIString());
-	}
-
-	@Test
-	public void relativizeSameFolder() {
-		URI base = URI.create("workflow/Workflow.rdf");
-		URI uri = URI.create("workflow/Folder/");
-		assertEquals("Folder/", uriTools.relativePath(base, uri)
-				.toASCIIString());
-	}
-
-	@Test
-	public void relativizeSameFolderAbsoulute() {
-		URI base = URI.create("/workflow/Workflow.rdf");
-		URI uri = URI.create("/workflow/Folder/");
-		assertEquals("Folder/", uriTools.relativePath(base, uri)
-				.toASCIIString());
-	}
-
-	@Test
-	public void relativizeSameFolderComplete() {
-		URI base = URI.create("http://example.com/workflow/Workflow.rdf");
-		URI uri = URI.create("http://example.com/workflow/Folder/");
-		assertEquals("Folder/", uriTools.relativePath(base, uri)
-				.toASCIIString());
-	}
-
-	@Test
-	public void relativizeSamePath() {
-		URI base = URI.create("workflow/../workflow//Workflow.rdf#");
-		URI uri = URI.create("workflow/Workflow.rdf#fish");
-		assertEquals("#fish", uriTools.relativePath(base, uri).toASCIIString());
-	}
-
-	@Test
-	public void relativizeSamePathAbsolute() {
-		URI base = URI.create("/workflow/../workflow//Workflow.rdf#");
-		URI uri = URI.create("/workflow/Workflow.rdf#fish");
-		assertEquals("#fish", uriTools.relativePath(base, uri).toASCIIString());
-	}
-
-	@Test
-	public void relativizeSamePathComplete() {
-		URI base = URI
-				.create("http://example.com/workflow/../workflow//Workflow.rdf#");
-		URI uri = URI
-.create("http://example.com/workflow/Workflow.rdf#fish");
-		assertEquals("#fish", uriTools.relativePath(base, uri).toASCIIString());
-	}
-
-	@Test
-	public void relatizeSame() throws Exception {
-		URI base = URI.create("workflow/HelloWorld.rdf");
-		URI uri = URI.create("workflow/HelloWorld/");
-		assertEquals("HelloWorld/", uriTools.relativePath(base, uri).toASCIIString());
-	}
-
-	@Test
-	public void relatizeToFragment() throws Exception {
-		URI base = URI.create("filename.txt");
-		URI fragment = URI.create("./#sd");
-		assertEquals(".#sd", uriTools.relativePath(base, fragment)
-				.toASCIIString());
-	}
-
-	@Ignore("Not so critical to fix for now..")
-	@Test
-	public void relatizeToSlash() throws Exception {
-		URI base = URI.create("filename.txt");
-		URI fragment = URI.create("./");
-		assertEquals("./", uriTools.relativePath(base, fragment)
-				.toASCIIString());
-	}
-
-	@Test
-	public void validFileName() {
-		assertEquals(
-				"f%2fsd%5Csdf'asd%20fa%3as&%3F%3dd%20%C6%92%C3%AB%E2%88%9A%C3%A6%E2%80%9A%C3%84%C3%B9%C2%AC%C2%AA%E2%88%9A%C2%B6",
-				uriTools.validFilename("f/sd\\sdf'asd fa:s&?=d \u0192\u00eb\u221a\u00e6\u201a\u00c4\u00f9\u00ac\u00aa\u221a\u00b6")); 
-		// f/sd\sdf'asd fa:s&?=d  đþ”»æ  -- double check your Maven/Eclipse is using utf-8
-	}
-
-
-	@Test(expected=NullPointerException.class)
-	public void validFileNameNull() {		
-		uriTools.validFilename(null);
-	}
-	
-	@Test
-	public void wfBundle() {
-		assertEquals(
-				"http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/",
-				wfBundle.getGlobalBaseURI().toASCIIString());
-		assertEquals(wfBundle.getGlobalBaseURI(), uriTools.uriForBean(wfBundle));
-		String uuidPath = uriTools.relativePath(
-				WorkflowBundle.WORKFLOW_BUNDLE_ROOT, wfBundle.getGlobalBaseURI())
-				.getPath();
-		assertTrue(uuidPath.endsWith("/"));
-		// Should be a valid uuid
-		UUID.fromString(uuidPath.substring(0, uuidPath.length() - 1));
-	}
-
-	@Test
-	public void wfBundleSelfRelative() {
-		assertEquals(URI.create(""),
-				uriTools.relativeUriForBean(wfBundle, wfBundle));
-	}
-
-	@Test
-	public void workflow() {
-		Workflow wf = wfBundle.getMainWorkflow();
-		URI wfUri = uriTools.uriForBean(wf);
-		assertEquals(
-				"http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/",
-				wfUri.toASCIIString());
-		URI namePath = uriTools.relativeUriForBean(wf, wfBundle);
-		assertEquals("workflow/HelloWorld/", namePath.toASCIIString()); // wf.getName();
-	}
-
-	@Test
-	public void workflowIdentifier() {
-		Workflow wf = wfBundle.getMainWorkflow();
-		String uuidPath = uriTools.relativePath(Workflow.WORKFLOW_ROOT,
-				wf.getIdentifier()).getPath();
-		assertTrue(uuidPath.endsWith("/"));
-		// Should be a valid uuid
-		UUID.fromString(uuidPath.substring(0, uuidPath.length() - 1));
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsBeans.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsBeans.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsBeans.java
deleted file mode 100644
index 6f1d90f..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsBeans.java
+++ /dev/null
@@ -1,328 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import java.net.URI;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestURIToolsBeans {
-
-	private static final String BUNDLE_URI = "http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/";
-	private static final String HELLOWORLD_URI = BUNDLE_URI
-			+ "workflow/HelloWorld/";
-	private static final String HELLO_URI = HELLOWORLD_URI + "processor/Hello/";
-	private URITools uriTools = new URITools();
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private WorkflowBundle wfBundle;
-
-	@Before
-	public void makeExampleWorkflow() {
-		wfBundle = new ExampleWorkflow().makeWorkflowBundle();
-	}
-
-	@Test
-	public void uriForActivity() throws Exception {
-		Activity activity = wfBundle.getMainProfile().getActivities()
-				.getByName("HelloScript");
-		URI uri = uriTools.uriForBean(activity);
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "activity/HelloScript/", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForActivityInput() throws Exception {
-		Activity activity = wfBundle.getMainProfile().getActivities()
-				.getByName("HelloScript");
-		URI uri = uriTools.uriForBean(activity.getInputPorts().getByName(
-				"personName"));
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "activity/HelloScript/in/personName", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForActivityOutput() throws Exception {
-		Activity activity = wfBundle.getMainProfile().getActivities()
-				.getByName("HelloScript");
-		URI uri = uriTools.uriForBean(activity.getOutputPorts().getByName(
-				"hello"));
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "activity/HelloScript/out/hello", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForConfig() throws Exception {
-		Configuration config = wfBundle.getMainProfile().getConfigurations()
-				.getByName("Hello");
-		URI uri = uriTools.uriForBean(config);
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "configuration/Hello/", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForControlLink() throws Exception {
-        Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertNotNull(hello);
-		ControlLink condition = wfBundle.getMainWorkflow().getControlLinks()
-				.iterator().next();
-		assertTrue(condition instanceof BlockingControlLink);
-		URI uri = uriTools.uriForBean(condition);
-
-		assertEquals(
-				HELLOWORLD_URI
-						+ "control?block=processor/Hello/&untilFinished=processor/wait4me/",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForDatalink() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		List<DataLink> nameLinks = scufl2Tools.datalinksTo(hello
-				.getInputPorts().getByName("name"));
-		URI uri = uriTools.uriForBean(nameLinks.get(0));
-		assertEquals(HELLOWORLD_URI
-				+ "datalink?from=in/yourName&to=processor/Hello/in/name",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForDatalinkWithMerge() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		List<DataLink> greetingLinks = scufl2Tools.datalinksFrom(hello
-				.getOutputPorts().getByName("greeting"));
-		URI uri = uriTools.uriForBean(greetingLinks.get(0));
-		assertEquals(
-				HELLOWORLD_URI
-						+ "datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForIterationStrategyCross() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		CrossProduct crossProduct = (CrossProduct) hello
-				.getIterationStrategyStack().get(0);
-		URI uri = uriTools.uriForBean(crossProduct.get(0));
-		assertEquals(HELLO_URI + "iterationstrategy/0/0/",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForIterationStrategyRoot() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		URI uri = uriTools.uriForBean(hello.getIterationStrategyStack().get(0));
-
-		assertEquals(HELLO_URI + "iterationstrategy/0/",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForIterationStrategyStack() throws Exception {
-		URI uri = uriTools
-				.uriForBean(wfBundle.getMainWorkflow().getProcessors()
-						.getByName("Hello").getIterationStrategyStack());
-		assertEquals(HELLO_URI +
-
-		"iterationstrategy/", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProcessor() throws Exception {
-		URI uri = uriTools.uriForBean(wfBundle.getMainWorkflow()
-				.getProcessors().getByName("Hello"));
-		assertEquals(HELLO_URI, uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProcessorBinding() throws Exception {
-		ProcessorBinding processorBinding = wfBundle.getMainProfile()
-				.getProcessorBindings().getByName("Hello");
-		URI uri = uriTools.uriForBean(processorBinding);
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "processorbinding/Hello/", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProcessorBindingIn() throws Exception {
-		ProcessorBinding processorBinding = wfBundle.getMainProfile()
-				.getProcessorBindings().getByName("Hello");
-		ProcessorInputPortBinding inputPortBinding = processorBinding
-				.getInputPortBindings().iterator().next();
-		URI uri = uriTools.uriForBean(inputPortBinding);
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "processorbinding/Hello/in/name" + "", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProcessorBindingOut() throws Exception {
-		ProcessorBinding processorBinding = wfBundle.getMainProfile()
-				.getProcessorBindings().getByName("Hello");
-		ProcessorOutputPortBinding outputPortBinding = processorBinding
-				.getOutputPortBindings().iterator().next();
-		URI uri = uriTools.uriForBean(outputPortBinding);
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/"
-				+ "processorbinding/Hello/out/greeting" + "",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProcessorInPort() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		URI uri = uriTools.uriForBean(hello.getInputPorts().getByName("name"));
-		assertEquals(HELLO_URI + "in/name", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProcessorOutPort() throws Exception {
-
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		URI uri = uriTools.uriForBean(hello.getOutputPorts().getByName(
-				"greeting"));
-		assertEquals(HELLO_URI + "out/greeting", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForProfile() throws Exception {
-		URI uri = uriTools.uriForBean(wfBundle.getMainProfile());
-		assertEquals(BUNDLE_URI + "profile/tavernaWorkbench/" + "",
-				uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForWfBundle() throws Exception {
-		URI uri = uriTools.uriForBean(wfBundle);
-		assertEquals(BUNDLE_URI, uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForWorkflow() throws Exception {
-		URI uri = uriTools.uriForBean(wfBundle.getMainWorkflow());
-		assertEquals(HELLOWORLD_URI, uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForWorkflowInPort() throws Exception {
-		URI uri = uriTools.uriForBean(wfBundle.getMainWorkflow()
-				.getInputPorts().getByName("yourName"));
-		assertEquals(HELLOWORLD_URI + "in/yourName", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriForWorkflowOutPort() throws Exception {
-		URI uri = uriTools.uriForBean(wfBundle.getMainWorkflow()
-				.getOutputPorts().getByName("results"));
-		assertEquals(HELLOWORLD_URI + "out/results", uri.toASCIIString());
-	}
-
-	@Test
-	public void uriVisitor() {
-		final StringBuffer paths = new StringBuffer();
-		wfBundle.accept(new VisitorWithPath() {
-			@Override
-			public boolean visit() {
-				WorkflowBean node = getCurrentNode();
-				URI uri;
-				if (getCurrentPath().isEmpty()) {
-					uri = uriTools.uriForBean(node);
-				} else {
-					uri = uriTools.relativeUriForBean(node, getCurrentPath()
-							.peek());
-				}
-				String indent = "";
-				for (int i = 0; i < getCurrentPath().size(); i++) {
-					indent += "  ";
-				}
-				paths.append(indent);
-				paths.append(uri);
-				paths.append("\n");
-				// we won't recurse into Configuration as PropertyResource's
-				// don't have URIs
-				return !(node instanceof Configuration);
-			}
-		});
-		// System.out.println(paths);
-		assertEquals(
-				"http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/\n"
-						+ "  workflow/HelloWorld/\n"
-						+ "    in/yourName\n"
-						+ "    out/results\n"
-						+ "    processor/Hello/\n"
-						+ "      in/name\n"
-						+ "      out/greeting\n"
-						+ "      iterationstrategy/\n"
-						+ "        0/\n"
-						+ "          0/\n"
-						+ "    processor/wait4me/\n"
-						+ "      iterationstrategy/\n"
-						+ "        0/\n"
-					    + "    datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0\n"
-						+ "    datalink?from=in/yourName&to=processor/Hello/in/name\n"
-						+ "    datalink?from=in/yourName&to=out/results&mergePosition=1\n"
-						+ "    control?block=processor/Hello/&untilFinished=processor/wait4me/\n"
-					    + "    ../../../../workflow/00626652-55ae-4a9e-80d4-c8e9ac84e2ca/\n"
-						+ "  profile/tavernaServer/\n"
-						+ "    activity/HelloScript/\n"
-						+ "      in/personName\n"
-						+ "      out/hello\n"
-						+ "    processorbinding/Hello/\n"
-						+ "      in/name\n"
-						+ "      out/greeting\n"
-						+ "    configuration/Hello/\n"
-						+ "  profile/tavernaWorkbench/\n"
-						+ "    activity/HelloScript/\n"
-						+ "      in/personName\n"
-						+ "      out/hello\n"
-						+ "    processorbinding/Hello/\n"
-						+ "      in/name\n"
-						+ "      out/greeting\n"
-						+ "    configuration/Hello/\n",
-				paths.toString());
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsResolve.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsResolve.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsResolve.java
deleted file mode 100644
index 200ff80..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestURIToolsResolve.java
+++ /dev/null
@@ -1,321 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-
-import java.net.URI;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestURIToolsResolve {
-	private static final URI BUNDLE_URI = URI
-			.create("http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/");
-	private static final URI HELLOWORLD_URI = BUNDLE_URI
-			.resolve("workflow/HelloWorld/");
-	private static final URI HELLO_URI = HELLOWORLD_URI
-			.resolve("processor/Hello/");
-	private static final URI PROFILE_URI = BUNDLE_URI
-			.resolve("profile/tavernaWorkbench/");
-	private URITools uriTools = new URITools();
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private WorkflowBundle wfBundle = new ExampleWorkflow()
-			.makeWorkflowBundle();
-
-	@Test
-	public void resolveActivity() throws Exception {
-		Activity helloScript = wfBundle.getMainProfile().getActivities().getByName("HelloScript");
-		assertSame(helloScript, uriTools.resolveUri(PROFILE_URI.resolve("activity/HelloScript/"), wfBundle));
-	}
-
-	@Test
-	public void resolveActivityInput() throws Exception {
-		Activity helloScript = wfBundle.getMainProfile().getActivities()
-				.getByName("HelloScript");
-
-		assertSame(helloScript.getInputPorts().getByName("personName"),
-				uriTools.resolveUri(PROFILE_URI
-						.resolve("activity/HelloScript/in/personName"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveActivityOutput() throws Exception {
-		Activity helloScript = wfBundle.getMainProfile().getActivities()
-				.getByName("HelloScript");
-		assertSame(helloScript.getOutputPorts().getByName("hello"),
-				uriTools.resolveUri(
-						PROFILE_URI.resolve("activity/HelloScript/out/hello"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveBundle() throws Exception {
-		assertSame(wfBundle, uriTools.resolveUri(BUNDLE_URI, wfBundle));
-	}
-
-
-	@Test
-	public void resolveConfiguration() throws Exception {
-		Configuration config = wfBundle.getMainProfile().getConfigurations().getByName("Hello");
-
-		assertSame(config,
-				uriTools.resolveUri(
-						PROFILE_URI.resolve("configuration/Hello/"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveControlLink() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		List<BlockingControlLink> blocks = scufl2Tools
-				.controlLinksBlocking(hello);
-		assertSame(
-				blocks.get(0),
-				uriTools.resolveUri(
-						HELLOWORLD_URI
-								.resolve("control?block=processor/Hello/&untilFinished=processor/wait4me/"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveDataLink() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		List<DataLink> datalinks = scufl2Tools.datalinksTo(hello
-				.getInputPorts().getByName("name"));
-		assertSame(
-				datalinks.get(0),
-				uriTools.resolveUri(
-						HELLOWORLD_URI
-								.resolve("datalink?from=in/yourName&to=processor/Hello/in/name"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveDataLinkWithMerge() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		OutputProcessorPort greeting = hello.getOutputPorts().getByName(
-				"greeting");
-		List<DataLink> datalinks = scufl2Tools.datalinksFrom(greeting);
-		assertSame(
-				datalinks.get(0),
-				uriTools.resolveUri(
-						HELLOWORLD_URI
-								.resolve("datalink?from=processor/Hello/out/greeting&to=out/results&mergePosition=0"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveNonAbsolute() throws Exception {
-		InputWorkflowPort yourName = wfBundle.getMainWorkflow().getInputPorts()
-				.getByName("yourName");
-		assertSame(yourName, uriTools.resolveUri(
-				URI.create("/workflow/HelloWorld/in/yourName"), wfBundle));
-	}
-
-	@Test
-	public void resolveProcessor() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertSame(hello, uriTools.resolveUri(HELLO_URI, wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorBinding() throws Exception {
-		ProcessorBinding procBind = wfBundle.getMainProfile().getProcessorBindings()
-				.getByName("Hello");
-		assertSame(procBind,
-				uriTools.resolveUri(
-						PROFILE_URI.resolve("processorbinding/Hello/"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorBindingIn() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		ProcessorInputPortBinding binding = scufl2Tools
-				.processorPortBindingForPort(
-						hello.getInputPorts().getByName("name"),
-						wfBundle.getMainProfile());
-		assertSame(binding,
-				uriTools.resolveUri(
-						PROFILE_URI.resolve("processorbinding/Hello/in/name"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorBindingOut() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-		.getByName("Hello");
-		ProcessorOutputPortBinding binding = scufl2Tools
-				.processorPortBindingForPort(
-						hello.getOutputPorts().getByName("greeting"),
-						wfBundle.getMainProfile());
-		assertSame(binding,
-				uriTools.resolveUri(
-						PROFILE_URI.resolve("processorbinding/Hello/out/greeting"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorInput() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		InputProcessorPort helloName = hello.getInputPorts().getByName("name");
-		assertSame(helloName,
-				uriTools.resolveUri(HELLO_URI.resolve("in/name"), wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorIterationStrategy() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertSame(hello.getIterationStrategyStack().get(0),
-				uriTools.resolveUri(
-HELLO_URI.resolve("iterationstrategy/0/"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorIterationStrategyNode() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		CrossProduct rootStrategyNode = (CrossProduct) hello
-				.getIterationStrategyStack().get(0);
-		assertSame(rootStrategyNode.get(0),
-				uriTools.resolveUri(
-				HELLO_URI.resolve("iterationstrategy/0/0/"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorIterationStrategyRoot() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertSame(hello.getIterationStrategyStack().get(0),
-				uriTools.resolveUri(HELLO_URI.resolve("iterationstrategy/0/"),
-						wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorIterationStrategyStack() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		assertSame(
-				hello.getIterationStrategyStack(),
-				uriTools.resolveUri(
-				HELLO_URI.resolve("iterationstrategy/"), wfBundle));
-	}
-
-	@Test
-	public void resolveProcessorOutput() throws Exception {
-		Processor hello = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("Hello");
-		OutputProcessorPort greeting = hello.getOutputPorts().getByName(
-				"greeting");
-		assertSame(greeting, uriTools.resolveUri(
-				HELLO_URI.resolve("out/greeting"), wfBundle));
-	}
-
-	@Test
-	public void resolveProfile() throws Exception {
-		assertSame(wfBundle.getMainProfile(), uriTools.resolveUri(PROFILE_URI, wfBundle));
-	}
-
-	@Test
-	public void resolveRelative() throws Exception {
-		InputWorkflowPort yourName = wfBundle.getMainWorkflow().getInputPorts()
-				.getByName("yourName");
-		assertSame(yourName, uriTools.resolveUri(
-				URI.create("workflow/HelloWorld/in/yourName"), wfBundle));
-	}
-
-	@Test
-	public void resolveWorkflow() throws Exception {
-		assertSame(wfBundle.getMainWorkflow(),
-				uriTools.resolveUri(HELLOWORLD_URI, wfBundle));
-	}
-
-	@Test
-	public void resolveWorkflowInput() throws Exception {
-		InputWorkflowPort yourName = wfBundle.getMainWorkflow().getInputPorts()
-				.getByName("yourName");
-		assertSame(yourName, uriTools.resolveUri(
-				HELLOWORLD_URI.resolve("in/yourName"), wfBundle));
-	}
-
-	@Test
-	public void resolveWorkflowOutput() throws Exception {
-		OutputWorkflowPort results = wfBundle.getMainWorkflow()
-				.getOutputPorts().getByName("results");
-		assertSame(results, uriTools.resolveUri(
-				HELLOWORLD_URI.resolve("out/results"), wfBundle));
-	}
-	
-	@Test
-	public void revisionURIs() {
-		Revision r1 = wfBundle.newRevision();
-		assertEquals(r1.getIdentifier(), uriTools.uriForBean(r1));
-		
-//		assertEquals(r1, uriTools.resolveUri(r3.getIdentifier(), wfBundle));
-			
-	}
-
-	@Ignore
-	@Test
-	public void resolveRevisions() {
-		Revision r1 = wfBundle.newRevision();
-		Revision r2 = wfBundle.newRevision();
-		Revision r3 = wfBundle.newRevision();
-		assertEquals(wfBundle, uriTools.resolveUri(r3.getIdentifier(), wfBundle));
-		assertEquals(r2, uriTools.resolveUri(r2.getIdentifier(), wfBundle));
-		assertEquals(r1, uriTools.resolveUri(r1.getIdentifier(), wfBundle));	
-	}
-
-	
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/configurations/ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/configurations/ConfigurationTest.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/configurations/ConfigurationTest.java
deleted file mode 100644
index c3668f0..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/configurations/ConfigurationTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.apache.taverna.scufl2.api.configurations;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.DataLinkCompareTest;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class ConfigurationTest extends ExampleWorkflow {
-	
-	@Before
-	public void makeBundle() {
-		makeWorkflowBundle();
-	}
-	
-	/**
-	 * Similar bug to {@link DataLinkCompareTest#dataLinkNotAddedTwice()}
-	 */
-	@Test
-	public void configurationNotAddedTwice() throws Exception {
-		Configuration c1a = new Configuration("c1");
-		Profile p1 = new Profile("p1");
-		p1.getConfigurations().add(c1a);		
-		c1a.setParent(p1);
-		p1.getConfigurations().add(c1a);
-		
-		
-		Configuration c1b = new Configuration("c1");
-		Profile p2 = new Profile("p2");
-		p2.getConfigurations().add(c1b);		
-		c1b.setParent(p2);
-		p2.getConfigurations().add(c1b);
-		
-		
-		WorkflowBundle bundle = new WorkflowBundle();
-		p1.setParent(bundle);
-		p2.setParent(bundle);
-		new Scufl2Tools().setParents(bundle);
-		assertEquals(1, p1.getConfigurations().size());
-		assertEquals(1, p2.getConfigurations().size());
-		
-	}
-	
-	@Test
-	public void configurationNotAddedTwiceExample() throws Exception {
-		Profile p = workflowBundle.getMainProfile();
-		assertEquals(1, p.getConfigurations().size());
-		new Scufl2Tools().setParents(workflowBundle);
-		assertEquals(1, p.getConfigurations().size());
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/container/TestWorkflowBundleEquals.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/container/TestWorkflowBundleEquals.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/container/TestWorkflowBundleEquals.java
deleted file mode 100644
index 3ba16fc..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/container/TestWorkflowBundleEquals.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.apache.taverna.scufl2.api.container;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.junit.Test;
-
-
-public class TestWorkflowBundleEquals {
-	
-	@Test
-	public void notEquals() throws Exception {
-		WorkflowBundle wb1 = new WorkflowBundle();
-		
-		WorkflowBundle wb2 = new WorkflowBundle();
-		// Make them look "equal"
-		wb1.setName("bob");
-		wb2.setName("bob");
-		wb1.setGlobalBaseURI(URI.create("http://example.com/bob"));
-		wb2.setGlobalBaseURI(URI.create("http://example.com/bob"));		
-		assertFalse(wb1.equals(wb2));
-	}
-	
-	@Test
-	public void equals() throws Exception {
-		WorkflowBundle wb1 = new WorkflowBundle();	
-		assertTrue(wb1.equals(wb1));		
-	}
-	
-	@Test 
-	public void workflowsNotEqualsUnlessOrphans() {
-		Workflow wf1 = new Workflow();
-		Workflow wf2 = new Workflow();
-		wf1.setName("fred");
-		wf2.setName("fred");
-		// No parents, so they are equal
-		assertEquals(wf1, wf2);
-		
-		
-		WorkflowBundle wb1 = new WorkflowBundle();
-		
-		WorkflowBundle wb2 = new WorkflowBundle();
-		// Make them look "equal"
-		wb2.setName(wb1.getName());
-		wb2.setGlobalBaseURI(wb1.getGlobalBaseURI());
-		assertFalse(wb1.equals(wb2));
-		
-		wf1.setParent(wb1);
-		wf2.setParent(wb2);		
-		assertFalse(wf1.equals(wf2));
-		
-		wf1.setParent(null);
-		assertFalse(wf1.equals(wf2));
-		assertFalse(wf2.equals(wf1));
-		wf2.setParent(null);
-		assertTrue(wf1.equals(wf2));	
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/ControlLinkCompareTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/ControlLinkCompareTest.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/ControlLinkCompareTest.java
deleted file mode 100644
index f38f251..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/ControlLinkCompareTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.junit.Test;
-
-public class ControlLinkCompareTest {
-	@SuppressWarnings("unchecked")
-	@Test
-	public void expectedOrder() throws Exception {
-
-		Workflow wf = new Workflow();		
-		wf.setName("wf");
-		
-		Processor a = new Processor(wf, "a");
-		Processor b = new Processor(wf, "b");
-		Processor c = new Processor(wf, "c");
-		Processor d = new Processor(wf, "d");
-
-		BlockingControlLink b_blocks_c = new BlockingControlLink(c, b);
-		BlockingControlLink a_blocks_c = new BlockingControlLink(c, a);
-		BlockingControlLink a_blocks_b = new BlockingControlLink(b, a);
-		BlockingControlLink b_blocks_d = new BlockingControlLink(d, b);
-		BlockingControlLink a_blocks_d = new BlockingControlLink(d, a);
-		
-		ArrayList<ControlLink> links = new ArrayList<ControlLink>(wf.getControlLinks());
-		assertEquals(Arrays.asList(a_blocks_b, a_blocks_c, a_blocks_d, b_blocks_c, b_blocks_d), links);
-		Collections.shuffle(links);
-		Collections.sort(links);
-		assertEquals(Arrays.asList(a_blocks_b, a_blocks_c, a_blocks_d, b_blocks_c, b_blocks_d), links);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Test
-	public void nullSupport() throws Exception {
-		Workflow wf = new Workflow();		
-		wf.setName("wf");
-		
-		
-		
-		Processor a = new Processor(wf, "a");
-		Processor b = new Processor(wf, "b");
-		Processor c = new Processor(wf, "c");
-		Processor d = new Processor(wf, "d");
-
-		BlockingControlLink b_blocks_c = new BlockingControlLink(c, b);
-		BlockingControlLink null_blocks_c = new BlockingControlLink();
-		null_blocks_c.setBlock(c);
-		null_blocks_c.setParent(wf);
-		BlockingControlLink a_blocks_b = new BlockingControlLink(b, a);
-		BlockingControlLink b_blocks_null = new BlockingControlLink();
-		b_blocks_null.setUntilFinished(b);
-		b_blocks_null.setParent(wf);
-		
-		BlockingControlLink null_blocks_null = new BlockingControlLink();		
-		null_blocks_null.setParent(wf);
-		
-		
-		ArrayList<ControlLink> links = new ArrayList<ControlLink>(wf.getControlLinks());
-		assertEquals(Arrays.asList(null_blocks_null, null_blocks_c, a_blocks_b, b_blocks_null, b_blocks_c), links);				
-
-		Collections.shuffle(links);		
-		Collections.sort(links);
-		
-		BlockingControlLink a_blocks_d_no_parent = new BlockingControlLink();
-		a_blocks_d_no_parent.setBlock(d);
-		a_blocks_d_no_parent.setUntilFinished(a);
-		// no setParent
-		links.add(a_blocks_d_no_parent);
-		Collections.shuffle(links);		
-		Collections.sort(links);
-		
-		assertEquals(Arrays.asList(null_blocks_null, null_blocks_c, a_blocks_b, a_blocks_d_no_parent, b_blocks_null, b_blocks_c), links);		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/DataLinkCompareTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/DataLinkCompareTest.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/DataLinkCompareTest.java
deleted file mode 100644
index 79a68bf..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/DataLinkCompareTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class DataLinkCompareTest extends ExampleWorkflow {
-	
-	@Before
-	public void makeBundle() throws Exception {
-		makeWorkflowBundle();
-	}
-
-	
-	@SuppressWarnings({ "unchecked", "unused" })
-	@Test
-	public void expectedOrder() throws Exception {
-
-		Workflow wf = new Workflow();
-		wf.setName("wf");
-		InputWorkflowPort a = new InputWorkflowPort(wf, "a");
-		InputWorkflowPort b = new InputWorkflowPort(wf, "b");
-		InputWorkflowPort c = new InputWorkflowPort(wf, "c");
-
-		OutputWorkflowPort x = new OutputWorkflowPort(wf, "x");
-		OutputWorkflowPort y = new OutputWorkflowPort(wf, "y");
-		OutputWorkflowPort z = new OutputWorkflowPort(wf, "z");
-
-		DataLink c_x = new DataLink(wf, c, x);
-		DataLink b_x = new DataLink(wf, b, x);
-		DataLink b_z = new DataLink(wf, b, z);
-		DataLink a_z = new DataLink(wf, a, z);
-		DataLink a_x = new DataLink(wf, a, x);
-
-		ArrayList<DataLink> links = new ArrayList<DataLink>(wf.getDataLinks());
-		assertEquals(Arrays.asList(a_x, a_z, b_x, b_z, c_x), links);
-		Collections.shuffle(links);
-		Collections.sort(links);
-		assertEquals(Arrays.asList(a_x, a_z, b_x, b_z, c_x), links);
-	}
-
-	@SuppressWarnings({ "unchecked", "unused" })
-	@Test
-	public void nullSupport() throws Exception {
-
-		Workflow wf = new Workflow();
-		wf.setName("wf");
-		InputWorkflowPort a = new InputWorkflowPort(wf, "a");
-		InputWorkflowPort b = new InputWorkflowPort(wf, "b");
-		InputWorkflowPort c = new InputWorkflowPort(wf, "c");
-
-		OutputWorkflowPort x = new OutputWorkflowPort(wf, "x");
-		OutputWorkflowPort y = new OutputWorkflowPort(wf, "y");
-		OutputWorkflowPort z = new OutputWorkflowPort(wf, "z");
-
-		DataLink null_null = new DataLink();
-		null_null.setParent(wf);
-		// neither receivesFrom nor sendsTo
-
-		DataLink null_z = new DataLink();
-		// no receivesFrom
-		null_z.setSendsTo(z);
-		null_z.setParent(wf);
-		DataLink a_z = new DataLink(wf, a, z);
-		DataLink a_null = new DataLink();
-		// no sendsTo
-		a_null.setReceivesFrom(a);
-		a_null.setParent(wf);
-
-		ArrayList<DataLink> links = new ArrayList<DataLink>(wf.getDataLinks());
-		assertEquals(Arrays.asList(null_null, null_z, a_null, a_z), links);
-
-		DataLink allNull = new DataLink();
-		links.add(allNull);
-
-		Collections.shuffle(links);
-		Collections.sort(links);
-		assertEquals(Arrays.asList(allNull, null_null, null_z, a_null, a_z),
-				links);
-	}
-
-	@Test
-	public void dataLinkNotAddedTwice() throws Exception {
-		assertEquals(3, workflow.getDataLinks().size());
-		DataLink dl1 = workflow.getDataLinks().iterator().next();
-		assertTrue(workflow.getDataLinks().contains(dl1));
-		workflow.getDataLinks().add(dl1);
-		dl1.setParent(workflow);
-		// This could happen because dataLink.compareTo() calls
-		// .compareTo() on the sender/receiver link, and if 
-		// their parents was null at insertion and non-null
-		// later, the TreeSet order got messed up.
-		assertEquals(3, workflow.getDataLinks().size());
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/PortOrderTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/PortOrderTest.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/PortOrderTest.java
deleted file mode 100644
index 0211b42..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/core/PortOrderTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.Named;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-@SuppressWarnings("unchecked")
-public class PortOrderTest {
-	List<Port> ports = new ArrayList<Port>();
-	
-	Workflow wf = new Workflow();
-
-	@Test
-	public void orderedByName() throws Exception {
-		ports.add(new InputWorkflowPort(wf, "p3"));
-		ports.add(new InputWorkflowPort(wf, "p1"));
-		ports.add(new InputWorkflowPort(wf, "p2"));
-		Collections.sort(ports);
-		assertNamesEqual(ports, "p1", "p2", "p3");
-	}
-	
-	@Test
-	public void ignoringNull() throws Exception {
-		ports.add(new InputWorkflowPort(null, "p3"));
-		ports.add(new InputWorkflowPort(null, "p1"));
-		ports.add(new InputWorkflowPort(wf, "p2"));
-		Collections.sort(ports);
-		assertNamesEqual(ports, "p1", "p2", "p3");
-	}
-	
-	@Test
-	public void orderedByClassName() throws Exception {
-		ports.add(new InputWorkflowPort(wf, "p3"));
-		ports.add(new OutputWorkflowPort(wf, "p1"));
-		ports.add(new InputWorkflowPort(wf, "p2"));
-		Collections.sort(ports);
-		assertNamesEqual(ports, "p2", "p3", "p1");
-	}
-
-
-	public static void assertNamesEqual(List<? extends Named> named, String... expectedNames) {
-		List<String> names = namesOf(named);	
-		assertEquals(Arrays.asList(expectedNames), names);		
-	}
-
-	public static List<String> namesOf(List<? extends Named> named) {
-		List<String> names = new ArrayList<String>();
-		for (Named n : named) {
-			names.add(n.getName());
-		}
-		return names;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestIterableComparator.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestIterableComparator.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestIterableComparator.java
deleted file mode 100644
index bbb8528..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestIterableComparator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.apache.taverna.scufl2.api.impl;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.impl.IterableComparator;
-import org.junit.Test;
-
-public class TestIterableComparator {
-	@SuppressWarnings("serial")
-	public class ReverseComparableList extends ArrayList<String> implements Comparable<ReverseComparableList> {
-		public boolean called = false;
-		public ReverseComparableList(String... items) {
-			addAll(Arrays.asList(items));
-		}
-
-		@Override
-		public int compareTo(ReverseComparableList o) {
-			called = true;
-			// Reverse string order
-			return o.toString().compareTo(this.toString());
-		}
-	}
-
-	@Test
-	public void listCompare() throws Exception {
-		List<List<String>> values = Arrays.asList(Arrays.asList("x", "y"),
-				Arrays.asList("a", "b", "c", "d", "e"),
-				Arrays.asList("a", "b", "c", "d"),
-				Arrays.asList("a", "b", null, "d"));
-
-		List<List<String>> sortedValues = Arrays.asList(
-				Arrays.asList("a", "b", null, "d"), // null < c
-				Arrays.asList("a", "b", "c", "d"), // shorter list (but matching
-													// prefix)
-				Arrays.asList("a", "b", "c", "d", "e"), Arrays.asList("x", "y") // "x"
-																				// >
-																				// "a"
-				);
-
-		Collections.sort(values, new IterableComparator());
-		assertEquals(sortedValues, values);
-	}
-
-	@Test
-	public void nestedListCompare() throws Exception {
-		List<List<List<String>>> values = Arrays.asList(
-				Arrays.asList(Arrays.asList("x", "y", "z"),
-						Arrays.asList("1", "2", "3"), Arrays.asList("extra")),
-				Arrays.asList(Arrays.asList("x", "y", "z"),
-						Arrays.asList("1", "2", "3")));
-
-		List<List<List<String>>> sortedValues = Arrays.asList(
-				Arrays.asList(Arrays.asList("x", "y", "z"),
-						Arrays.asList("1", "2", "3")),
-				Arrays.asList(Arrays.asList("x", "y", "z"),
-						Arrays.asList("1", "2", "3"), Arrays.asList("extra")));
-
-		Collections.sort(values, new IterableComparator());
-		assertEquals(sortedValues, values);
-	}
-
-	@SuppressWarnings({ "rawtypes", "unchecked" })
-	@Test(expected = ClassCastException.class)
-	public void intsAndStrings() throws Exception {
-		List<Integer> intList = Arrays.asList(1, 2, 3);
-		List<String> strList = Arrays.asList("x", "y");
-		List values = Arrays.asList(intList, strList);
-		Collections.sort(values, new IterableComparator());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestNullCompare.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestNullCompare.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestNullCompare.java
deleted file mode 100644
index e25b559..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/impl/TestNullCompare.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.apache.taverna.scufl2.api.impl;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.impl.NullSafeComparator;
-import org.junit.Test;
-
-public class TestNullCompare {
-	@Test
-	public void testNullCompare() throws Exception {
-		List<String> values = Arrays.asList("c", null, "b", null, "a", "c");
-		Collections.sort(values, new NullSafeComparator<String>());
-		assertEquals(Arrays.asList(null, null, "a", "b", "c", "c"), values);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestResources.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestResources.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestResources.java
deleted file mode 100644
index 2073430..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestResources.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertTrue;
-
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestResources {
-
-	private WorkflowBundle wb;
-	ExampleWorkflow exampleWorkflow = new ExampleWorkflow();
-
-	@Test
-	public void emptyResources() throws Exception {
-		UCFPackage resources = wb.getResources();
-		assertTrue(resources.listResources().isEmpty());
-	}
-
-	@Before
-	public void makeBundle() {
-		wb = exampleWorkflow.makeWorkflowBundle();
-	}
-
-	@Test
-	public void singleFile() throws Exception {
-		UCFPackage resources = wb.getResources();
-		resources.addResource("Hello there", "hello.txt", "text/plain");
-		assertTrue(resources.listResources().containsKey("hello.txt"));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestStructureReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestStructureReader.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestStructureReader.java
deleted file mode 100644
index ae0c91f..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestStructureReader.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.apache.taverna.scufl2.api.io.structure.StructureReader.TEXT_VND_TAVERNA_SCUFL2_STRUCTURE;
-import static org.junit.Assert.assertEquals;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.junit.Test;
-
-
-public class TestStructureReader {
-
-	private static final String UTF_8 = "utf-8";
-	protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-	
-	public String getStructureFormatWorkflowBundle() throws IOException {
-		InputStream helloWorldStream = getClass().getResourceAsStream(
-				"HelloWorld.txt");
-		return IOUtils.toString(helloWorldStream);
-	}
-	
-	@Test
-	public void configurationReadTwice() throws Exception {
-		InputStream inputStream = new ByteArrayInputStream(
-				getStructureFormatWorkflowBundle().getBytes("utf-8"));
-		WorkflowBundle readBundle = bundleIO.readBundle(inputStream,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertEquals(1, readBundle.getMainProfile().getConfigurations().size());
-		new Scufl2Tools().setParents(readBundle);
-		assertEquals(1, readBundle.getMainProfile().getConfigurations().size());
-		ByteArrayOutputStream output = new ByteArrayOutputStream();
-		bundleIO.writeBundle(readBundle, output, TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertEquals(1, readBundle.getMainProfile().getConfigurations().size());
-		String bundleTxt = new String(output.toByteArray(), UTF_8);
-                String getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle();
-                bundleTxt = bundleTxt.replaceAll("\r", "").replaceAll("\n", "");
-                getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle.replaceAll("\r", "").replaceAll("\n", "");
-		assertEquals(getStructureFormatWorkflowBundle, bundleTxt);
-		
-	}
-	
-	@Test
-    public void multiLineJson() throws Exception {
-	    String struct = getStructureFormatWorkflowBundle();
-	    // Make JSON multi-line by adding some whitespace
-	    struct = struct.replace("{", "{\n         ");
-	    struct = struct.replace("\":\"", "\":\n             \"");
-	    struct = struct.replace("}", "\n        }\n");
-	    // EG: 
-//       {
-//        "script":
-//            "hello = \"Hello, \" + personName;\nJOptionPane.showMessageDialog(null, hello);"
-//       }
-	    
-//	    System.out.println(struct);
-	    
-	    InputStream inputStream = new ByteArrayInputStream(
-	            struct.getBytes("utf-8"));
-        WorkflowBundle readBundle = bundleIO.readBundle(inputStream,
-                TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-        assertEquals(1, readBundle.getMainProfile().getConfigurations().size());
-        
-        Configuration config = readBundle.getMainProfile().getConfigurations().getByName("Hello");
-        String script = config.getJson().get("script").asText();
-        String expected = "hello = \"Hello, \" + personName;\n"
-                + "JOptionPane.showMessageDialog(null, hello);";
-        assertEquals(expected, script);        
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestWorkflowBundleIO.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestWorkflowBundleIO.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestWorkflowBundleIO.java
deleted file mode 100644
index e1d25d6..0000000
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/io/TestWorkflowBundleIO.java
+++ /dev/null
@@ -1,383 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.apache.taverna.scufl2.api.io.structure.StructureReader.TEXT_VND_TAVERNA_SCUFL2_STRUCTURE;
-import static org.junit.Assert.*;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Set;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.taverna.scufl2.api.ExampleWorkflow;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleWriter;
-import org.apache.taverna.scufl2.api.io.structure.StructureReader;
-import org.apache.taverna.scufl2.api.io.structure.StructureWriter;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-public class TestWorkflowBundleIO extends ExampleWorkflow {
-
-	private static final String UTF_8 = "utf-8";
-	protected WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-	protected WorkflowBundle wfBundle = makeWorkflowBundle();
-
-	@Test
-	public void createBundle() throws Exception {
-		WorkflowBundle wb = bundleIO.createBundle();
-		assertEquals(wb, wb.getMainWorkflow().getParent());
-		assertEquals(wb, wb.getMainProfile().getParent());
-		assertEquals("bundle1", wb.getName());
-		assertEquals("workflow1", wb.getMainWorkflow().getName());
-		assertEquals("profile1", wb.getMainProfile().getName());
-		assertNotNull(wb.getCurrentRevision());
-		assertNotNull(wb.getMainWorkflow().getCurrentRevision());
-		assertNotNull(wb.getMainProfile().getCurrentRevision());
-	}
-	
-	@Test
-	public void getReaderForMediaType() throws Exception {
-		WorkflowBundleReader Reader = bundleIO
-		.getReaderForMediaType(TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertTrue(Reader instanceof StructureReader);
-	}
-
-	@Test
-	public void getReaderForUnknownMediaType() throws Exception {
-		assertNull(bundleIO
-				.getReaderForMediaType("application/vnd.example.unknownStuff"));
-	}
-
-	public String getStructureFormatWorkflowBundle() throws IOException {
-		InputStream helloWorldStream = getClass().getResourceAsStream(
-				"HelloWorld.txt");
-		return IOUtils.toString(helloWorldStream);
-	}
-
-	@Test
-	public void getWorkflowBundleReaders() throws Exception {
-		assertEquals(1, bundleIO.getReaders().size());
-		WorkflowBundleReader Reader = bundleIO.getReaders().get(0);
-		assertTrue(Reader instanceof StructureReader);
-	}
-
-	@Test
-	public void getWorkflowBundleWriters() throws Exception {
-		assertEquals(1, bundleIO.getWriters().size());
-		WorkflowBundleWriter writer = bundleIO.getWriters().get(0);
-		assertTrue(writer instanceof StructureWriter);
-	}
-
-	
-	@Test
-	public void getWriterForMediaType() throws Exception {
-		WorkflowBundleWriter writer = bundleIO
-		.getWriterForMediaType(TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertTrue(writer instanceof StructureWriter);
-	}
-
-	@Test
-	public void getWriterForUnknownMediaType() throws Exception {
-		assertNull(bundleIO
-				.getWriterForMediaType("application/vnd.example.unknownStuff"));
-	}
-	
-	@Test
-	public void guessMediaType() {
-		WorkflowBundleReader myReader = new WorkflowBundleReader() {
-			@Override
-			public Set<String> getMediaTypes() {
-				return null;
-			}
-			@Override
-			public WorkflowBundle readBundle(File bundleFile, String mediaType) {
-				return null;
-			}
-			@Override
-			public WorkflowBundle readBundle(InputStream inputStream,
-					String mediaType) {
-				return null;
-			}
-			@Override
-			public String guessMediaTypeForSignature(byte[] firstBytes) {
-				if (firstBytes.length == 4) {
-					return "test/test";
-				}
-				return null;
-			}
-		};
-
-		WorkflowBundleReader otherReader = new WorkflowBundleReader() {
-			@Override
-			public Set<String> getMediaTypes() {
-				return null;
-			}
-			@Override
-			public WorkflowBundle readBundle(File bundleFile, String mediaType) {
-				return null;
-			}
-			@Override
-			public WorkflowBundle readBundle(InputStream inputStream,
-					String mediaType) {
-				return null;
-			}
-			@Override
-			public String guessMediaTypeForSignature(byte[] firstBytes) {
-				if (firstBytes.length == 4) {
-					return "test/other";
-				}
-				return null;
-			}
-		};
-
-		
-		bundleIO.setReaders(Arrays.asList(myReader));
-		assertEquals(null, bundleIO.guessMediaTypeForSignature(new byte[16]));
-		assertEquals("test/test", bundleIO.guessMediaTypeForSignature(new byte[4]));
-
-
-		bundleIO.setReaders(Arrays.asList(myReader, myReader));
-		// 4 bytes should not be ambiguous, they all agree
-		assertEquals("test/test", bundleIO.guessMediaTypeForSignature(new byte[4]));		
-		
-		bundleIO.setReaders(Arrays.asList(myReader, myReader, otherReader));
-		// 4 bytes should now be ambiguous
-		assertEquals(null, bundleIO.guessMediaTypeForSignature(new byte[4]));		
-	}
-
-
-	@Test
-	public void readBundleFile() throws Exception {
-		File bundleFile = tempFile();
-		FileUtils.writeStringToFile(bundleFile,
-				getStructureFormatWorkflowBundle(),
-				UTF_8);
-		WorkflowBundle wfBundle = bundleIO.readBundle(bundleFile,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertEquals("HelloWorld", wfBundle.getName());
-		assertEquals("HelloWorld", wfBundle.getMainWorkflow().getName());
-		assertTrue(wfBundle.getMainWorkflow().getProcessors()
-				.containsName("Hello"));
-	}
-
-	
-
-	@Test
-	public void readBundleFileNoMediaType() throws Exception {
-		File bundleFile = tempFile();
-		FileUtils.writeStringToFile(bundleFile,
-				getStructureFormatWorkflowBundle(),
-				UTF_8);
-		WorkflowBundle wfBundle = bundleIO.readBundle(bundleFile,null);
-		assertNotNull(wfBundle);
-
-		File emptyFile = File.createTempFile("test", "txt");
-		try {
-			@SuppressWarnings("unused")
-			WorkflowBundle none = bundleIO.readBundle(emptyFile,null);
-			fail("Should throw IllegalArgumentException for unrecognized file");
-		} catch (IllegalArgumentException ex) {
-		}
-	}
-
-	@Test
-	public void readBundleStream() throws Exception {
-		InputStream inputStream = new ByteArrayInputStream(
-				getStructureFormatWorkflowBundle().getBytes("utf-8"));
-		WorkflowBundle wfBundle = bundleIO.readBundle(inputStream,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertEquals("HelloWorld", wfBundle.getName());
-		assertEquals("HelloWorld", wfBundle.getMainWorkflow().getName());
-		assertTrue(wfBundle.getMainWorkflow().getProcessors()
-				.containsName("Hello"));
-	}
-	
-	@Test
-	public void readBundleStreamNoMediaType() throws Exception {
-		InputStream inputStream = new ByteArrayInputStream(
-				getStructureFormatWorkflowBundle().getBytes("utf-8"));
-		WorkflowBundle wfBundle = bundleIO.readBundle(inputStream, null);
-		assertNotNull(wfBundle);
-		assertEquals("HelloWorld", wfBundle.getName());
-
-	}
-
-
-	@Test
-	public void readToWriteRoundTrip() throws Exception {
-		InputStream inputStream = new ByteArrayInputStream(
-				getStructureFormatWorkflowBundle().getBytes("utf-8"));
-		WorkflowBundle readBundle = bundleIO.readBundle(inputStream,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		ByteArrayOutputStream output = new ByteArrayOutputStream();
-		bundleIO.writeBundle(readBundle, output, TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		String bundleTxt = new String(output.toByteArray(), UTF_8);
-                String getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle();
-                bundleTxt = bundleTxt.replaceAll("\r", "").replaceAll("\n", "");
-                getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle.replaceAll("\r", "").replaceAll("\n", "");
-		assertEquals(getStructureFormatWorkflowBundle, bundleTxt);
-	}
-
-	@Test
-	public void setReaders() {
-		WorkflowBundleReader myReader = new WorkflowBundleReader() {
-			@Override
-			public Set<String> getMediaTypes() {
-				return Collections.singleton("application/vnd.example.myOwn");
-			}
-			@Override
-			public WorkflowBundle readBundle(File bundleFile, String mediaType) {
-				return null;
-			}
-			@Override
-			public WorkflowBundle readBundle(InputStream inputStream,
-					String mediaType) {
-				return null;
-			}
-			@Override
-			public String guessMediaTypeForSignature(byte[] firstBytes) {
-				return "test/test";
-			}
-		};
-
-		bundleIO.setReaders(Collections.singletonList(myReader));
-		assertEquals(1, bundleIO.getReaders().size());
-		assertSame(myReader, bundleIO.getReaders().get(0));
-		assertSame(myReader,
-				bundleIO.getReaderForMediaType("application/vnd.example.myOwn"));
-
-		// Should now be null
-		assertNull(bundleIO
-				.getReaderForMediaType(TEXT_VND_TAVERNA_SCUFL2_STRUCTURE));		
-		assertEquals("test/test", bundleIO.guessMediaTypeForSignature(new byte[4]));
-	}
-	
-	
-
-	@Test
-	public void setWriters() {
-		WorkflowBundleWriter myWriter = new WorkflowBundleWriter() {
-			@Override
-			public Set<String> getMediaTypes() {
-				return Collections.singleton("application/vnd.example.myOwn");
-			}
-			@Override
-			public void writeBundle(WorkflowBundle wfBundle, File destination,
-					String mediaType) {
-			}
-			@Override
-			public void writeBundle(WorkflowBundle wfBundle,
-					OutputStream output, String mediaType) {
-			}
-		};
-
-		bundleIO.setWriters(Collections.singletonList(myWriter));
-		assertEquals(1, bundleIO.getWriters().size());
-		assertSame(myWriter, bundleIO.getWriters().get(0));
-		assertSame(myWriter,
-				bundleIO.getWriterForMediaType("application/vnd.example.myOwn"));
-
-		// Should now be null
-		assertNull(bundleIO
-				.getWriterForMediaType(TEXT_VND_TAVERNA_SCUFL2_STRUCTURE));
-	}
-
-	public File tempFile() throws IOException {
-		File bundleFile = File.createTempFile("scufl2", "txt");
-		bundleFile.deleteOnExit();
-		return bundleFile;
-	}
-
-	@Test
-	public void writeBundleFile() throws Exception {
-		File bundleFile = tempFile();
-		bundleIO.writeBundle(wfBundle, bundleFile,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		String bundleTxt = FileUtils.readFileToString(bundleFile, UTF_8);
-                String getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle();
-                bundleTxt = bundleTxt.replaceAll("\r", "").replaceAll("\n", "");
-                getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle.replaceAll("\r", "").replaceAll("\n", "");
-		assertEquals(getStructureFormatWorkflowBundle, bundleTxt);
-	}
-
-	@Ignore
-	@Test
-	public void writeBundleFileSetParents() throws Exception {
-		File bundleFile = tempFile();
-		// Deliberately orphan a profile and a processor
-		Profile profile = wfBundle.getProfiles().getByName("tavernaWorkbench");
-		profile.setParent(null);		
-		wfBundle.getProfiles().add(profile);		
-		processor.setParent(null);
-		workflow.getProcessors().add(processor);		
-		
-		assertNull(processor.getParent());
-		assertNull(profile.getParent());		
-		bundleIO.writeBundle(wfBundle, bundleFile,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		assertNotNull(processor.getParent());
-		assertNotNull(profile.getParent());				
-		String bundleTxt = FileUtils.readFileToString(bundleFile, UTF_8);
-		assertTrue(bundleTxt.contains("Processor 'Hello'"));
-		assertTrue(bundleTxt.contains("Profile 'tavernaWorkbench'"));		
-	}
-	
-	@Test
-	public void writeBundleStream() throws Exception {
-		ByteArrayOutputStream output = new ByteArrayOutputStream();
-		bundleIO.writeBundle(wfBundle, output, TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-		String bundleTxt = new String(output.toByteArray(), UTF_8);
-                String getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle();
-                bundleTxt = bundleTxt.replaceAll("\r", "").replaceAll("\n", "");
-                getStructureFormatWorkflowBundle = getStructureFormatWorkflowBundle.replaceAll("\r", "").replaceAll("\n", "");
-		assertEquals(getStructureFormatWorkflowBundle, bundleTxt);
-	}
-
-	@Test(expected = IllegalArgumentException.class)
-	public void writeBundleUnknownMediaType() throws Exception {
-		File bundleFile = tempFile();
-		bundleIO.writeBundle(wfBundle, bundleFile,
-		"application/vnd.example.unknownStuff");
-	}
-
-	@Test(expected = IOException.class)
-	public void writeBundleWrongLocation() throws Exception {
-		File bundleDir = tempFile();
-		bundleDir.delete();
-		File bundleFile = new File(bundleDir, "nonExistingDir");
-		bundleIO.writeBundle(wfBundle, bundleFile,
-				TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/resources/org/apache/taverna/scufl2/api/io/HelloWorld.txt
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/resources/org/apache/taverna/scufl2/api/io/HelloWorld.txt b/taverna-scufl2-api/src/test/resources/org/apache/taverna/scufl2/api/io/HelloWorld.txt
deleted file mode 100644
index 55a7d0e..0000000
--- a/taverna-scufl2-api/src/test/resources/org/apache/taverna/scufl2/api/io/HelloWorld.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-WorkflowBundle 'HelloWorld'
-  MainWorkflow 'HelloWorld'
-  Workflow 'HelloWorld'
-    In 'yourName'
-    Out 'results'
-    Processor 'Hello'
-      In 'name'
-      Out 'greeting'
-    Processor 'wait4me'
-    Links
-      'Hello:greeting' -> 'results'
-      'yourName' -> 'Hello:name'
-      'yourName' -> 'results'
-    Controls
-      block 'Hello' until 'wait4me' finish
-  MainProfile 'tavernaWorkbench'
-  Profile 'tavernaServer'
-    Activity 'HelloScript'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'personName'
-      Out 'hello'
-    ProcessorBinding 'Hello'
-      Activity 'HelloScript'
-      Processor 'HelloWorld:Hello'
-      InputPortBindings
-        'name' -> 'personName'
-      OutputPortBindings
-        'hello' -> 'greeting'
-    Configuration 'Hello'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/HelloScript'
-        {"script":"hello = \"Hello, \" + personName;\nSystem.out.println(\"Server says: \" + hello);"}
-  Profile 'tavernaWorkbench'
-    Activity 'HelloScript'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'personName'
-      Out 'hello'
-    ProcessorBinding 'Hello'
-      Activity 'HelloScript'
-      Processor 'HelloWorld:Hello'
-      InputPortBindings
-        'name' -> 'personName'
-      OutputPortBindings
-        'hello' -> 'greeting'
-    Configuration 'Hello'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/HelloScript'
-        {"script":"hello = \"Hello, \" + personName;\nJOptionPane.showMessageDialog(null, hello);"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/test/resources/roevo-test.ttl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/resources/roevo-test.ttl b/taverna-scufl2-api/src/test/resources/roevo-test.ttl
deleted file mode 100644
index 6e0c5aa..0000000
--- a/taverna-scufl2-api/src/test/resources/roevo-test.ttl
+++ /dev/null
@@ -1,96 +0,0 @@
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements.  See the NOTICE file distributed with
-#   this work for additional information regarding copyright ownership.
-#   The ASF licenses this file to You under the Apache License, Version 2.0
-#   (the "License"); you may not use this file except in compliance with
-#   the License.  You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS,
-#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#   See the License for the specific language governing permissions and
-#   limitations under the License.
-@prefix roevo: <http://purl.org/wf4ever/roevo#> .
-@prefix ro: <http://purl.org/wf4ever/ro#> .
-@prefix wfdesc: <http://purl.org/wf4ever/wfdesc#> .
-@prefix prov: <http://www.w3.org/ns/prov#> .
-@prefix terms: <http://purl.org/dc/terms/> .
-@prefix scufl2: <http://ns.taverna.org.uk/2010/scufl2#> .
-@prefix : <#> .
-
-<wf-v3> a wfdesc:Workflow, scufl2:Workflow, roevo:VersionableResource, prov:Entity ;
-    terms:identifier "23481928391283" ;
-    prov:wasGeneratedBy <wf-v3-change> ;
-    roevo:wasChangedBy <wf-v3-change> .
-    
-<wf-v3-change-spec> a roevo:ChangeSpecification, prov:Activity ;
-    prov:endedAtTime "2012-12-24T18:00:00+01" ;
-    roevo:fromVersion <wf-v2> ;
-    roevo:toVersion <wf-v3> ;
-    roevo:hasChange <wf-v3-change> .
-
-<wf-v3-change> a roevo:Change, roevo:Addition, prov:Activity ;
-    prov:wasGeneratedBy <wf-v3-change> ;
-    prov:used <nested-workflow1> ;
-    roevo:relatedResource <nested-workflow1> .
-
-# Short-hand form without any related resource
-<wf-v2> a roevo:VersionableResource ;
-     roevo:wasChangedBy [ a roevo:ChangeSpecification ;
-         roevo:fromVersion <wf-v1> ;
-         roevo:hasChange [ a roevo:Addition
-		roevo:relatedResource <nested-workflow1>.
-	]	
-     ] .
-
-# Simple
-<simple-v3> a prov:Entity ;
-    prov:generatedAtTime  "2012-12-24T18:00:00+01" ;
-    prov:wasRevisionOf <simple-v2> .
-
-
-# Joined
-<joint-v3> a prov:Entity ;
-    prov:generatedAtTime  "2012-12-24T18:00:00+01" ;
-    prov:wasRevisionOf <joint-v2> ;
-    roevo:wasChangedBy [ a roevo:ChangeSpecification, prov:Activity;
-        roevo:fromVersion <joint-v2> ;
-        roevo:hasChange [ a roevo:Addition;
-            roevo:relatedResource <nested-workflow1> 
-        ] 
-    ] .
-
-
-<VersionableResource rdf:about="joint-v3">
-  <wasChangedBy>
-    <ChangeSpecification>
-      <fromVersion rdf:resource="joint-v2"/>
-      <hasChange>
-        <Addition>
-          <relatedResource rdf:resource="nested-workflow1"/>
-        </Addition>
-      </hasChange>
-    </ChangeSpecification>
-  </wasChangedBy>
-  <prov:generatedAtTime>2012-12-24T18:00:00+01</prov:generatedAtTime>
-  <prov:wasRevisionOf rdf:resource="joint-v2"/>
-</VersionableResource>
-
-<VersionableResource rdf:about="joint-v2">
-  <wasChangedBy>
-    <ChangeSpecification>
-      <fromVersion rdf:resource="joint-v1"/>
-      <hasChange>
-        <Addition>
-          <relatedResource rdf:resource="nested-workflow1"/>
-        </Addition>
-      </hasChange>
-    </ChangeSpecification>
-  </wasChangedBy>
-  <prov:generatedAtTime>2012-12-24T18:00:00+01</prov:generatedAtTime>
-  <prov:wasRevisionOf rdf:resource="joint-v1"/>
-</VersionableResource>
-
-


[02/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackage.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackage.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackage.java
deleted file mode 100644
index c99cdbe..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackage.java
+++ /dev/null
@@ -1,1880 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- *
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- * Copyright 2009 IBM. All rights reserved.
- *
- * Use is subject to license terms.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg;
-
-import static java.util.logging.Level.INFO;
-import static java.util.logging.Level.SEVERE;
-import static java.util.logging.Level.WARNING;
-import static java.util.zip.ZipEntry.DEFLATED;
-import static java.util.zip.ZipEntry.STORED;
-import static org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.StreamHelper.PAGE_SIZE;
-import static org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.TempDir.newTempOdfDirectory;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.JarURLConnection;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.zip.CRC32;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Source;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.Algorithm;
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.EncryptionData;
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.KeyDerivation;
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.OdfFileEntry;
-import org.w3c.dom.Document;
-import org.w3c.dom.bootstrap.DOMImplementationRegistry;
-import org.w3c.dom.ls.DOMImplementationLS;
-import org.w3c.dom.ls.LSOutput;
-import org.w3c.dom.ls.LSSerializer;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-
-/**
- * OdfPackage represents the package view to an OpenDocument document. The
- * OdfPackage will be created from an ODF document and represents a copy of the
- * loaded document, where files can be inserted and deleted. The changes take
- * effect, when the OdfPackage is being made persistend by save().
- */
-public class OdfPackage implements AutoCloseable {
-	/**
-	 * This class solely exists to clean up after a package object has been
-	 * removed by garbage collector. Finalizable classes are said to have slow
-	 * garbage collection, so we don't make the whole OdfPackage finalizable.
-	 */
-	static private class OdfFinalizablePackage {
-		File mTempDirForDeletion;
-
-		OdfFinalizablePackage(File tempDir) {
-			mTempDirForDeletion = tempDir;
-		}
-
-		@Override
-		protected void finalize() {
-			if (mTempDirForDeletion != null)
-				TempDir.deleteTempOdfDirectory(mTempDirForDeletion);
-		}
-	}
-	private final Logger mLog = Logger.getLogger(OdfPackage.class.getName());
-
-	public enum OdfFile {
-		IMAGE_DIRECTORY("Pictures"), MANIFEST("META-INF/manifest.xml"), MEDIA_TYPE(
-				"mimetype");
-		private final String packagePath;
-
-		OdfFile(String packagePath) {
-			this.packagePath = packagePath;
-		}
-
-		public String getPath() {
-			return packagePath;
-		}
-	}
-
-	private static HashSet<String> mCompressedFileTypes = new HashSet<>();
-	{
-		String[] typelist = new String[] { "jpg", "gif", "png", "zip", "rar",
-				"jpeg", "mpe", "mpg", "mpeg", "mpeg4", "mp4", "7z", "ari",
-				"arj", "jar", "gz", "tar", "war", "mov", "avi" };
-		for (int i = 0; i < typelist.length; i++)
-			mCompressedFileTypes.add(typelist[i]);
-	}
-
-	// Static parts of file references
-	private static final String TWO_DOTS = "..";
-	private static final String SLASH = "/";
-	private static final String COLON = ":";
-	private static final String EMPTY_STRING = "";
-	private static final String XML_MEDIA_TYPE = "text/xml";
-	// temp Dir for this ODFpackage (2DO: temp dir handling will be removed most
-	// likely)
-	private File mTempDirParent;
-	private File mTempDir;
-	// only used indirectly for its finalizer (garbage collection)
-	@SuppressWarnings("unused")
-	private OdfFinalizablePackage mFinalize;
-	// some well known streams inside ODF packages
-	private String mMediaType;
-	private List<String> mPackageEntries;
-	private ZipHelper mZipFile;
-	private HashMap<String, ZipEntry> mZipEntries;
-	private HashMap<String, Document> mContentDoms;
-	private HashMap<String, byte[]> mContentStreams;
-	private HashMap<String, File> mTempFiles;
-	private boolean mUseTempFile;
-	private List<String> mManifestList;
-	private HashMap<String, OdfFileEntry> mManifestEntries;
-	private String mBaseURI;
-	private Resolver mResolver;
-
-	/**
-	 * Creates the ODFPackage as an empty Package. For setting a specific temp
-	 * directory, set the System variable org.odftoolkit.odfdom.tmpdir:<br>
-	 * <code>System.setProperty("org.odftoolkit.odfdom.tmpdir");</code>
-	 */
-	private OdfPackage() {
-		mMediaType = null;
-		mResolver = null;
-		mTempDir = null;
-		mTempDirParent = null;
-		mPackageEntries = new LinkedList<String>();
-		mZipEntries = new HashMap<String, ZipEntry>();
-		mContentDoms = new HashMap<String, Document>();
-		mContentStreams = new HashMap<String, byte[]>();
-		mTempFiles = new HashMap<String, File>();
-		mManifestList = new LinkedList<String>();
-
-		// get a temp directory for everything
-		String userPropDir = System.getProperty("org.odftoolkit.odfdom.tmpdir");
-		if (userPropDir != null)
-			mTempDirParent = new File(userPropDir);
-
-		// specify whether temporary files are able to used.
-		String userPropTempEnable = System
-				.getProperty("org.odftoolkit.odfdom.tmpfile.disable");
-		mUseTempFile = (userPropTempEnable == null)
-				|| !userPropTempEnable.equalsIgnoreCase("true");
-	}
-
-	public static OdfPackage create() throws Exception {
-		OdfPackage odfPackage = new OdfPackage();
-		odfPackage.mManifestEntries = new HashMap<>();
-		// We just need some dummy XML first
-		odfPackage.insert("<x />".getBytes(), OdfFile.MANIFEST.getPath(),
-				XML_MEDIA_TYPE);
-		return odfPackage;
-	}
-
-	/**
-	 * Creates an OdfPackage from the OpenDocument provided by a filePath.
-	 *
-	 * <p>
-	 * OdfPackage relies on the file being available for read access over the
-	 * whole lifecycle of OdfPackage.
-	 * </p>
-	 *
-	 * @param odfPath
-	 *            - the path to the ODF document.
-	 * @throws java.lang.Exception
-	 *             - if the package could not be created
-	 */
-	private OdfPackage(String odfPath) throws Exception {
-		this();
-		initialize(new File(odfPath));
-	}
-
-	/**
-	 * Creates an OdfPackage from the OpenDocument provided by a File.
-	 *
-	 * <p>
-	 * OdfPackage relies on the file being available for read access over the
-	 * whole lifecycle of OdfPackage.
-	 * </p>
-	 *
-	 * @param odfFile
-	 *            - a file representing the ODF document
-	 * @throws java.lang.Exception
-	 *             - if the package could not be created
-	 */
-	private OdfPackage(File odfFile) throws Exception {
-		this();
-		initialize(odfFile);
-	}
-
-	/**
-	 * Creates an OdfPackage from the OpenDocument provided by a InputStream.
-	 *
-	 * <p>
-	 * Since an InputStream does not provide the arbitrary (non sequentiell)
-	 * read access needed by OdfPackage, the InputStream is cached. This usually
-	 * takes more time compared to the other constructors.
-	 * </p>
-	 *
-	 * @param odfStream
-	 *            - an inputStream representing the ODF package
-	 * @throws java.lang.Exception
-	 *             - if the package could not be created
-	 */
-	private OdfPackage(InputStream odfStream) throws Exception {
-		this();
-		if (mUseTempFile) {
-			File tempFile = newTempSourceFile(odfStream);
-			initialize(tempFile);
-		} else {
-			initialize(odfStream);
-		}
-	}
-
-	/**
-	 * Loads an OdfPackage from the given filePath.
-	 *
-	 * <p>
-	 * OdfPackage relies on the file being available for read access over the
-	 * whole lifecycle of OdfPackage.
-	 * </p>
-	 *
-	 * @param odfPath
-	 *            - the filePath to the ODF package
-	 * @return the OpenDocument document represented as an OdfPackage
-	 * @throws java.lang.Exception
-	 *             - if the package could not be loaded
-	 */
-	public static OdfPackage loadPackage(String odfPath) throws Exception {
-		return new OdfPackage(odfPath);
-	}
-
-	/**
-	 * Loads an OdfPackage from the OpenDocument provided by a File.
-	 *
-	 * <p>
-	 * OdfPackage relies on the file being available for read access over the
-	 * whole lifecycle of OdfPackage.
-	 * </p>
-	 *
-	 * @param odfFile
-	 *            - a File to loadPackage content from
-	 * @return the OpenDocument document represented as an OdfPackage
-	 * @throws java.lang.Exception
-	 *             - if the package could not be loaded
-	 */
-	public static OdfPackage loadPackage(File odfFile) throws Exception {
-		return new OdfPackage(odfFile);
-	}
-
-	/**
-	 * Creates an OdfPackage from the OpenDocument provided by a InputStream.
-	 *
-	 * <p>
-	 * Since an InputStream does not provide the arbitrary (non sequentiell)
-	 * read access needed by OdfPackage, the InputStream is cached. This usually
-	 * takes more time compared to the other loadPackage methods.
-	 * </p>
-	 *
-	 * @param odfStream
-	 *            - an inputStream representing the ODF package
-	 * @return the OpenDocument document represented as an OdfPackage
-	 * @throws java.lang.Exception
-	 *             - if the package could not be loaded
-	 */
-	public static OdfPackage loadPackage(InputStream odfStream)
-			throws Exception {
-		return new OdfPackage(odfStream);
-	}
-
-	// Initialize using memory instead temporary disc
-	private void initialize(InputStream odfStream) throws Exception {
-		ByteArrayOutputStream tempBuf = new ByteArrayOutputStream();
-		StreamHelper.stream(odfStream, tempBuf);
-		byte[] mTempByteBuf = tempBuf.toByteArray();
-		tempBuf.close();
-
-		if (mTempByteBuf.length < 3)
-			throw new IllegalArgumentException(
-					"An empty file was tried to be opened as ODF package!");
-
-		mZipFile = new ZipHelper(mTempByteBuf);
-		Enumeration<? extends ZipEntry> entries = mZipFile.entries();
-		if (!entries.hasMoreElements())
-			throw new IllegalArgumentException(
-					"It was not possible to unzip the file!");
-		do {
-			ZipEntry zipEntry = entries.nextElement();
-			mZipEntries.put(zipEntry.getName(), zipEntry);
-			/*
-			 * TODO: think about if the additional list mPackageEntries is
-			 * necessary - shouldn't everything be part of one of the other
-			 * lists? maybe keep this as "master", rename it?
-			 */
-			mPackageEntries.add(zipEntry.getName());
-			if (zipEntry.getName().equals(
-					OdfPackage.OdfFile.MEDIA_TYPE.getPath())) {
-				ByteArrayOutputStream out = new ByteArrayOutputStream();
-				StreamHelper.stream(mZipFile.getInputStream(zipEntry), out);
-				try {
-					mMediaType = new String(out.toByteArray(), 0,
-							out.size(), "UTF-8");
-				} catch (UnsupportedEncodingException ex) {
-					mLog.log(SEVERE, null, ex);
-				}
-			}
-		} while (entries.hasMoreElements());
-	}
-
-	// Initialize using temporary directory on hard disc
-	private void initialize(File odfFile) throws Exception {
-		mBaseURI = getBaseURIFromFile(odfFile);
-
-		if (mTempDirParent == null) {
-			/*
-			 * getParentFile() returns already java.io.tmpdir when package is an
-			 * odfStream
-			 */
-			mTempDirParent = odfFile.getAbsoluteFile().getParentFile();
-			if (!mTempDirParent.canWrite())
-				mTempDirParent = null; // java.io.tmpdir will be used implicitly
-		}
-
-		try {
-			mZipFile = new ZipHelper(new ZipFile(odfFile));
-		} catch (Exception e) {
-			if (odfFile.length() < 3)
-				throw new IllegalArgumentException("The empty file '"
-						+ odfFile.getPath() + "' is no ODF package!", e);
-			throw new IllegalArgumentException("Could not unzip the file "
-					+ odfFile.getPath(), e);
-		}
-		Enumeration<? extends ZipEntry> entries = mZipFile.entries();
-
-		while (entries.hasMoreElements()) {
-			ZipEntry zipEntry = entries.nextElement();
-			mZipEntries.put(zipEntry.getName(), zipEntry);
-			/*
-			 * TODO: think about if the additional list mPackageEntries is
-			 * necessary - shouldn't everything be part of one of the other
-			 * lists? maybe keep this as "master", rename it?
-			 */
-			mPackageEntries.add(zipEntry.getName());
-			if (zipEntry.getName().equals(
-					OdfPackage.OdfFile.MEDIA_TYPE.getPath())) {
-				ByteArrayOutputStream out = new ByteArrayOutputStream();
-				StreamHelper.stream(mZipFile.getInputStream(zipEntry), out);
-				try {
-					mMediaType = new String(out.toByteArray(), 0, out.size(),
-							"UTF-8");
-				} catch (UnsupportedEncodingException ex) {
-					mLog.log(Level.SEVERE, null, ex);
-				}
-			}
-		}
-	}
-
-	private File newTempSourceFile(InputStream odfStream) throws Exception {
-		// no idea yet what type of file this will be, so we take .tmp
-		File odfFile = new File(getTempDir(), "theFile.tmp");
-		// copy stream to temp file
-		FileOutputStream os = new FileOutputStream(odfFile);
-		StreamHelper.stream(odfStream, os);
-		os.close();
-		return odfFile;
-	}
-
-	/**
-	 * Set the baseURI for this ODF package. NOTE: Should only be set during
-	 * saving the package.
-	 */
-	void setBaseURI(String baseURI) {
-		mBaseURI = baseURI;
-	}
-
-	/**
-	 * Get the URI, where this ODF package is stored.
-	 *
-	 * @return the URI to the ODF package. Returns null if package is not stored
-	 *         yet.
-	 */
-	public String getBaseURI() {
-		return mBaseURI;
-	}
-
-	/**
-	 * Get the media type of the ODF package (equal to media type of ODF root
-	 * document)
-	 *
-	 * @return the mediaType string of this ODF package
-	 */
-	public String getMediaType() {
-		return mMediaType;
-	}
-
-	/**
-	 * Set the media type of the ODF package (equal to media type of ODF root
-	 * document)
-	 *
-	 * @param mediaType
-	 *            string of this ODF package
-	 */
-	public void setMediaType(String mediaType) {
-		mMediaType = mediaType;
-		mPackageEntries.remove(OdfPackage.OdfFile.MEDIA_TYPE.getPath());
-		if (mMediaType != null)
-			mPackageEntries.add(0, OdfPackage.OdfFile.MEDIA_TYPE.getPath());
-	}
-
-	/**
-	 *
-	 * Get an OdfFileEntry for the packagePath NOTE: This method should be
-	 * better moved to a DOM inherited Manifest class
-	 *
-	 * @param packagePath
-	 *            The relative package path within the ODF package
-	 * @return The manifest file entry will be returned.
-	 */
-	public OdfFileEntry getFileEntry(String packagePath) {
-		packagePath = ensureValidPackagePath(packagePath);
-		return getManifestEntries().get(packagePath);
-	}
-
-	/**
-	 * Get a OdfFileEntries from the manifest file (i.e. /META/manifest.xml")
-	 *
-	 * @return The manifest file entries will be returned.
-	 */
-	public Set<String> getFileEntries() {
-		return getManifestEntries().keySet();
-	}
-
-	/**
-	 *
-	 * Check existence of a file in the package.
-	 *
-	 * @param packagePath
-	 *            The relative package filePath within the ODF package
-	 * @return True if there is an entry and a file for the given filePath
-	 */
-	public boolean contains(String packagePath) {
-		packagePath = ensureValidPackagePath(packagePath);
-		return mPackageEntries.contains(packagePath);
-		/* TODO: return true for later added stuff */
-		// return (mPackageEntries.contains(packagePath) &&
-		// (mTempFiles.get(packagePath) != null ||
-		// mContentStreams.get(packagePath)!=null) && getFileEntry(packagePath)
-		// != null);
-	}
-
-	/**
-	 * Save the package to given filePath.
-	 *
-	 * @param odfPath
-	 *            - the path to the ODF package destination
-	 * @throws java.lang.Exception
-	 *             - if the package could not be saved
-	 */
-	public void save(String odfPath) throws Exception {
-		File f = new File(odfPath);
-		save(f);
-	}
-
-	/**
-	 * Save package to a given File. After saving it is still necessary to close
-	 * the package to have again full access about the file.
-	 *
-	 * @param odfFile
-	 *            - the File to save the ODF package to
-	 * @throws java.lang.Exception
-	 *             - if the package could not be saved
-	 */
-	public void save(File odfFile) throws Exception {
-		String baseURI = odfFile.getCanonicalFile().toURI().toString();
-		if (File.separatorChar == '\\')
-			baseURI = baseURI.replaceAll("\\\\", SLASH);
-		if (baseURI.equals(mBaseURI))
-			/* save to the same file: cache everything first */
-			// TODO: maybe it's better to write to a new file and copy that
-			// to the original one - would be less memory footprint
-			cacheContent();
-		FileOutputStream fos = new FileOutputStream(odfFile);
-		save(fos, baseURI);
-	}
-
-	public void save(OutputStream odfStream) throws Exception {
-		save(odfStream, null);
-	}
-
-	/**
-	 * Save an ODF document to the OutputStream.
-	 *
-	 * @param odfStream
-	 *            - the OutputStream to insert content to
-	 * @param baseURI
-	 *            - a URI for the package to be stored
-	 * @throws java.lang.Exception
-	 *             - if the package could not be saved
-	 */
-	private void save(OutputStream odfStream, String baseURI) throws Exception {
-		mBaseURI = baseURI;
-
-		OdfFileEntry rootEntry = getManifestEntries().get(SLASH);
-		if (rootEntry == null) {
-			rootEntry = new OdfFileEntry(SLASH, mMediaType);
-			mManifestList.add(0, rootEntry.getPath());
-		} else
-			rootEntry.setMediaType(mMediaType);
-
-		ZipOutputStream zos = new ZipOutputStream(odfStream);
-		long modTime = (new java.util.Date()).getTime();
-
-		/*
-		 * move manifest to first place to ensure it is written first into the
-		 * package zip file
-		 */
-		if (mPackageEntries.contains(OdfFile.MEDIA_TYPE.getPath())) {
-			mPackageEntries.remove(OdfFile.MEDIA_TYPE.getPath());
-			mPackageEntries.add(0, OdfFile.MEDIA_TYPE.getPath());
-		}
-
-		Iterator<String> it = mPackageEntries.iterator();
-		while (it.hasNext()) {
-			String key = it.next();
-			byte[] data = getBytes(key);
-
-			ZipEntry ze = mZipEntries.get(key);
-			if (ze == null)
-				ze = new ZipEntry(key);
-			ze.setTime(modTime);
-			ze.setMethod(isFileCompressed(key) ? DEFLATED : STORED);
-
-			CRC32 crc = new CRC32();
-			if (data != null) {
-				crc.update(data);
-				ze.setSize(data.length);
-			} else {
-				ze.setMethod(STORED);
-				ze.setSize(0);
-			}
-			ze.setCrc(crc.getValue());
-			ze.setCompressedSize(-1);
-			zos.putNextEntry(ze);
-			if (data != null)
-				zos.write(data, 0, data.length);
-			zos.closeEntry();
-
-			mZipEntries.put(key, ze);
-		}
-		zos.close();
-		odfStream.flush();
-	}
-
-	/**
-	 * if the file is to be compressed,return true
-	 *
-	 * @param key
-	 *            --file name
-	 * @return false if the file is not to be compressed
-	 */
-	private boolean isFileCompressed(String key) {
-		if (key.equals(OdfPackage.OdfFile.MEDIA_TYPE.getPath()))
-			return false;
-		boolean result = true;
-		if (key.lastIndexOf(".") > 0) {
-			String endWith = key.substring(key.lastIndexOf(".") + 1,
-					key.length());
-			if (mCompressedFileTypes.contains(endWith.toLowerCase()))
-				result = false;
-		}
-		return result;
-	}
-
-	/**
-	 * If this file is saved to itself, we have to cache it. It is not possible
-	 * to read and write from the same zip file at the same time, so the content
-	 * must be read and stored in memory.
-	 */
-	private void cacheContent() throws Exception {
-		// read all entries
-		getManifestEntries();
-		Iterator<String> entries = mZipEntries.keySet().iterator();
-		while (entries.hasNext()) {
-			// open all entries once so the data is cached
-			ZipEntry nextElement = mZipEntries.get(entries.next());
-			String entryPath = nextElement.getName();
-			getBytes(entryPath);
-		}
-	}
-
-	/**
-	 * Close the OdfPackage after it is no longer needed. Even after saving it
-	 * is still necessary to close the package to have again full access about
-	 * the file. Closing the OdfPackage will release all temporary created data.
-	 * Do this as the last action to free resources. Closing an already closed
-	 * document has no effect.
-	 */
-	@Override
-	public void close() {
-		if (mTempDir != null)
-			TempDir.deleteTempOdfDirectory(mTempDir);
-		try {
-			if (mZipFile != null)
-				mZipFile.close();
-		} catch (IOException ex) {
-			// log exception and continue
-			Logger.getLogger(OdfPackage.class.getName()).log(INFO, null, ex);
-		}
-		// release all stuff - this class is impossible to use afterwards
-		mZipFile = null;
-		mTempDirParent = null;
-		mTempDir = null;
-		mMediaType = null;
-		mPackageEntries = null;
-		mZipEntries = null;
-		mContentDoms = null;
-		mContentStreams = null;
-		mTempFiles = null;
-		mManifestList = null;
-		mManifestEntries = null;
-		mBaseURI = null;
-		mResolver = null;
-	}
-
-	/**
-	 * Data was updated, update mZipEntry and OdfFileEntry as well
-	 */
-	private void entryUpdate(String packagePath) throws Exception,
-			SAXException, TransformerConfigurationException,
-			TransformerException, ParserConfigurationException {
-
-		byte[] data = getBytes(packagePath);
-		int size = (data == null ? 0 : data.length);
-		OdfFileEntry fileEntry = getManifestEntries().get(packagePath);
-		ZipEntry zipEntry = mZipEntries.get(packagePath);
-
-		if (fileEntry != null) {
-			// if (XML_MEDIA_TYPE.equals(fileEntry.getMediaType())) {
-			// fileEntry.setSize(-1);
-			// } else {
-			fileEntry.setSize(size);
-			// }
-		}
-		if (zipEntry == null)
-			return;
-		zipEntry.setSize(size);
-		CRC32 crc = new CRC32();
-		if ((data != null) && size > 0)
-			crc.update(data);
-		zipEntry.setCrc(crc.getValue());
-		zipEntry.setCompressedSize(-1);
-		long modTime = (new java.util.Date()).getTime();
-		zipEntry.setTime(modTime);
-	}
-
-	/**
-	 * Parse the Manifest file
-	 */
-	void parseManifest() throws Exception {
-		InputStream is = getInputStream(OdfPackage.OdfFile.MANIFEST.packagePath);
-		if (is == null) {
-			mManifestList = null;
-			mManifestEntries = null;
-			return;
-		}
-
-		mManifestList = new LinkedList<>();
-
-		SAXParserFactory factory = SAXParserFactory.newInstance();
-		factory.setNamespaceAware(true);
-		factory.setValidating(false);
-		try {
-			factory.setFeature(
-					"http://apache.org/xml/features/nonvalidating/load-external-dtd",
-					false);
-		} catch (Exception ex) {
-			mLog.log(Level.SEVERE, null, ex);
-		}
-
-		SAXParser parser = factory.newSAXParser();
-		XMLReader xmlReader = parser.getXMLReader();
-		// More details at http://xerces.apache.org/xerces2-j/features.html#namespaces
-		xmlReader.setFeature("http://xml.org/sax/features/namespaces", true);
-		// More details at http://xerces.apache.org/xerces2-j/features.html#namespace-prefixes
-		xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes",
-				true);
-		try {
-			// More details at http://xerces.apache.org/xerces2-j/features.html#xmlns-uris
-			xmlReader.setFeature("http://xml.org/sax/features/xmlns-uris", true);
-		} catch (SAXException ex) {
-			mLog.log(Level.FINE, "Can't set XML reader feature xmlns-uris", ex);
-		}
-
-		String uri = mBaseURI + OdfPackage.OdfFile.MANIFEST.packagePath;
-		xmlReader.setEntityResolver(getEntityResolver());
-		xmlReader.setContentHandler(new ManifestContentHandler());
-
-		InputSource ins = new InputSource(is);
-		ins.setSystemId(uri);
-
-		xmlReader.parse(ins);
-
-		mContentStreams.remove(OdfPackage.OdfFile.MANIFEST.packagePath);
-		entryUpdate(OdfPackage.OdfFile.MANIFEST.packagePath);
-	}
-
-	/**
-	 * Checks if packagePath is not null nor empty and not an external reference
-	 */
-	private String ensureValidPackagePath(String packagePath) {
-		if (packagePath == null) {
-			String errMsg = "The packagePath given by parameter is NULL!";
-			mLog.severe(errMsg);
-			throw new IllegalArgumentException(errMsg);
-		}
-		if (packagePath.equals(EMPTY_STRING)) {
-			String errMsg = "The packagePath given by parameter is an empty string!";
-			mLog.severe(errMsg);
-			throw new IllegalArgumentException(errMsg);
-		}
-
-		if (packagePath.indexOf('\\') != -1)
-			packagePath = packagePath.replace('\\', '/');
-		if (isExternalReference(packagePath)) {
-			String errMsg = "The packagePath given by parameter '"
-					+ packagePath
-					+ "' is not an internal ODF package path!";
-			mLog.severe(errMsg);
-			throw new IllegalArgumentException(errMsg);
-		}
-		return packagePath;
-	}
-
-	/**
-	 * add a directory to the OdfPackage
-	 */
-	private void addDirectory(String packagePath) throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-
-		if ((packagePath.length() < 1)
-				|| (packagePath.charAt(packagePath.length() - 1) != '/'))
-			packagePath = packagePath + SLASH;
-		insert((byte[]) null, packagePath, null);
-	}
-
-	/**
-	 * Insert DOM tree into OdfPackage. An existing file will be replaced.
-	 *
-	 * @param fileDOM
-	 *            - XML DOM tree to be inserted as file
-	 * @param packagePath
-	 *            - relative filePath where the DOM tree should be inserted as
-	 *            XML file
-	 * @param mediaType
-	 *            - media type of stream. Set to null if unknown
-	 * @throws java.lang.Exception
-	 *             when the DOM tree could not be inserted
-	 */
-	public void insert(Document fileDOM, String packagePath, String mediaType)
-			throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-
-		try {
-			if (mManifestEntries == null)
-				parseManifest();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-
-		if (mediaType == null)
-			mediaType = XML_MEDIA_TYPE;
-		String d = EMPTY_STRING;
-		StringTokenizer tok = new StringTokenizer(packagePath, SLASH);
-		while (tok.hasMoreTokens()) {
-			String s = tok.nextToken();
-			if (EMPTY_STRING.equals(d))
-				d = s + SLASH;
-			else
-				d = d + s + SLASH;
-			if (tok.hasMoreTokens() && !mPackageEntries.contains(d))
-				addDirectory(d);
-		}
-
-		mContentStreams.remove(packagePath);
-		if (fileDOM == null)
-			mContentDoms.remove(packagePath);
-		else
-			mContentDoms.put(packagePath, fileDOM);
-
-		if (!mPackageEntries.contains(packagePath))
-			mPackageEntries.add(packagePath);
-
-		try {
-			if (!OdfPackage.OdfFile.MANIFEST.packagePath.equals(packagePath)) {
-				if (mManifestEntries != null
-						&& mManifestEntries.get(packagePath) == null) {
-					OdfFileEntry fileEntry = new OdfFileEntry(packagePath,
-							mediaType);
-					mManifestEntries.put(packagePath, fileEntry);
-					mManifestList.add(packagePath);
-				}
-			} else
-				parseManifest();
-			// try to get the package from our cache
-			ZipEntry ze = mZipEntries.get(packagePath);
-			if (ze == null) {
-				ze = new ZipEntry(packagePath);
-				ze.setMethod(DEFLATED);
-				mZipEntries.put(packagePath, ze);
-			}
-			if (!isFileCompressed(packagePath))
-				ze.setMethod(STORED);
-
-			entryUpdate(packagePath);
-		} catch (SAXException se) {
-			throw new Exception("SAXException:" + se.getMessage());
-		} catch (ParserConfigurationException pce) {
-			throw new Exception("ParserConfigurationException:"
-					+ pce.getMessage());
-		} catch (TransformerConfigurationException tce) {
-			throw new Exception("TransformerConfigurationException:"
-					+ tce.getMessage());
-		} catch (TransformerException te) {
-			throw new Exception("TransformerException:" + te.getMessage());
-		}
-	}
-
-	/**
-	 * returns true if a DOM tree has been requested for given sub-content of
-	 * OdfPackage
-	 *
-	 * @param packagePath
-	 *            - a path inside the OdfPackage eg to a content.xml stream
-	 * @return - wether the package class internally has a DOM representation
-	 *         for the given path
-	 */
-	public boolean hasDom(String packagePath) {
-		return (mContentDoms.get(packagePath) != null);
-	}
-
-	/**
-	 * Gets org.w3c.dom.Document for XML file contained in package.
-	 *
-	 * @param packagePath
-	 *            - a path inside the OdfPackage eg to a content.xml stream
-	 * @return an org.w3c.dom.Document
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 * @throws Exception
-	 * @throws IllegalArgumentException
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 */
-	public Document getDom(String packagePath) throws SAXException,
-			ParserConfigurationException, Exception, IllegalArgumentException,
-			TransformerConfigurationException, TransformerException {
-		Document doc = mContentDoms.get(packagePath);
-		if (doc != null)
-			return doc;
-
-		InputStream is = getInputStream(packagePath);
-
-		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-		factory.setNamespaceAware(true);
-		factory.setValidating(false);
-
-		DocumentBuilder builder = factory.newDocumentBuilder();
-		builder.setEntityResolver(getEntityResolver());
-
-		String uri = getBaseURI() + packagePath;
-
-		// if (mErrorHandler != null) {
-		// builder.setErrorHandler(mErrorHandler);
-		// }
-
-		InputSource ins = new InputSource(is);
-		ins.setSystemId(uri);
-
-		doc = builder.parse(ins);
-
-		if (doc != null) {
-			mContentDoms.put(packagePath, doc);
-			// mContentStreams.remove(packagePath);
-		}
-		return doc;
-	}
-
-	/**
-	 * Inserts InputStream into an OdfPackage. An existing file will be
-	 * replaced.
-	 *
-	 * @param sourceURI
-	 *            - the source URI to the file to be inserted into the package.
-	 * @param mediaType
-	 *            - media type of stream. Set to null if unknown
-	 * @param packagePath
-	 *            - relative filePath where the tree should be inserted as XML
-	 *            file
-	 * @throws java.lang.Exception
-	 *             In case the file could not be saved
-	 */
-	public void insert(URI sourceURI, String packagePath, String mediaType)
-			throws Exception {
-		InputStream is = null;
-		if (sourceURI.isAbsolute())
-			// if the URI is absolute it can be converted to URL
-			is = sourceURI.toURL().openStream();
-		else {
-			// otherwise create a file class to open the stream
-			is = new FileInputStream(sourceURI.toString());
-			// TODO: error handling in this case! -> allow method insert(URI,
-			// ppath, mtype)?
-		}
-		insert(is, packagePath, mediaType);
-	}
-
-	/**
-	 * Inserts InputStream into an OdfPackage. An existing file will be
-	 * replaced.
-	 *
-	 * @param fileStream
-	 *            - the stream of the file to be inserted into the ODF package.
-	 * @param mediaType
-	 *            - media type of stream. Set to null if unknown
-	 * @param packagePath
-	 *            - relative filePath where the tree should be inserted as XML
-	 *            file
-	 * @throws java.lang.Exception
-	 *             In case the file could not be saved
-	 */
-	public void insert(InputStream fileStream, String packagePath,
-			String mediaType) throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-
-		if (fileStream == null) {
-			insert((byte[]) null, packagePath, mediaType);
-			return;
-		}
-
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		BufferedInputStream bis = new BufferedInputStream(fileStream);
-		StreamHelper.stream(bis, baos);
-		byte[] data = baos.toByteArray();
-		insert(data, packagePath, mediaType);
-		// image should not be stored in memory but on disc
-		if (!packagePath.endsWith(".xml")
-				&& !packagePath.equals(OdfPackage.OdfFile.MEDIA_TYPE.getPath())
-				&& mUseTempFile) {
-			// insertOutputStream to filesystem
-			File tempFile = new File(getTempDir(), packagePath);
-			File parent = tempFile.getParentFile();
-			parent.mkdirs();
-			try (OutputStream fos = new BufferedOutputStream(
-					new FileOutputStream(tempFile))) {
-				fos.write(data);
-			}
-			mTempFiles.put(packagePath, tempFile);
-			mContentStreams.remove(packagePath);
-		}
-	}
-
-	/**
-	 * Insert byte array into OdfPackage. An existing file will be replaced.
-	 *
-	 * @param fileBytes
-	 *            - data of the file stream to be stored in package
-	 * @param mediaType
-	 *            - media type of stream. Set to null if unknown
-	 * @param packagePath
-	 *            - relative filePath where the DOM tree should be inserted as
-	 *            XML file
-	 * @throws java.lang.Exception
-	 *             when the DOM tree could not be inserted
-	 */
-	public void insert(byte[] fileBytes, String packagePath, String mediaType)
-			throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-
-		String d = EMPTY_STRING;
-		// 2DO: Test tokenizer for whitespaces..
-		StringTokenizer tok = new StringTokenizer(packagePath, SLASH);
-		while (tok.hasMoreTokens()) {
-			String s = tok.nextToken();
-			d = (EMPTY_STRING.equals(d) ? s + SLASH : d + s + SLASH);
-			if (tok.hasMoreTokens() && !mPackageEntries.contains(d)) {
-				addDirectory(d);
-				/*
-				 * add manifest entry for folder if not already existing media
-				 * type for folder has to be set for embedded objects
-				 */
-				if (!OdfPackage.OdfFile.MANIFEST.packagePath.equals(d)
-						&& mediaType != null
-						&& getManifestEntries().get(d) == null) {
-					OdfFileEntry fileEntry = new OdfFileEntry(d, mediaType, -1);
-					getManifestEntries().put(d, fileEntry);
-					if (!mManifestList.contains(d))
-						mManifestList.add(d);
-				}
-			}
-		}
-		try {
-			if (OdfPackage.OdfFile.MEDIA_TYPE.getPath().equals(packagePath)) {
-				try {
-					setMediaType(new String(fileBytes, "UTF-8"));
-				} catch (UnsupportedEncodingException useEx) {
-					mLog.log(WARNING,
-							"ODF file could not be created as string!", useEx);
-				}
-				return;
-			}
-			if (fileBytes == null)
-				mContentStreams.remove(packagePath);
-			else
-				mContentStreams.put(packagePath, fileBytes);
-			if (!mPackageEntries.contains(packagePath))
-				mPackageEntries.add(packagePath);
-			if (!OdfPackage.OdfFile.MANIFEST.packagePath.equals(packagePath)) {
-				if (mediaType != null
-						&& getManifestEntries().get(packagePath) == null) {
-					OdfFileEntry fileEntry = new OdfFileEntry(packagePath,
-							mediaType);
-					getManifestEntries().put(packagePath, fileEntry);
-					if (!mManifestList.contains(packagePath))
-						mManifestList.add(packagePath);
-				}
-			} else
-				parseManifest();
-			ZipEntry ze = mZipEntries.get(packagePath);
-			if (ze != null) {
-				ze = new ZipEntry(packagePath);
-				ze.setMethod(DEFLATED);
-				mZipEntries.put(packagePath, ze);
-				// 2DO Svante: No dependency to layer above!
-				if (isFileCompressed(packagePath) == false)
-					ze.setMethod(STORED);
-			}
-			entryUpdate(packagePath);
-		} catch (SAXException se) {
-			throw new Exception("SAXException:" + se.getMessage());
-		} catch (ParserConfigurationException pce) {
-			throw new Exception("ParserConfigurationException:"
-					+ pce.getMessage());
-		} catch (TransformerConfigurationException tce) {
-			throw new Exception("TransformerConfigurationException:"
-					+ tce.getMessage());
-		} catch (TransformerException te) {
-			throw new Exception("TransformerException:" + te.getMessage());
-		}
-	}
-
-	@SuppressWarnings("unused")
-	private void insert(ZipEntry zipe, byte[] content) {
-		if (content != null) {
-			if (zipe.getName().equals(OdfPackage.OdfFile.MEDIA_TYPE.getPath())) {
-				try {
-					mMediaType = new String(content, 0, content.length, "UTF-8");
-				} catch (UnsupportedEncodingException ex) {
-					mLog.log(Level.SEVERE, null, ex);
-				}
-			} else
-				mContentStreams.put(zipe.getName(), content);
-		}
-		if (!mPackageEntries.contains(zipe.getName()))
-			mPackageEntries.add(zipe.getName());
-		mZipEntries.put(zipe.getName(), zipe);
-	}
-
-	@SuppressWarnings("unused")
-	private void insert(ZipEntry zipe, File file) {
-		if (file != null)
-			mTempFiles.put(zipe.getName(), file);
-		if (!mPackageEntries.contains(zipe.getName()))
-			mPackageEntries.add(zipe.getName());
-		mZipEntries.put(zipe.getName(), zipe);
-	}
-
-	public HashMap<String, OdfFileEntry> getManifestEntries() {
-		if (mManifestEntries == null)
-			try {
-				parseManifest();
-				if (mManifestEntries == null)
-					return null;
-			} catch (Exception e) {
-				throw new RuntimeException(e);
-			}
-		return mManifestEntries;
-	}
-
-	/**
-	 * Get Manifest as String NOTE: This functionality should better be moved to
-	 * a DOM based Manifest class
-	 *
-	 * @return the /META-INF/manifest.xml as a String
-	 */
-	public String getManifestAsString() {
-		StringBuilder buf = new StringBuilder();
-
-		buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-		buf.append("<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\">\n");
-
-		Iterator<String> it = mManifestList.iterator();
-		while (it.hasNext()) {
-			String key = it.next();
-			String s = null;
-			OdfFileEntry fileEntry = mManifestEntries.get(key);
-			if (fileEntry != null) {
-				buf.append(" <manifest:file-entry");
-				s = fileEntry.getMediaType();
-				if (s == null)
-					s = EMPTY_STRING;
-				buf.append(" manifest:media-type=\"");
-				buf.append(encodeXMLAttributes(s));
-				buf.append("\"");
-				s = fileEntry.getPath();
-
-				if (s == null)
-					s = EMPTY_STRING;
-				buf.append(" manifest:full-path=\"");
-				buf.append(encodeXMLAttributes(s));
-				buf.append("\"");
-				int i = fileEntry.getSize();
-				if (i > 0) {
-					buf.append(" manifest:size=\"");
-					buf.append(i);
-					buf.append("\"");
-				}
-				if (fileEntry.getVersion() != null) { 
-				    buf.append(" manifest:version=\"");
-	                buf.append(encodeXMLAttributes(fileEntry.getVersion()));
-	                buf.append("\"");
-				}
-				
-				EncryptionData enc = fileEntry.getEncryptionData();
-
-				if (enc != null) {
-					buf.append(">\n");
-					buf.append("  <manifest:encryption-data>\n");
-					Algorithm alg = enc.getAlgorithm();
-					if (alg != null) {
-						buf.append("   <manifest:algorithm");
-						s = alg.getName();
-						if (s == null)
-							s = EMPTY_STRING;
-						buf.append(" manifest:algorithm-name=\"");
-						buf.append(encodeXMLAttributes(s));
-						buf.append("\"");
-						s = alg.getInitializationVector();
-						if (s == null)
-							s = EMPTY_STRING;
-						buf.append(" manifest:initialization-vector=\"");
-						buf.append(encodeXMLAttributes(s));
-						buf.append("\"/>\n");
-					}
-					KeyDerivation keyDerivation = enc.getKeyDerivation();
-					if (keyDerivation != null) {
-						buf.append("   <manifest:key-derivation");
-						s = keyDerivation.getName();
-						if (s == null)
-							s = EMPTY_STRING;
-						buf.append(" manifest:key-derivation-name=\"");
-						buf.append(encodeXMLAttributes(s));
-						buf.append("\"");
-						s = keyDerivation.getSalt();
-						if (s == null)
-							s = EMPTY_STRING;
-						buf.append(" manifest:salt=\"");
-						buf.append(encodeXMLAttributes(s));
-						buf.append("\"");
-
-						buf.append(" manifest:iteration-count=\"");
-						buf.append(keyDerivation.getIterationCount());
-						buf.append("\"/>\n");
-					}
-					buf.append("  </manifest:encryption-data>\n");
-					buf.append(" </manifest:file-entry>\n");
-				} else
-					buf.append("/>\n");
-			}
-		}
-		buf.append("</manifest:manifest>");
-
-		return buf.toString();
-	}
-
-	/**
-	 * Get package (sub-) content as byte array
-	 *
-	 * @param packagePath
-	 *            relative filePath to the package content
-	 * @return the unzipped package content as byte array
-	 * @throws java.lang.Exception
-	 */
-	public byte[] getBytes(String packagePath) throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-		byte[] data = null;
-
-		if (packagePath == null || packagePath.equals(EMPTY_STRING)) {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			save(baos, mBaseURI);
-			return baos.toByteArray();
-		}
-		if (packagePath.equals(OdfPackage.OdfFile.MEDIA_TYPE.getPath())) {
-			if (mMediaType == null)
-				return null;
-			try {
-				data = mMediaType.getBytes("UTF-8");
-			} catch (UnsupportedEncodingException use) {
-				mLog.log(Level.SEVERE, null, use);
-				return null;
-			}
-		} else if (mPackageEntries.contains(packagePath)
-				&& mContentDoms.get(packagePath) != null) {
-			Document doc = mContentDoms.get(packagePath);
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-			// DOMXSImplementationSourceImpl dis = new
-			// org.apache.xerces.dom.DOMXSImplementationSourceImpl();
-			// DOMImplementationLS impl = (DOMImplementationLS)
-			// dis.getDOMImplementation("LS");
-			DOMImplementationLS impl = (DOMImplementationLS) DOMImplementationRegistry
-					.newInstance().getDOMImplementation("LS");
-			LSSerializer writer = impl.createLSSerializer();
-
-			LSOutput output = impl.createLSOutput();
-			output.setByteStream(baos);
-
-			writer.write(doc, output);
-			data = baos.toByteArray();
-		} else if (mPackageEntries.contains(packagePath)
-				&& mTempFiles.get(packagePath) != null) {
-			ByteArrayOutputStream os = new ByteArrayOutputStream();
-			try (InputStream is = new BufferedInputStream(new FileInputStream(
-					mTempFiles.get(packagePath)))) {
-				StreamHelper.stream(is, os);
-			}
-			os.close();
-			data = os.toByteArray();
-		} else if (mPackageEntries.contains(packagePath)
-				&& mContentStreams.get(packagePath) != null)
-			data = mContentStreams.get(packagePath);
-		else if (packagePath.equals(OdfPackage.OdfFile.MANIFEST.packagePath)) {
-			if (mManifestEntries == null)
-				// manifest was not present
-				return null;
-			String s = getManifestAsString();
-			if (s == null)
-				return null;
-			data = s.getBytes("UTF-8");
-		}
-
-		if (data == null) { // not yet stored data; retrieve it.
-			ZipEntry entry = mZipEntries.get(packagePath);
-			if (entry != null) {
-				InputStream inputStream = mZipFile.getInputStream(entry);
-				if (inputStream != null) {
-					ByteArrayOutputStream out = new ByteArrayOutputStream();
-					StreamHelper.stream(inputStream, out);
-					data = out.toByteArray();
-					// store for further usage; do not care about manifest: that
-					// is handled exclusively
-					mContentStreams.put(packagePath, data);
-					if (!mPackageEntries.contains(packagePath))
-						mPackageEntries.add(packagePath);
-				}
-			}
-		}
-		return data;
-	}
-
-	/**
-	 * Get subcontent as InputStream
-	 *
-	 * @param packagePath
-	 *            of the desired stream.
-	 * @return Inputstream of the ODF file within the package for the given
-	 *         path.
-	 * @throws Exception
-	 */
-	public InputStream getInputStream(String packagePath) throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-
-		if (packagePath.equals(OdfPackage.OdfFile.MANIFEST.packagePath)
-				&& (mManifestEntries == null)) {
-			ZipEntry entry = null;
-			if ((entry = mZipEntries.get(packagePath)) != null)
-				return mZipFile.getInputStream(entry);
-		}
-
-		if (mPackageEntries.contains(packagePath)
-				&& mTempFiles.get(packagePath) != null)
-			return new BufferedInputStream(new FileInputStream(
-					mTempFiles.get(packagePath)));
-
-		/*
-		 * else we always cache here and return a ByteArrayInputStream because
-		 * if we would return ZipFile getInputStream(entry) we would not be able
-		 * to read 2 Entries at the same time. This is a limitation of the
-		 * ZipFile class.
-		 * 
-		 * As it would be quite a common thing to read the content.xml and the
-		 * styles.xml simultaneously when using XSLT on OdfPackages we want to
-		 * circumvent this limitation
-		 */
-
-		byte[] data = getBytes(packagePath);
-		if (data != null && data.length != 0)
-			return new ByteArrayInputStream(data);
-		return null;
-	}
-
-	/**
-	 * Gets the InputStream containing whole OdfPackage.
-	 *
-	 * @return the ODF package as input stream
-	 * @throws java.lang.Exception
-	 *             - if the package could not be read
-	 */
-	public InputStream getInputStream() throws Exception {
-		final PipedOutputStream os = new PipedOutputStream();
-		final PipedInputStream is = new PipedInputStream();
-
-		is.connect(os);
-
-		Thread thread1 = new Thread() {
-			@Override
-			public void run() {
-				try {
-					save(os, mBaseURI);
-				} catch (Exception e) {
-				}
-			}
-		};
-
-		Thread thread2 = new Thread() {
-			@Override
-			public void run() {
-				try {
-					BufferedInputStream bis = new BufferedInputStream(is,
-							PAGE_SIZE);
-					BufferedOutputStream bos = new BufferedOutputStream(os,
-							PAGE_SIZE);
-					StreamHelper.stream(bis, bos);
-					is.close();
-					os.close();
-				} catch (Exception ie) {
-				}
-			}
-		};
-
-		thread1.start();
-		thread2.start();
-
-		return is;
-	}
-
-	/**
-	 * Insert the OutputStream for into OdfPackage. An existing file will be
-	 * replaced.
-	 *
-	 * @param packagePath
-	 *            - relative filePath where the DOM tree should be inserted as
-	 *            XML file
-	 * @return outputstream for the data of the file to be stored in package
-	 * @throws java.lang.Exception
-	 *             when the DOM tree could not be inserted
-	 */
-	public OutputStream insertOutputStream(String packagePath) throws Exception {
-		return insertOutputStream(packagePath, null);
-	}
-
-	/**
-	 * Insert the OutputStream - to be filled after method - when stream is
-	 * closed into OdfPackage. An existing file will be replaced.
-	 *
-	 * @param packagePath
-	 *            - relative filePath where the DOM tree should be inserted as
-	 *            XML file
-	 * @param mediaType
-	 *            - media type of stream
-	 * @return outputstream for the data of the file to be stored in package
-	 * @throws java.lang.Exception
-	 *             when the DOM tree could not be inserted
-	 */
-	public OutputStream insertOutputStream(String packagePath, String mediaType)
-			throws Exception {
-		packagePath = ensureValidPackagePath(packagePath);
-		final String fPath = packagePath;
-		final OdfFileEntry fFileEntry = getFileEntry(packagePath);
-		final String fMediaType = mediaType;
-
-		ByteArrayOutputStream baos = new ByteArrayOutputStream() {
-			@Override
-			public void close() {
-				try {
-					byte[] data = this.toByteArray();
-					if (fMediaType == null || fMediaType.length() == 0)
-						insert(data, fPath, fFileEntry == null ? null
-								: fFileEntry.getMediaType());
-					else
-						insert(data, fPath, fMediaType);
-					super.close();
-				} catch (Exception ex) {
-					mLog.log(Level.SEVERE, null, ex);
-				}
-			}
-		};
-		return baos;
-	}
-
-	// /**
-	// * get an InputStream with a specific filePath from the package.
-	// *
-	// * @throws IllegalArgumentException if sub-content is not XML
-	// */
-	// public InputStream getInputStream(String filePath) throws Exception {
-	// return mZipFile.getInputStream(mZipFile.getEntry(filePath));
-	// // OdfPackageStream stream = new OdfPackageStream(this, filePath);
-	// // return stream;
-	// }
-
-	public void remove(String packagePath) {
-		HashMap<String, OdfFileEntry> manifestEntries = getManifestEntries();
-		if (mManifestList != null && mManifestList.contains(packagePath))
-			mManifestList.remove(packagePath);
-		if (manifestEntries != null && manifestEntries.containsKey(packagePath))
-			manifestEntries.remove(packagePath);
-		if (mZipEntries != null && mZipEntries.containsKey(packagePath))
-			mZipEntries.remove(packagePath);
-		if (mTempFiles != null && mTempFiles.containsKey(packagePath))
-			mTempFiles.remove(packagePath).delete();
-		if (mPackageEntries != null && mPackageEntries.contains(packagePath))
-			mPackageEntries.remove(packagePath);
-	}
-
-	/**
-	 * Checks if the given reference is a reference, which points outside the
-	 * ODF package
-	 *
-	 * @param fileRef
-	 *            the file reference to be checked
-	 * @return true if the reference is an package external reference
-	 */
-	public static boolean isExternalReference(String fileRef) {
-		// if the fileReference is...
-		return fileRef.startsWith(TWO_DOTS) // an external relative filePath
-				|| fileRef.startsWith(SLASH) // or absolute filePath
-				|| fileRef.contains(COLON); // or absolute IRI
-	}
-
-	/**
-	 * Get Temp Directory. Create new temp directory on demand and register it
-	 * for removal by garbage collector
-	 */
-	private File getTempDir() throws Exception {
-		if (mTempDir == null) {
-			mTempDir = newTempOdfDirectory("ODF", mTempDirParent);
-			mFinalize = new OdfFinalizablePackage(mTempDir);
-		}
-		return mTempDir;
-	}
-
-	/**
-	 * Encoded XML Attributes
-	 */
-	private String encodeXMLAttributes(String s) {
-		return s.replaceAll("\"", "&quot;").replaceAll("'", "&apos;");
-	}
-
-	private class ManifestContentHandler implements ContentHandler {
-		private OdfFileEntry fileEntry;
-		private EncryptionData encryptionData;
-
-		/**
-		 * Receive an object for locating the origin of SAX document events.
-		 */
-		@Override
-		public void setDocumentLocator(Locator locator) {
-		}
-
-		/**
-		 * Receive notification of the beginning of a document.
-		 */
-		@Override
-		public void startDocument() throws SAXException {
-			mManifestList = new LinkedList<>();
-			mManifestEntries = new HashMap<>();
-		}
-
-		/**
-		 * Receive notification of the end of a document.
-		 */
-		@Override
-		public void endDocument() throws SAXException {
-		}
-
-		/**
-		 * Begin the scope of a prefix-URI Namespace mapping.
-		 */
-		@Override
-		public void startPrefixMapping(String prefix, String uri)
-				throws SAXException {
-		}
-
-		/**
-		 * End the scope of a prefix-URI mapping.
-		 */
-		@Override
-		public void endPrefixMapping(String prefix) throws SAXException {
-		}
-
-		/**
-		 * Receive notification of the beginning of an element.
-		 */
-		@Override
-		public void startElement(String namespaceURI, String localName,
-				String qName, Attributes atts) throws SAXException {
-			switch (localName) {
-			case "file-entry":
-				fileEntry = new OdfFileEntry();
-				fileEntry.setPath(atts.getValue("manifest:full-path"));
-				fileEntry.setMediaType(atts.getValue("manifest:media-type"));
-				try {
-					if (atts.getValue("manifest:size") != null)
-						fileEntry.setSize(Integer.parseInt(atts
-								.getValue("manifest:size")));
-				} catch (NumberFormatException nfe) {
-					throw new SAXException("not a number: "
-							+ atts.getValue("manifest:size"));
-				}
-				fileEntry.setVersion(atts.getValue("manifest:version"));
-				break;
-			case "encryption-data":
-				encryptionData = new EncryptionData();
-				if (fileEntry != null) {
-					encryptionData.setChecksumType(atts
-							.getValue("manifest:checksum-type"));
-					encryptionData.setChecksum(atts
-							.getValue("manifest:checksum"));
-					fileEntry.setEncryptionData(encryptionData);
-				}
-				break;
-			case "algorithm":
-				Algorithm algorithm = new Algorithm();
-				algorithm.setName(atts.getValue("manifest:algorithm-name"));
-				algorithm.setInitializationVector(atts
-						.getValue("manifest:initialization-vector"));
-				if (encryptionData != null)
-					encryptionData.setAlgorithm(algorithm);
-				break;
-			case "key-derivation":
-				KeyDerivation keyDerivation = new KeyDerivation();
-				keyDerivation.setName(atts
-						.getValue("manifest:key-derivation-name"));
-				keyDerivation.setSalt(atts.getValue("manifest:salt"));
-				try {
-					if (atts.getValue("manifest:iteration-count") != null)
-						keyDerivation.setIterationCount(Integer.parseInt(atts
-								.getValue("manifest:iteration-count")));
-				} catch (NumberFormatException nfe) {
-					throw new SAXException("not a number: "
-							+ atts.getValue("manifest:iteration-count"));
-				}
-				if (encryptionData != null)
-					encryptionData.setKeyDerivation(keyDerivation);
-				break;
-			}
-		}
-
-		/**
-		 * Receive notification of the end of an element.
-		 */
-		@Override
-		public void endElement(String namespaceURI, String localName,
-				String qName) throws SAXException {
-			if (localName.equals("file-entry")) {
-				if (fileEntry.getPath() != null)
-					getManifestEntries().put(fileEntry.getPath(),
-							fileEntry);
-				mManifestList.add(fileEntry.getPath());
-				fileEntry = null;
-			} else if (localName.equals("encryption-data"))
-				encryptionData = null;
-		}
-
-		/**
-		 * Receive notification of character data.
-		 */
-		@Override
-		public void characters(char[] ch, int start, int length)
-				throws SAXException {
-		}
-
-		/**
-		 * Receive notification of ignorable whitespace in element content.
-		 */
-		@Override
-		public void ignorableWhitespace(char[] ch, int start, int length)
-				throws SAXException {
-		}
-
-		/**
-		 * Receive notification of a processing instruction.
-		 */
-		@Override
-		public void processingInstruction(String target, String data)
-				throws SAXException {
-		}
-
-		/**
-		 * Receive notification of a skipped entity.
-		 */
-		@Override
-		public void skippedEntity(String name) throws SAXException {
-		}
-	}
-
-	/**
-	 * resolve external entities
-	 */
-	private class Resolver implements EntityResolver, URIResolver {
-		/**
-		 * Resolver constructor.
-		 */
-		public Resolver() {
-		}
-
-		/**
-		 * Allow the application to resolve external entities.
-		 *
-		 * The Parser will call this method before opening any external entity
-		 * except the top-level document entity (including the external DTD
-		 * subset, external entities referenced within the DTD, and external
-		 * entities referenced within the document element): the application may
-		 * request that the parser resolve the entity itself, that it use an
-		 * alternative URI, or that it use an entirely different input source.
-		 */
-		@Override
-		public InputSource resolveEntity(String publicId, String systemId)
-				throws SAXException {
-			// This deactivates the attempt to loadPackage the Math DTD
-			if (publicId != null
-					&& publicId
-							.startsWith("-//OpenOffice.org//DTD Modified W3C MathML"))
-				return new InputSource(new ByteArrayInputStream(
-						"<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
-
-			if (systemId == null)
-				return null;
-
-			if ((mBaseURI != null) && systemId.startsWith(mBaseURI)) {
-				if (systemId.equals(mBaseURI))
-					try {
-						InputStream in = getInputStream();
-						InputSource ins = new InputSource(in);
-						ins.setSystemId(systemId);
-						return ins;
-					} catch (Exception e) {
-						throw new SAXException(e);
-					}
-				else if (systemId.length() > mBaseURI.length() + 1)
-					try (InputStream in = getInputStream(systemId
-							.substring(mBaseURI.length() + 1))) {
-						InputSource ins = new InputSource(in);
-						ins.setSystemId(systemId);
-						return ins;
-					} catch (Exception ex) {
-						mLog.log(Level.SEVERE, null, ex);
-					}
-			} else if (systemId.startsWith("resource:/")) {
-				int i = systemId.indexOf('/');
-				if ((i > 0) && systemId.length() > i + 1) {
-					String res = systemId.substring(i + 1);
-					ClassLoader cl = OdfPackage.class.getClassLoader();
-					InputStream in = cl.getResourceAsStream(res);
-					if (in != null) {
-						InputSource ins = new InputSource(in);
-						ins.setSystemId(systemId);
-						return ins;
-					}
-				}
-			} else if (systemId.startsWith("jar:"))
-				try {
-					URL url = new URL(systemId);
-					JarURLConnection jarConn = (JarURLConnection) url
-							.openConnection();
-					InputSource ins = new InputSource(jarConn.getInputStream());
-					ins.setSystemId(systemId);
-					return ins;
-				} catch (IOException ex) {
-					mLog.log(Level.SEVERE, null, ex);
-				}
-			return null;
-		}
-
-		@Override
-		public Source resolve(String href, String base)
-				throws TransformerException {
-			try {
-				URI uri;
-				if (base != null) {
-					URI baseuri = new URI(base);
-					uri = baseuri.resolve(href);
-				} else
-					uri = new URI(href);
-
-				InputSource ins;
-				try {
-					ins = resolveEntity(null, uri.toString());
-					if (ins == null)
-						return null;
-				} catch (Exception e) {
-					throw new TransformerException(e);
-				}
-
-				InputStream in = ins.getByteStream();
-				StreamSource src = new StreamSource(in);
-				src.setSystemId(uri.toString());
-				return src;
-			} catch (URISyntaxException use) {
-				return null;
-			}
-		}
-	}
-
-	/**
-	 * Get EntityResolver to be used in XML Parsers which can resolve content
-	 * inside the OdfPackage
-	 *
-	 * @return a SAX EntityResolver
-	 */
-	public EntityResolver getEntityResolver() {
-		if (mResolver == null)
-			mResolver = new Resolver();
-		return mResolver;
-	}
-
-	/**
-	 * Get URIResolver to be used in XSL Transformations which can resolve
-	 * content inside the OdfPackage
-	 *
-	 * @return a TraX Resolver
-	 */
-	public URIResolver getURIResolver() {
-		if (mResolver == null)
-			mResolver = new Resolver();
-		return mResolver;
-	}
-
-	private static String getBaseURIFromFile(File file) throws Exception {
-		String baseURI = file.getCanonicalFile().toURI().toString();
-		if (File.separatorChar == '\\')
-			baseURI = baseURI.replaceAll("\\\\", SLASH);
-		return baseURI;
-	}
-
-	private class ZipHelper implements AutoCloseable {
-		private ZipFile mZipFile = null;
-		private byte[] mZipBuffer = null;
-
-		public ZipHelper(ZipFile zipFile) {
-			mZipFile = zipFile;
-			mZipBuffer = null;
-		}
-
-		public ZipHelper(byte[] buffer) {
-			mZipBuffer = buffer;
-			mZipFile = null;
-		}
-
-		public Enumeration<? extends ZipEntry> entries() throws IOException {
-			if (mZipFile != null)
-				return mZipFile.entries();
-
-			Vector<ZipEntry> list = new Vector<>();
-			ZipInputStream inputStream = new ZipInputStream(
-					new ByteArrayInputStream(mZipBuffer));
-			ZipEntry zipEntry = inputStream.getNextEntry();
-			while (zipEntry != null) {
-				list.add(zipEntry);
-				zipEntry = inputStream.getNextEntry();
-			}
-			inputStream.close();
-			return list.elements();
-		}
-
-		@SuppressWarnings("resource")
-		public InputStream getInputStream(ZipEntry entry) throws IOException {
-			if (mZipFile != null)
-				return mZipFile.getInputStream(entry);
-
-			ZipInputStream inputStream = new ZipInputStream(
-					new ByteArrayInputStream(mZipBuffer));
-			ZipEntry zipEntry = inputStream.getNextEntry();
-			while (zipEntry != null) {
-				if (zipEntry.getName().equalsIgnoreCase(entry.getName()))
-					return readAsInputStream(inputStream);
-				zipEntry = inputStream.getNextEntry();
-			}
-			return null;
-		}
-
-		private InputStream readAsInputStream(ZipInputStream inputStream)
-				throws IOException {
-			ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-			byte[] buf = new byte[4096];
-			while (true) {
-				int r = inputStream.read(buf);
-				if (r < 0)
-					break;
-				outputStream.write(buf, 0, r);
-			}
-			inputStream.close();
-			return new ByteArrayInputStream(outputStream.toByteArray());
-		}
-
-		@Override
-		public void close() throws IOException {
-			if (mZipFile != null)
-				mZipFile.close();
-			else
-				mZipBuffer = null;
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackageStream.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackageStream.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackageStream.java
deleted file mode 100644
index 5b25929..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackageStream.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- * 
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- * 
- * Use is subject to license terms.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * 
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.OdfFileEntry;
-
-
-/**
- * OdfPackageStream is a representation of a stream that is part of an ODF file.
- * If a stream is written to through the output stream, this will be reflected
- * when the output stream is closed
- */
-class OdfPackageStream extends StreamSource {
-	private OdfPackage pkg;
-	private String name;
-	private InputStream inputStream;
-	private OutputStream outputStream = null;
-	private boolean bClosed;
-
-	public OdfPackageStream(OdfPackage pkg, String name) throws Exception {
-		super(pkg.getInputStream(name), pkg.getBaseURI() + "/" + name);
-		this.pkg = pkg;
-		this.name = name;
-	}
-
-	public boolean isOutput() {
-		// denote that the output stream has been requested
-		return outputStream != null;
-	}
-
-	public OutputStream getOutputStream() throws Exception {
-		if (bClosed)
-			throw new IOException("stream already closed");
-		outputStream = pkg.insertOutputStream(name);
-		return outputStream;
-	}
-
-	public OdfFileEntry geFileEntry() {
-		return pkg.getFileEntry(name);
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public OdfPackage getPackage() {
-		return pkg;
-	}
-
-	void close() throws IOException {
-		bClosed = true;
-		inputStream.close();
-		outputStream.close();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfXMLHelper.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfXMLHelper.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfXMLHelper.java
deleted file mode 100644
index 9d4e152..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfXMLHelper.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- *
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- *
- * Use is subject to license terms.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-public class OdfXMLHelper {
-	/**
-	 * create an XMLReader
-	 * with a Resolver set to parse content in a ODF Package
-	 *
-	 * @param pkg the ODF Package
-	 * @return a SAX XMLReader
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public XMLReader newXMLReader(OdfPackage pkg)
-			throws SAXException, ParserConfigurationException {
-		// SAXParserFactory factory = new
-		// org.apache.xerces.jaxp.SAXParserFactoryImpl();
-
-		SAXParserFactory factory = SAXParserFactory.newInstance();
-		factory.setNamespaceAware(true);
-		factory.setValidating(false);
-
-		SAXParser parser = factory.newSAXParser();
-		XMLReader xmlReader = parser.getXMLReader();
-		// More details at http://xerces.apache.org/xerces2-j/features.html#namespaces
-		xmlReader.setFeature("http://xml.org/sax/features/namespaces", true);
-		// More details at http://xerces.apache.org/xerces2-j/features.html#namespace-prefixes
-		xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
-		// More details at http://xerces.apache.org/xerces2-j/features.html#xmlns-uris
-		xmlReader.setFeature("http://xml.org/sax/features/xmlns-uris", true);
-		xmlReader.setEntityResolver(pkg.getEntityResolver());
-
-		return xmlReader;
-	}
-
-	/**
-	 * use SAX parser to parse content of package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param contentHandler a SAX Content handler to receive SAX Events
-	 * @param errorHandler a SAX Error handler to be called on errors during parsing
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 */
-	public void parse(OdfPackage pkg, String path, ContentHandler contentHandler, ErrorHandler errorHandler)
-			throws SAXException, ParserConfigurationException, IOException, IllegalArgumentException, TransformerConfigurationException, TransformerException {
-		try (InputStream is = pkg.getInputStream(path)) {
-			XMLReader reader = newXMLReader(pkg);
-
-			String uri = pkg.getBaseURI() + path;
-
-			if (contentHandler != null)
-				reader.setContentHandler(contentHandler);
-			if (errorHandler != null)
-				reader.setErrorHandler(errorHandler);
-
-			InputSource ins = new InputSource(is);
-			ins.setSystemId(uri);
-
-			reader.parse(ins);
-		} catch (Exception ex) {
-			Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, null, ex);
-		}
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templatePath a path to a file in the filesystem containing an XSL Template
-	 * @param outPath a path in the filesystem for the output of the XSL Transformation
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, String templatePath, String outPath)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-		transform(pkg, path, new File(templatePath), new File(outPath));
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templateSource TraX Source of an XSL Transformation Template
-	 * @param outPath path to an output file for the XSL Transformation
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, Source templateSource, String outPath)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-		transform(pkg, path, templateSource, new File(outPath));
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templateSource TraX Source of an XSL Transformation
-	 * @param out an output File
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, Source templateSource, File out)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-		transform(pkg, path, templateSource, new StreamResult(out));
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * insert result back to package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templatePath path inside the filesystem to an XSL template file
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, String templatePath)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-		transform(pkg, path, new File(templatePath));
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param template File containing an XSLT Template
-	 * @param out File for the XSLT ouput
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, File template, File out)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-		TransformerFactory transformerfactory = TransformerFactory.newInstance();
-
-		Templates templates = transformerfactory.newTemplates(new StreamSource(template));
-		transform(pkg, path, templates, new StreamResult(out));
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * insert result back to package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param template a File containing an XSLT Template
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, File template)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException, ParserConfigurationException {
-		TransformerFactory transformerfactory = TransformerFactory.newInstance();
-
-		Templates templates = transformerfactory.newTemplates(new StreamSource(template));
-		transform(pkg, path, templates);
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templateSource TraX Source of an XSLT Template
-	 * @param result TraX Result of XSL-Tranformation
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, Source templateSource, Result result)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException,
-			ParserConfigurationException {
-		TransformerFactory transformerfactory = TransformerFactory.newInstance();
-		transformerfactory.setURIResolver(pkg.getURIResolver());
-
-		Templates templates = transformerfactory.newTemplates(templateSource);
-		transform(pkg, path, templates, result);
-	}
-
-	/**
-	 * Does an XSL-Transformation on content contained in package.<br/><br/>
-	 *
-	 * There are three default parameteres provided to the transformation:
-	 * There are three default parameteres provided to the transformation:
-	 * <ol>
-	 * <li><b>sourceURL:</b> the URL of the source directory </li>
-	 * <li><b>sourceBaseURL:</b> baseURL of the source file (the package).
-	 * This URL necessary to access any content within the package from the XSLT scripts.
-	 * The relative package path will concatenated after the 'sourceBaseURL'.</li>
-	 * <li><b>targetURL:</b> the URL of the target directory</li>
-	 * <li><b>targetBaseURL:</b>the baseURL of the target file</li>
-	 * </ol>
-	 *
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templates TraX XSLT Template
-	 * @param result TraX XSLT Result
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	public void transform(OdfPackage pkg, String path, Templates templates, Result result)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException,
-			ParserConfigurationException {
-		try {
-			Source source = null;
-			String uri = pkg.getBaseURI() + path;
-			Document doc = pkg.getDom(path);
-			source = new DOMSource(doc);
-			Transformer transformer = templates.newTransformer();
-			transformer.setURIResolver(pkg.getURIResolver());
-
-			transformer.setParameter("sourceURL", uri);
-			transformer.setParameter("sourceBaseURL", pkg.getBaseURI() + "/");
-
-			uri = result.getSystemId();
-			if (uri != null) {
-				transformer.setParameter("targetURL", uri);
-				int i = uri.lastIndexOf('/');
-				if (i > 0) {
-					uri = uri.substring(0, i + 1);
-					transformer.setParameter("targetBaseURL", uri);
-				}
-			}
-			DocumentType doctype = doc.getDoctype();
-			if (doctype != null) {
-				if (doctype.getPublicId() != null)
-					transformer.setParameter("publicType", doctype.getPublicId());
-				if (doctype.getSystemId() != null)
-					transformer.setParameter("systemType", doctype.getSystemId());
-			}
-
-			transformer.transform(source, result);
-		} catch (Exception ex) {
-			Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE, null, ex);
-			ex.printStackTrace();
-		}
-	}
-
-	/**
-	 * Do XSL-Transformation on content contained in package
-	 * and insert result back to package
-	 * @param pkg a OdfPackage
-	 * @param path a path inside the OdfPackage, eg. to a contained content.xml stream
-	 * @param templates Trax XSLT Template
-	 * @throws TransformerConfigurationException
-	 * @throws TransformerException
-	 * @throws IOException
-	 * @throws IllegalArgumentException
-	 * @throws SAXException
-	 * @throws ParserConfigurationException
-	 */
-	@SuppressWarnings("null")
-	public void transform(OdfPackage pkg, String path, Templates templates)
-			throws TransformerConfigurationException, TransformerException,
-			IOException, IllegalArgumentException, SAXException,
-			ParserConfigurationException {
-		final boolean useDom = pkg.hasDom(path);
-		Result result = null;
-		ByteArrayOutputStream baos = null;
-
-		if (useDom)
-			result = new DOMResult();
-		else {
-			baos = new ByteArrayOutputStream();
-			result = new StreamResult(baos);
-		}
-
-		transform(pkg, path, templates, result);
-
-		try {
-			if (useDom)
-				pkg.insert((Document) ((DOMResult) result).getNode(), path,
-						null);
-			else
-				pkg.insert(baos.toByteArray(), path, "text/xml");
-		} catch (Exception ex) {
-			Logger.getLogger(OdfXMLHelper.class.getName()).log(Level.SEVERE,
-					null, ex);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/StreamHelper.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/StreamHelper.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/StreamHelper.java
deleted file mode 100644
index 19b43dc..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/StreamHelper.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * This class reads from an InputStream and writes to an OutputStream.
- * No streams will be closed - calling classes must do this.
- */
-class StreamHelper {
-    // 4096 is thought to be the minimum page size for most systems;
-    // change this for optimization
-    public static final int PAGE_SIZE = 4096;
-    private InputStream in;
-    private OutputStream out;
-    private boolean mStreamed;
-
-    /**
-     * Read from the input stream and write to the output. This method
-     * does not close any stream; calling methods must take care of that.
-     * @throws IOException when io error happens
-     */
-    static void stream(InputStream in, OutputStream out) throws IOException {
-        StreamHelper s = new StreamHelper(in, out);
-        s.stream();
-    }
-
-    /**
-     * Create a new StreamHelper
-     * @param in the input stream used for reading
-     * @param out the output stream written to
-     */
-    StreamHelper(InputStream in, OutputStream out) {
-        this.in = in;
-        this.out = out;
-        mStreamed = false;
-    }
-
-    /**
-     * Read from the input stream and write to the output. This method can only
-     * be called once. A second call will result in an IOException. This method
-     * does not close any stream; calling methods must take care of that.
-     * @throws IOException when io error happens
-     */
-	void stream() throws IOException {
-		if (mStreamed)
-			throw new IOException();
-		byte[] buf = new byte[PAGE_SIZE];
-		int r = 0;
-		// let npe happen if one of the streams is null
-		while ((r = in.read(buf, 0, PAGE_SIZE)) > -1) {
-			out.write(buf, 0, r);
-		}
-		// free the references
-		in = null;
-		out = null;
-		mStreamed = true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDir.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDir.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDir.java
deleted file mode 100644
index 220b3aa..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDir.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- * 
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- * 
- * Use is subject to license terms.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * 
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg;
-
-import java.io.File;
-import java.io.IOException;
-
-class TempDir {
-    /**
-     * Creates a temp directory with a generated name (given a certain prefix) 
-     * in a given directory.
-     * @param prefix The prefix for the directory name; must be three characters
-     * or more.
-     * @param parentDir A directory where the new tmep directory is created;
-     * if this is null, the java,io.tmpdir will be used.
-     */
-    static File newTempOdfDirectory(String prefix, File parentDir)
-            throws IOException {
-        File tempFile = File.createTempFile(prefix, "", parentDir);
-        if (!tempFile.delete())
-            throw new IOException();
-        if (!tempFile.mkdir())
-            throw new IOException();
-        TempDirDeleter.getInstance().add(tempFile);
-        return tempFile;
-    }
-
-    /**
-     * Delete a temporary created directory. As a precaution, only directories
-     * created by this class can be deleted. To avoid memory leaks, this class 
-     * should be used exclusively for deleting.
-     * @param odfDirectory the temp directory to delete.
-     */
-    static void deleteTempOdfDirectory(File odfDirectory) {
-        if (TempDirDeleter.getInstance().remove(odfDirectory))
-            TempDirDeleter.getInstance().deleteDirectory(odfDirectory);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDirDeleter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDirDeleter.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDirDeleter.java
deleted file mode 100644
index 2b2c0de..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/TempDirDeleter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- * 
- * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- * 
- * Use is subject to license terms.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
- * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * 
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ************************************************************************/
-package org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-class TempDirDeleter extends Thread {
-    private static TempDirDeleter deleterThread = null;
-    private ArrayList<File> dirList;
-
-    static TempDirDeleter getInstance() {
-        if (deleterThread == null) {
-            deleterThread = new TempDirDeleter();
-            Runtime.getRuntime().addShutdownHook(deleterThread);
-        }
-        return deleterThread;
-    }
-
-    private TempDirDeleter() {
-        dirList = new ArrayList<>();
-    }
-
-    synchronized boolean add(File dir) {
-        return dirList.add(dir);
-    }
-
-    synchronized boolean remove(File dir) {
-        return dirList.remove(dir);
-    }
-
-    @Override
-    public void run() {
-        synchronized (this) {
-            Iterator<File> iterator = dirList.iterator();
-            while (iterator.hasNext()) {
-                File dir = iterator.next();
-                deleteDirectoryRecursive(dir);
-                iterator.remove();
-            }
-            dirList.clear();
-        }
-    }
-
-    private void deleteDirectoryRecursive(File dir) {
-        if (dir == null)
-            return;
-
-        File[] fileArray = dir.listFiles();
-        if (fileArray != null)
-            for (int i = 0; i < fileArray.length; i++)
-                if (fileArray[i].isDirectory())
-                    deleteDirectoryRecursive(fileArray[i]);
-                else
-                    fileArray[i].delete();
-        dir.delete();
-    }
-
-    void deleteDirectory(File dir) {
-        deleteDirectoryRecursive(dir);
-        dirList.remove(dir);
-    }
-}


[43/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathAnnotation.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathAnnotation.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathAnnotation.java
deleted file mode 100644
index e5e76e3..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathAnnotation.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonPropertyOrder(value = { "uri", "about", "content" })
-public class PathAnnotation {
-	private List<URI> about = new ArrayList<>();
-	private URI content;
-	private URI uri;
-
-	public void generateAnnotationId() {
-		setUri(URI.create("urn:uuid:" + UUID.randomUUID()));
-	}
-
-	@JsonIgnore
-	public URI getAbout() {
-		if (about.isEmpty()) {
-			return null;
-		} else {
-			return about.get(0);
-		}
-	}
-
-	@JsonIgnore
-	public List<URI> getAboutList() {
-		return about;
-	}
-
-	@JsonProperty("about")
-	public Object getAboutObject() {
-		if (about.isEmpty()) {
-			return null;
-		}
-		if (about.size() == 1) {
-			return about.get(0);
-		} else {
-			return about;
-		}
-	}
-
-	@Deprecated
-	public URI getAnnotion() {
-		return getUri();
-	}
-
-	public URI getContent() {
-		return content;
-	}
-
-	public URI getUri() {
-		return uri;
-	}
-
-	private URI relativizePath(Path path) {
-		return URI.create("/.ro/").relativize(
-				URI.create(path.toUri().getRawPath()));
-	}
-
-	public void setAbout(List<URI> about) {
-		if (about == null) {
-			throw new NullPointerException("about list can't be null");
-		}
-		this.about = about;
-	}
-
-	public void setAbout(Path path) {
-		setAbout(relativizePath(path));
-	}
-
-	public void setAbout(URI about) {
-		this.about.clear();
-		if (about != null) {
-			this.about.add(about);
-		}
-	}
-
-	@Deprecated
-	public void setAnnotation(URI annotation) {
-		setUri(annotation);
-	}
-
-	public void setContent(Path path) {
-		this.content = relativizePath(path);
-	}
-
-	public void setContent(URI content) {
-		this.content = content;
-	}
-
-	public void setUri(URI uri) {
-		this.uri = uri;
-	}
-
-	@Override
-	public String toString() {
-		return "Annotation: " + getContent() + " about " + getAbout();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathMetadata.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathMetadata.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathMetadata.java
deleted file mode 100644
index 2e22ae2..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/PathMetadata.java
+++ /dev/null
@@ -1,207 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.nio.file.Path;
-import java.nio.file.attribute.FileTime;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonPropertyOrder(value = { "uri", "mediatype", "createdOn", "createdBy",
-		"authoredOn", "authoredBy", "conformsTo", "bundledAs" })
-public class PathMetadata {
-
-	private static URI ROOT = URI.create("/");
-
-	private List<Agent> authoredBy = new ArrayList<>();
-	private FileTime authoredOn;
-	private Proxy bundledAs;
-
-	private URI conformsTo;
-	private Agent createdBy;
-
-	private FileTime createdOn;
-	private Path file;
-
-	private String mediatype;
-
-	private URI uri;
-
-	protected PathMetadata() {
-	}
-
-	@JsonCreator
-	public PathMetadata(String uriStr) {
-		setUri(URI.create(uriStr));
-	}
-
-	public List<Agent> getAuthoredBy() {
-		return authoredBy;
-	}
-
-	public FileTime getAuthoredOn() {
-		return authoredOn;
-	}
-
-	public Proxy getBundledAs() {
-		return bundledAs;
-	}
-
-	public URI getConformsTo() {
-		return conformsTo;
-	}
-
-	public Agent getCreatedBy() {
-		return createdBy;
-	}
-
-	public FileTime getCreatedOn() {
-		return createdOn;
-	}
-
-	@JsonIgnore
-	public Path getFile() {
-		return file;
-	}
-
-	@JsonIgnore
-	@Deprecated
-	public Path getFolder() {
-		Proxy bundledAs = getBundledAs();
-		if (bundledAs == null) {
-			return null;
-		}
-		return bundledAs.getFolder();
-	}
-
-	public String getMediatype() {
-		return mediatype;
-	}
-
-	@JsonIgnore
-	public Proxy getOrCreateBundledAs() {
-		if (bundledAs == null) {
-			bundledAs = new Proxy();
-			setProxy();
-		}
-		return bundledAs;
-	}
-
-	@JsonIgnore
-	@Deprecated
-	public URI getProxy() {
-		Proxy bundledAs = getBundledAs();
-		if (bundledAs == null) {
-			return null;
-		}
-		return bundledAs.getURI();
-	}
-
-	public URI getUri() {
-		return uri;
-	}
-
-	public void setAuthoredBy(List<Agent> authoredBy) {
-		if (authoredBy == null) {
-			throw new NullPointerException("authoredBy list can't be empty");
-		}
-		this.authoredBy = authoredBy;
-	}
-
-	public void setAuthoredOn(FileTime authoredOn) {
-		this.authoredOn = authoredOn;
-	}
-
-	public void setBundledAs(Proxy bundledAs) {
-		if (bundledAs == null) {
-			throw new NullPointerException(
-					"bundledAs can't be empty (try a new Proxy instance)");
-		}
-		this.bundledAs = bundledAs;
-	}
-
-	public void setConformsTo(URI conformsTo) {
-		this.conformsTo = conformsTo;
-	}
-
-	public void setCreatedBy(Agent createdBy) {
-		this.createdBy = createdBy;
-	}
-
-	public void setCreatedOn(FileTime createdOn) {
-		this.createdOn = createdOn;
-	}
-
-	public void setFile(Path file) {
-		this.file = file;
-		Path root = this.file.resolve("/");
-		URI uri = ROOT.resolve(root.toUri().relativize(file.toUri()));
-		setUri(uri);
-	}
-
-	@Deprecated
-	public void setFolder(Path folder) {
-		getOrCreateBundledAs().setFolder(folder);
-	}
-
-	public void setMediatype(String mediatype) {
-		this.mediatype = mediatype;
-	}
-
-	@Deprecated
-	public void setProxy() {
-		getOrCreateBundledAs().setURI();
-	}
-
-	@Deprecated
-	public void setProxy(URI proxy) {
-		getOrCreateBundledAs().setURI(proxy);
-	}
-
-	public void setUri(URI uri) {
-		this.uri = uri;
-		if (!uri.isAbsolute()) {
-			// TODO: How to create a Path without knowing the root?
-			// file = uri;
-			// this.uri = null;
-		}
-	}
-
-	@Override
-	public String toString() {
-		if (getUri() != null) {
-			return getUri().toString();
-		}
-		if (getFile() != null) {
-			return getFile().toString();
-		}
-		if (getProxy() != null) {
-			return getProxy().toString();
-		}
-		return "PathMetadata <null>";
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Proxy.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Proxy.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Proxy.java
deleted file mode 100644
index b303bc8..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Proxy.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.nio.file.Path;
-import java.nio.file.attribute.FileTime;
-import java.util.UUID;
-
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonPropertyOrder(value = { "uri", "folder", "filename", "aggregatedBy",
-		"aggregatedOn" })
-public class Proxy {
-
-	private Agent aggregatedBy;
-	private FileTime aggregatedOn;
-	private String filename;
-	private Path folder;
-	private URI uri;
-
-	public Agent getAggregatedBy() {
-		return aggregatedBy;
-	}
-
-	public FileTime getAggregatedOn() {
-		return aggregatedOn;
-	}
-
-	public String getFilename() {
-		return filename;
-	}
-
-	public Path getFolder() {
-		return folder;
-	}
-
-	public URI getURI() {
-		return uri;
-	}
-
-	public void setAggregatedBy(Agent aggregatedBy) {
-		this.aggregatedBy = aggregatedBy;
-	}
-
-	public void setAggregatedOn(FileTime aggregatedOn) {
-		this.aggregatedOn = aggregatedOn;
-	}
-
-	public void setFilename(String filename) {
-		this.filename = filename;
-	}
-
-	public void setFolder(Path folder) {
-		this.folder = folder;
-	}
-
-	public void setURI() {
-		setURI(URI.create("urn:uuid:" + UUID.randomUUID()));
-	}
-
-	public void setURI(URI uri) {
-		this.uri = uri;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
deleted file mode 100644
index 6328bb8..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/RDFToManifest.java
+++ /dev/null
@@ -1,514 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static com.hp.hpl.jena.ontology.OntModelSpec.OWL_DL_MEM_RULE_INF;
-import static com.hp.hpl.jena.rdf.model.ModelFactory.createOntologyModel;
-import static org.apache.taverna.robundle.utils.PathHelper.relativizeFromBase;
-import static org.apache.taverna.robundle.utils.RDFUtils.literalAsFileTime;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-import java.util.logging.Logger;
-
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.riot.RiotException;
-
-import com.hp.hpl.jena.ontology.DatatypeProperty;
-import com.hp.hpl.jena.ontology.Individual;
-import com.hp.hpl.jena.ontology.ObjectProperty;
-import com.hp.hpl.jena.ontology.OntClass;
-import com.hp.hpl.jena.ontology.OntModel;
-import com.hp.hpl.jena.ontology.OntResource;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.RDFNode;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
-
-public class RDFToManifest {
-	public static class ClosableIterable<T> implements AutoCloseable,
-			Iterable<T> {
-
-		private ExtendedIterator<T> iterator;
-
-		public ClosableIterable(ExtendedIterator<T> iterator) {
-			this.iterator = iterator;
-		}
-
-		@Override
-		public void close() {
-			iterator.close();
-		}
-
-		@Override
-		public ExtendedIterator<T> iterator() {
-			return iterator;
-		}
-	}
-
-	private static final String BUNDLE = "http://purl.org/wf4ever/bundle#";
-
-	private static final String BUNDLE_RDF = "/ontologies/bundle.owl";
-	private static final String DCT = "http://purl.org/dc/terms/";
-	private static final String FOAF_0_1 = "http://xmlns.com/foaf/0.1/";
-	private static final String FOAF_RDF = "/ontologies/foaf.rdf";
-
-	private static Logger logger = Logger.getLogger(RDFToManifest.class
-			.getCanonicalName());
-	private static final String OA = "http://www.w3.org/ns/oa#";
-	private static final String OA_RDF = "/ontologies/oa.rdf";
-	private static final String ORE = "http://www.openarchives.org/ore/terms/";
-	private static final String PAV = "http://purl.org/pav/";
-	private static final String PAV_RDF = "/ontologies/pav.rdf";
-	private static final String PROV = "http://www.w3.org/ns/prov#";
-	private static final String PROV_AQ_RDF = "/ontologies/prov-aq.rdf";
-	private static final String PROV_O = "http://www.w3.org/ns/prov-o#";
-	private static final String PROV_O_RDF = "/ontologies/prov-o.rdf";
-	@SuppressWarnings("unused")
-	private static final String RO = "http://purl.org/wf4ever/ro#";
-	static {
-		setCachedHttpClientInJsonLD();
-	}
-
-	public static <T> ClosableIterable<T> iterate(ExtendedIterator<T> iterator) {
-		return new ClosableIterable<T>(iterator);
-	}
-
-	protected static Model jsonLdAsJenaModel(InputStream jsonIn, URI base)
-			throws IOException, RiotException {
-		Model model = ModelFactory.createDefaultModel();
-		RDFDataMgr.read(model, jsonIn, base.toASCIIString(), Lang.JSONLD);
-		return model;
-
-		//
-		// Object input = JSONUtils.fromInputStream(jsonIn);
-		// JSONLDTripleCallback callback = new JenaTripleCallback();
-		// Model model = (Model)JSONLD.toRDF(input, callback, new
-		// Options(base.toASCIIString()));
-		// return model;
-	}
-
-	protected static URI makeBaseURI() throws URISyntaxException {
-		return new URI("app", UUID.randomUUID().toString(), "/", (String) null);
-	}
-
-	/**
-	 * Use a JarCacheStorage so that our JSON-LD @context can be loaded from our
-	 * classpath and not require network connectivity
-	 * 
-	 */
-	protected static void setCachedHttpClientInJsonLD() {
-		// JarCacheStorage cacheStorage = new JarCacheStorage(
-		// RDFToManifest.class.getClassLoader());
-		// synchronized (DocumentLoader.class) {
-		// HttpClient oldHttpClient = DocumentLoader.getHttpClient();
-		// CachingHttpClient wrappedHttpClient = new CachingHttpClient(
-		// oldHttpClient, cacheStorage, cacheStorage.getCacheConfig());
-		// DocumentLoader.setHttpClient(wrappedHttpClient);
-		// }
-		// synchronized (JSONUtils.class) {
-		// HttpClient oldHttpClient = JSONUtilsSub.getHttpClient();
-		// CachingHttpClient wrappedHttpClient = new CachingHttpClient(
-		// oldHttpClient, cacheStorage, cacheStorage.getCacheConfig());
-		// JSONUtilsSub.setHttpClient(wrappedHttpClient);
-		// }
-	}
-	private ObjectProperty aggregates;
-	private OntClass aggregation;
-	private ObjectProperty authoredBy;
-	private DatatypeProperty authoredOn;
-	private OntModel bundle;
-	private ObjectProperty conformsTo;
-	private ObjectProperty createdBy;
-	private DatatypeProperty createdOn;
-	private OntModel dct;
-	private OntModel foaf;
-	private DatatypeProperty foafName;
-	private DatatypeProperty format;
-	private ObjectProperty hasAnnotation;
-
-	private ObjectProperty hasBody;
-
-	private ObjectProperty hasProvenance;
-
-	private ObjectProperty hasProxy;
-
-	private ObjectProperty hasTarget;
-	private ObjectProperty inFolder;
-	private ObjectProperty isDescribedBy;
-	private OntModel oa;
-	private OntModel ore;
-	private OntModel pav;
-
-	private OntModel prov;
-
-	private OntModel provaq;
-
-	private ObjectProperty proxyFor;
-
-	private ObjectProperty proxyIn;
-
-	private OntClass standard;
-
-	public RDFToManifest() {
-		loadOntologies();
-	}
-
-	private void checkNotNull(Object... possiblyNulls) {
-		int i = 0;
-		for (Object check : possiblyNulls) {
-			if (check == null)
-				throw new IllegalStateException("Could not load item #" + i);
-			i++;
-		}
-	}
-
-	private Individual findRO(OntModel model, URI base) {
-		try (ClosableIterable<? extends OntResource> instances = iterate(aggregation
-				.listInstances())) {
-			for (OntResource o : instances)
-				// System.out.println("Woo " + o);
-				return o.asIndividual();
-		}
-		// Fallback - resolve as "/"
-		// TODO: Ensure it's an Aggregation?
-		return model.getIndividual(base.toString());
-	}
-
-	private List<Agent> getAgents(URI base, Individual in,
-			ObjectProperty property) {
-		List<Agent> creators = new ArrayList<>();
-		for (Individual agent : listObjectProperties(in, property)) {
-			Agent a = new Agent();
-			if (agent.getURI() != null)
-				a.setUri(relativizeFromBase(agent.getURI(), base));
-
-			RDFNode name = agent.getPropertyValue(foafName);
-			if (name != null && name.isLiteral())
-				a.setName(name.asLiteral().getLexicalForm());
-			creators.add(a);
-		}
-		return creators;
-	}
-
-	protected OntModel getOntModel() {
-		OntModel ontModel = createOntologyModel(OWL_DL_MEM_RULE_INF);
-		ontModel.setNsPrefix("foaf", FOAF_0_1);
-		ontModel.setNsPrefix("prov", PROV);
-		ontModel.setNsPrefix("ore", ORE);
-		ontModel.setNsPrefix("pav", PAV);
-		ontModel.setNsPrefix("dct", DCT);
-		// ontModel.getDocumentManager().loadImports(foaf.getOntModel());
-		return ontModel;
-	}
-
-	private Set<Individual> listObjectProperties(OntResource ontResource,
-			ObjectProperty prop) {
-		LinkedHashSet<Individual> results = new LinkedHashSet<>();
-		try (ClosableIterable<RDFNode> props = iterate(ontResource
-				.listPropertyValues(prop))) {
-			for (RDFNode node : props) {
-				if (!node.isResource() || !node.canAs(Individual.class))
-					continue;
-				results.add(node.as(Individual.class));
-			}
-		}
-		return results;
-	}
-
-	protected synchronized void loadBundle() {
-		if (bundle != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(BUNDLE_RDF, BUNDLE);
-		hasProxy = ontModel.getObjectProperty(BUNDLE + "hasProxy");
-		hasAnnotation = ontModel.getObjectProperty(BUNDLE + "hasAnnotation");
-		inFolder = ontModel.getObjectProperty(BUNDLE + "inFolder");
-		checkNotNull(hasProxy, hasAnnotation, inFolder);
-		bundle = ontModel;
-	}
-
-	protected synchronized void loadDCT() {
-		if (dct != null)
-			return;
-
-		OntModel ontModel = loadOntologyFromClasspath(
-				"/ontologies/dcterms_od.owl",
-				"http://purl.org/wf4ever/dcterms_od");
-
-		// properties from dct
-		standard = ontModel.getOntClass(DCT + "Standard");
-		conformsTo = ontModel.getObjectProperty(DCT + "conformsTo");
-
-		// We'll cheat dc:format in
-		format = ontModel
-				.createDatatypeProperty("http://purl.org/dc/elements/1.1/"
-						+ "format");
-		checkNotNull(standard, conformsTo, format);
-
-		dct = ontModel;
-	}
-
-	//
-	protected synchronized void loadFOAF() {
-		if (foaf != null)
-			return;
-
-		OntModel ontModel = loadOntologyFromClasspath(FOAF_RDF, FOAF_0_1);
-
-		// properties from foaf
-		foafName = ontModel.getDatatypeProperty(FOAF_0_1 + "name");
-		checkNotNull(foafName);
-
-		foaf = ontModel;
-	}
-
-	protected synchronized void loadOA() {
-		if (oa != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(OA_RDF, OA);
-		hasTarget = ontModel.getObjectProperty(OA + "hasTarget");
-		hasBody = ontModel.getObjectProperty(OA + "hasBody");
-		checkNotNull(hasTarget, hasBody);
-		oa = ontModel;
-	}
-
-	protected void loadOntologies() {
-		loadDCT();
-		loadORE();
-		loadFOAF();
-		loadPROVO();
-		loadPAV();
-		loadPROVAQ();
-		loadOA();
-		loadBundle();
-	}
-
-	protected OntModel loadOntologyFromClasspath(String classPathUri, String uri) {
-		OntModel ontModel = createOntologyModel();
-
-		// Load from classpath
-		InputStream inStream = getClass().getResourceAsStream(classPathUri);
-		if (inStream == null)
-			throw new IllegalArgumentException("Can't load " + classPathUri);
-		// Ontology ontology = ontModel.createOntology(uri);
-		ontModel.read(inStream, uri);
-		try {
-			inStream.close();
-		} catch (IOException e) {
-			// Shouldn't happen
-		}
-		return ontModel;
-	}
-
-	protected synchronized void loadORE() {
-		if (ore != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(
-				"/ontologies/ore-owl.owl", "http://purl.org/wf4ever/ore-owl");
-		aggregation = ontModel.getOntClass(ORE + "Aggregation");
-
-		aggregates = ontModel.getObjectProperty(ORE + "aggregates");
-		proxyFor = ontModel.getObjectProperty(ORE + "proxyFor");
-		proxyIn = ontModel.getObjectProperty(ORE + "proxyIn");
-		isDescribedBy = ontModel.getObjectProperty(ORE + "isDescribedBy");
-
-		checkNotNull(aggregation, aggregates, proxyFor, proxyIn, isDescribedBy);
-
-		ore = ontModel;
-	}
-
-	protected synchronized void loadPAV() {
-		if (pav != null)
-			return;
-
-		OntModel ontModel = loadOntologyFromClasspath(PAV_RDF, PAV);
-		// properties from foaf
-		createdBy = ontModel.getObjectProperty(PAV + "createdBy");
-		createdOn = ontModel.getDatatypeProperty(PAV + "createdOn");
-		authoredBy = ontModel.getObjectProperty(PAV + "authoredBy");
-		authoredOn = ontModel.getDatatypeProperty(PAV + "authoredOn");
-		checkNotNull(createdBy, createdOn, authoredBy, authoredOn);
-
-		pav = ontModel;
-	}
-
-	protected synchronized void loadPROVAQ() {
-		if (provaq != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(PROV_AQ_RDF, PAV);
-
-		// properties from foaf
-		hasProvenance = ontModel.getObjectProperty(PROV + "has_provenance");
-		checkNotNull(hasProvenance);
-
-		provaq = ontModel;
-	}
-
-	protected synchronized void loadPROVO() {
-		if (prov != null)
-			return;
-		OntModel ontModel = loadOntologyFromClasspath(PROV_O_RDF, PROV_O);
-
-		checkNotNull(ontModel);
-
-		prov = ontModel;
-	}
-
-	@SuppressWarnings("deprecation")
-	private static void setPathProxy(PathMetadata meta, URI proxy) {
-		meta.setProxy(proxy);
-	}
-
-	public void readTo(InputStream manifestResourceAsStream, Manifest manifest,
-			URI manifestResourceBaseURI) throws IOException, RiotException {
-		OntModel model = new RDFToManifest().getOntModel();
-		model.add(jsonLdAsJenaModel(manifestResourceAsStream,
-				manifestResourceBaseURI));
-
-		// model.write(System.out, "TURTLE");
-		// System.out.println();
-
-		URI root = manifestResourceBaseURI.resolve("/");
-		Individual ro = findRO(model, root);
-		if (ro == null)
-			throw new IOException("root ResearchObject not found - "
-					+ "Not a valid RO Bundle manifest");
-
-		for (Individual manifestResource : listObjectProperties(ro,
-				isDescribedBy)) {
-			String uriStr = manifestResource.getURI();
-			if (uriStr == null) {
-				logger.warning("Skipping manifest without URI: "
-						+ manifestResource);
-				continue;
-			}
-			// URI relative = relativizeFromBase(uriStr, root);
-			Path path = manifest.getBundle().getFileSystem().provider()
-					.getPath(URI.create(uriStr));
-			manifest.getManifest().add(path);
-		}
-
-		List<Agent> creators = getAgents(root, ro, createdBy);
-		if (!creators.isEmpty()) {
-			manifest.setCreatedBy(creators.get(0));
-			if (creators.size() > 1)
-				logger.warning("Ignoring additional createdBy agents");
-		}
-
-		RDFNode created = ro.getPropertyValue(createdOn);
-		manifest.setCreatedOn(literalAsFileTime(created));
-
-		List<Agent> authors = getAgents(root, ro, authoredBy);
-		if (!authors.isEmpty())
-			manifest.setAuthoredBy(authors);
-		RDFNode authored = ro.getPropertyValue(authoredOn);
-		manifest.setAuthoredOn(literalAsFileTime(authored));
-
-		for (Individual aggrResource : listObjectProperties(ro, aggregates)) {
-			String uriStr = aggrResource.getURI();
-			// PathMetadata meta = new PathMetadata();
-			if (uriStr == null) {
-				logger.warning("Skipping aggregation without URI: "
-						+ aggrResource);
-				continue;
-			}
-
-			PathMetadata meta = manifest.getAggregation(relativizeFromBase(
-					uriStr, root));
-
-			Set<Individual> proxies = listObjectProperties(aggrResource,
-					hasProxy);
-			if (!proxies.isEmpty()) {
-				// We can only deal with the first one
-				Individual proxy = proxies.iterator().next();
-
-				String proxyUri = null;
-				if (proxy.getURI() != null)
-					proxyUri = proxy.getURI();
-				else if (proxy.getSameAs() != null)
-					proxyUri = proxy.getSameAs().getURI();
-				if (proxyUri != null)
-					setPathProxy(meta, relativizeFromBase(proxyUri, root));
-			}
-
-			creators = getAgents(root, aggrResource, createdBy);
-			if (!creators.isEmpty()) {
-				meta.setCreatedBy(creators.get(0));
-				if (creators.size() > 1)
-					logger.warning("Ignoring additional createdBy agents for "
-							+ meta);
-			}
-			meta.setCreatedOn(literalAsFileTime(aggrResource
-					.getPropertyValue(createdOn)));
-
-			for (Individual standard : listObjectProperties(aggrResource,
-					conformsTo))
-				if (standard.getURI() != null)
-					meta.setConformsTo(relativizeFromBase(standard.getURI(),
-							root));
-
-			RDFNode mediaType = aggrResource.getPropertyValue(format);
-			if (mediaType != null && mediaType.isLiteral())
-				meta.setMediatype(mediaType.asLiteral().getLexicalForm());
-		}
-
-		for (Individual ann : listObjectProperties(ro, hasAnnotation)) {
-			/*
-			 * Normally just one body per annotation, but just in case we'll
-			 * iterate and split them out (as our PathAnnotation can only keep a
-			 * single setContent() at a time)
-			 */
-			for (Individual body : listObjectProperties(
-					model.getOntResource(ann), hasBody)) {
-				if (body.getURI() == null) {
-					logger.warning("Can't find annotation body for anonymous "
-							+ body);
-					continue;
-				}
-				PathAnnotation pathAnn = new PathAnnotation();
-				pathAnn.setContent(relativizeFromBase(body.getURI(), root));
-
-				if (ann.getURI() != null)
-					pathAnn.setUri(relativizeFromBase(ann.getURI(), root));
-				else if (ann.getSameAs() != null
-						&& ann.getSameAs().getURI() != null)
-					pathAnn.setUri(relativizeFromBase(ann.getSameAs().getURI(),
-							root));
-
-				// Handle multiple about/hasTarget
-				for (Individual target : listObjectProperties(ann, hasTarget))
-					if (target.getURI() != null)
-						pathAnn.getAboutList().add(
-								relativizeFromBase(target.getURI(), root));
-				manifest.getAnnotations().add(pathAnn);
-			}
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java
deleted file mode 100644
index e75df7b..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/combine/CombineManifest.java
+++ /dev/null
@@ -1,511 +0,0 @@
-package org.apache.taverna.robundle.manifest.combine;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static com.hp.hpl.jena.rdf.model.ModelFactory.createDefaultModel;
-import static java.nio.file.Files.createDirectories;
-import static java.nio.file.Files.exists;
-import static java.nio.file.Files.isRegularFile;
-import static java.nio.file.Files.newInputStream;
-import static java.nio.file.Files.newOutputStream;
-import static java.nio.file.Files.setLastModifiedTime;
-import static java.util.logging.Level.FINE;
-import static java.util.logging.Level.WARNING;
-import static org.apache.jena.riot.RDFDataMgr.read;
-import static org.apache.jena.riot.RDFLanguages.RDFXML;
-import static org.apache.taverna.robundle.utils.RDFUtils.literalAsFileTime;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.nio.file.attribute.FileTime;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.transform.Source;
-import javax.xml.transform.sax.SAXSource;
-
-import org.apache.jena.riot.RiotException;
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.manifest.Agent;
-import org.apache.taverna.robundle.manifest.PathAnnotation;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-import org.identifiers.combine_specifications.omex_manifest.Content;
-import org.identifiers.combine_specifications.omex_manifest.ObjectFactory;
-import org.identifiers.combine_specifications.omex_manifest.OmexManifest;
-import org.xml.sax.InputSource;
-
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-import com.hp.hpl.jena.query.QueryFactory;
-import com.hp.hpl.jena.query.QuerySolutionMap;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.Property;
-import com.hp.hpl.jena.rdf.model.RDFNode;
-import com.hp.hpl.jena.rdf.model.Resource;
-import com.hp.hpl.jena.rdf.model.Statement;
-import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
-
-/**
- * Parse and generate COMBINE Archive OMEX manifest
- * 
- * @author Stian Soiland-Reyes
- */
-public class CombineManifest {
-	public static class ManifestNamespacePrefixMapperJAXB_RI extends
-			NamespacePrefixMapper {
-		@Override
-		public String[] getPreDeclaredNamespaceUris() {
-			return new String[] { OMEX_METADATA.toString() };
-		}
-
-		@Override
-		public String getPreferredPrefix(String namespaceUri,
-				String suggestion, boolean requirePrefix) {
-			if (namespaceUri.equals(OMEX_METADATA.toString()))
-				return "";
-			return suggestion;
-		}
-	}
-
-	private static final Logger logger = Logger.getLogger(CombineManifest.class
-			.getCanonicalName());
-	private static final String MANIFEST_XML = "manifest.xml";
-	private static final String OMEX_MANIFEST = "http://identifiers.org/combine.specifications/omex-manifest";
-		private static final URI OMEX_METADATA = URI
-			.create("http://identifiers.org/combine.specifications/omex-metadata");
-	private static final String sparqlPrefixes = "PREFIX foaf:  <http://xmlns.com/foaf/0.1/> \n"
-			+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
-			+ "PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#> \n"
-			+ "PREFIX dct:   <http://purl.org/dc/terms/> \n";
-
-	private static JAXBContext jaxbContext;
-	private static ObjectFactory objectFactory = new ObjectFactory();
-	private static boolean warnedPrefixMapper;
-
-	public static boolean containsManifest(Bundle bundle) {
-		return isRegularFile(manifestXmlPath(bundle));
-	}
-
-	protected static synchronized Marshaller createMarshaller()
-			throws JAXBException {
-		Marshaller marshaller = getJaxbContext().createMarshaller();
-		setPrefixMapper(marshaller);
-		return marshaller;
-	}
-
-	protected static synchronized Unmarshaller createUnMarshaller()
-			throws JAXBException {
-		Unmarshaller unmarshaller = getJaxbContext().createUnmarshaller();
-		return unmarshaller;
-	}
-
-	private static List<RDFNode> creatingAgentsFor(Resource r) {
-		logger.fine("Finding creator of " + r);
-		String queryStr = sparqlPrefixes + "SELECT ?agent WHERE { \n" + " { \n"
-				+ "  ?r dct:creator [ \n" + "	    rdfs:member ?agent \n"
-				+ "  ] \n" + " } UNION { \n" + "   ?r dct:creator ?agent .\n "
-				+ "   FILTER NOT EXISTS { ?agent rdfs:member ?member } \n"
-				+ " } \n" + "} \n";
-		logger.finer(QueryFactory.create(queryStr).toString());
-		QueryExecution qexec = QueryExecutionFactory.create(queryStr,
-				r.getModel());
-		QuerySolutionMap binding = new QuerySolutionMap();
-		binding.add("r", r);
-		qexec.setInitialBinding(binding);
-		ResultSet select = qexec.execSelect();
-		List<RDFNode> agents = new ArrayList<>();
-
-		while (select.hasNext()) {
-			RDFNode agent = select.next().get("agent");
-			logger.fine("Found: " + agent);
-			agents.add(agent);
-		}
-		return agents;
-	}
-
-	protected static synchronized JAXBContext getJaxbContext()
-			throws JAXBException {
-		if (jaxbContext == null)
-			jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-		return jaxbContext;
-	}
-
-	private static Path manifestXmlPath(Bundle bundle) {
-		return bundle.getRoot().resolve(MANIFEST_XML);
-	}
-
-	private static Resource mboxForAgent(Resource agentResource) {
-		logger.fine("Finding mbox of " + agentResource);
-		String queryStr = sparqlPrefixes + "SELECT ?mbox WHERE { \n"
-				+ "		{ ?agent foaf:mbox ?mbox } \n" + "	UNION  \n"
-				+ "		{ ?agent vcard:hasEmail ?mbox } \n" + "	UNION  \n"
-				+ "		{ ?agent vcard:email ?email .  \n"
-				+ "       BIND(IRI(CONCAT(\"mbox:\", ?email)) AS ?mbox) \n" // legacy
-				+ "	    } \n" + "} \n";
-		logger.finer(QueryFactory.create(queryStr).toString());
-		QueryExecution qexec = QueryExecutionFactory.create(queryStr,
-				agentResource.getModel());
-		QuerySolutionMap binding = new QuerySolutionMap();
-		binding.add("agent", agentResource);
-		qexec.setInitialBinding(binding);
-		ResultSet select = qexec.execSelect();
-		if (select.hasNext()) {
-			Resource mbox = select.next().getResource("mbox");
-			logger.fine("Found mbox: " + mbox);
-			return mbox;
-		}
-		logger.fine("mbox not found");
-		return null;
-	}
-
-	private static String nameForAgent(Resource agentResource) {
-		logger.fine("Finding name of " + agentResource);
-		String queryStr = sparqlPrefixes
-				+ "SELECT ?name WHERE { \n"
-				+ "		{ ?agent foaf:name ?name } \n"
-				+ "	UNION  \n"
-				+ "		{ ?agent vcard:fn ?name } \n"
-				+ "	UNION  \n"
-				+ "		{ ?agent vcard:FN ?name } \n"
-				+ // legacy
-				"	UNION  \n"
-				+ "		{ ?agent rdfs:label ?name } \n"
-				+ " UNION  \n"
-				+ "     { \n"
-				+ "         { ?agent vcard:n ?n } UNION { ?agent vcard:hasName ?n } \n"
-				+ "         ?n vcard:family-name ?family ; \n"
-				+ "            vcard:given-name ?given . \n"
-				+ "          BIND(CONCAT(?given, \" \", ?family) AS ?name) \n"
-				+ "     } \n" + " UNION \n" + "     { "
-				+ "         ?agent foaf:givenName ?given ; \n"
-				+ "                foaf:familyName ?family \n"
-				+ "          BIND(CONCAT(?given, \" \", ?family) AS ?name) \n"
-				+ "     } \n" + " UNION \n" + "     { "
-				+ "         ?agent foaf:firstName ?given ; \n"
-				+ "                foaf:surname ?family \n"
-				+ "          BIND(CONCAT(?given, \" \", ?family) AS ?name) \n"
-				+ "     } \n" + "	}  \n";
-		logger.finer(QueryFactory.create(queryStr).toString());
-		QueryExecution qexec = QueryExecutionFactory.create(queryStr,
-				agentResource.getModel());
-		QuerySolutionMap binding = new QuerySolutionMap();
-		binding.add("agent", agentResource);
-		qexec.setInitialBinding(binding);
-		ResultSet select = qexec.execSelect();
-		if (select.hasNext()) {
-			String name = select.next().getLiteral("name").getString();
-			logger.fine(name);
-			return name;
-		}
-		logger.fine("(null)");
-		return null;
-	}
-
-	private static Model parseRDF(Path metadata) throws IOException {
-		Model model = createDefaultModel();
-		try (InputStream in = newInputStream(metadata)) {
-			read(model, in, metadata.toUri().toASCIIString(), RDFXML);
-		}
-		return model;
-	}
-
-	protected static void setPrefixMapper(Marshaller marshaller) {
-		boolean setPrefixMapper = false;
-
-		try {
-			/*
-			 * This only works with JAXB RI, in which case we can set the
-			 * namespace prefix mapper
-			 */
-			Class.forName("com.sun.xml.bind.marshaller.NamespacePrefixMapper");
-			marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper",
-					new ManifestNamespacePrefixMapperJAXB_RI());
-			/*
-			 * Note: A similar mapper for the built-in java
-			 * (com.sun.xml.bind.internal.namespacePrefixMapper) is no longer
-			 * included here, as it will not (easily) compile with Maven.
-			 */
-			setPrefixMapper = true;
-		} catch (Exception e) {
-			logger.log(FINE, "Can't find NamespacePrefixMapper", e);
-		}
-
-		if (!setPrefixMapper && !warnedPrefixMapper) {
-			logger.info("Could not set prefix mapper (missing or incompatible JAXB) "
-					+ "- will use prefixes ns0, ns1, ..");
-			warnedPrefixMapper = true;
-		}
-	}
-
-	private Bundle bundle;
-
-	private org.apache.taverna.robundle.manifest.Manifest manifest;
-
-	public CombineManifest(org.apache.taverna.robundle.manifest.Manifest manifest) {
-		this.manifest = manifest;
-		this.bundle = manifest.getBundle();
-	}
-
-	@SuppressWarnings("deprecation")
-	private Collection<URI> bundleSubjects() throws IOException {
-		Set<URI> subjects = new HashSet<>();
-		subjects.add(bundle.getRoot().toUri());
-		for (PathMetadata pathMetadata : manifest.getAggregates()) {
-			subjects.add(pathMetadata.getUri());
-			if (pathMetadata.getFile() != null)
-				subjects.add(pathMetadata.getFile().toUri());
-			if (pathMetadata.getFolder() != null)
-				subjects.add(pathMetadata.getFolder().toUri());
-			// subjects.add(pathMetadata.getProxy());
-		}
-		for (PathAnnotation a : manifest.getAnnotations())
-			subjects.add(a.getUri());
-		subjects.remove(null);
-		return subjects;
-	}
-
-	public Path createManifestXML() throws IOException {
-		OmexManifest omexManifest = makeOmexManifest();
-
-		Path manifestXml = manifestXmlPath(bundle);
-		createDirectories(manifestXml.getParent());
-		try (OutputStream outStream = newOutputStream(manifestXml)) {
-			try {
-				createMarshaller().marshal(omexManifest, outStream);
-			} catch (JAXBException e) {
-				throw new RuntimeException("Could not serialize OMEX Manifest",
-						e);
-			}
-		}
-		return manifestXml;
-	}
-
-	private void findAnnotations() throws IOException {
-		Path metadataRdf = null;
-		for (PathMetadata agg : manifest.getAggregates())
-			if (OMEX_METADATA.equals(agg.getConformsTo())) {
-				metadataRdf = agg.getFile();
-				break; // TODO: Support not just the first one
-				// TODO: support external metadata with agg.getUri() ?
-			}
-		if (metadataRdf == null)
-			// fallback to hard-coded filename
-			metadataRdf = bundle.getRoot().resolve("metadata.rdf");
-		if (!exists(metadataRdf))
-			return;
-
-		Model metadata;
-		try {
-			metadata = parseRDF(metadataRdf);
-		} catch (IOException e) {
-			logger.log(WARNING, "Can't read " + metadataRdf, e);
-			return;
-		} catch (RiotException e) {
-			logger.log(WARNING, "Can't parse " + metadataRdf, e);
-			return;
-		}
-
-		for (URI about : bundleSubjects()) {
-			Resource resource = metadata.getResource(about.toString());
-			if (!metadata.containsResource(resource))
-				continue;
-
-			PathAnnotation ann = new PathAnnotation();
-			ann.setAbout(manifest.relativeToBundleRoot(about));
-			ann.setContent(manifest.relativeToBundleRoot(metadataRdf.toUri()));
-			manifest.getAnnotations().add(ann);
-
-			// Extract information that could be in our manifest
-			PathMetadata pathMetadata = manifest.getAggregation(about);
-
-			// Created date. We'll prefer dcModified.
-			Property dcCreated = metadata
-					.getProperty("http://purl.org/dc/terms/created");
-			Property dcModified = metadata
-					.getProperty("http://purl.org/dc/terms/modified");
-			Statement createdSt = resource.getProperty(dcModified);
-			if (createdSt == null)
-				createdSt = resource.getProperty(dcCreated);
-			if (createdSt != null) {
-				FileTime fileTime = literalAsFileTime(createdSt.getObject());
-				if (fileTime == null && createdSt.getResource().isResource()) {
-					// perhaps one of those strange mixups of XML and RDF...
-					Property dcW3CDTF = metadata
-							.getProperty("http://purl.org/dc/terms/W3CDTF");
-					Statement w3cSt = createdSt.getResource().getProperty(
-							dcW3CDTF);
-					if (w3cSt != null)
-						fileTime = literalAsFileTime(w3cSt.getObject());
-				}
-				if (fileTime != null) {
-					pathMetadata.setCreatedOn(fileTime);
-					if (pathMetadata.getFile() != null)
-						setLastModifiedTime(pathMetadata.getFile(),
-								fileTime);
-				}
-			}
-
-			for (RDFNode s : creatingAgentsFor(resource)) {
-				if (pathMetadata.getCreatedBy() != null) {
-					logger.warning("Ignoring additional createdBy agents for "
-							+ resource);
-					break;
-				}
-				if (s.isLiteral()) {
-					pathMetadata.setCreatedBy(new Agent(s.asLiteral()
-							.getLexicalForm()));
-					continue;
-				}
-				Resource agentResource = s.asResource();
-				Agent agent = new Agent();
-				if (agentResource.isURIResource()) {
-					URI agentUri = URI.create(agentResource.getURI());
-					if (agentResource.getURI().startsWith("http://orcid.org/"))
-						agent.setOrcid(agentUri);
-					else
-						agent.setUri(agentUri);
-				} else {
-					Resource mbox = mboxForAgent(agentResource);
-					if (mbox != null && mbox.isURIResource())
-						agent.setUri(URI.create(mbox.getURI()));
-				}
-				agent.setName(nameForAgent(agentResource));
-				pathMetadata.setCreatedBy(agent);
-			}
-			if (pathMetadata.getFile().equals(bundle.getRoot())
-					|| pathMetadata.getFile().equals(metadataRdf)) {
-				// Statements where about the RO itself
-				manifest.setCreatedOn(pathMetadata.getCreatedOn());
-				manifest.setCreatedBy(pathMetadata.getCreatedBy());
-			}
-		}
-	}
-
-	private OmexManifest makeOmexManifest() {
-		Path manifestXml = bundle.getRoot().resolve("manifest.xml");
-		OmexManifest omexManifest = objectFactory.createOmexManifest();
-
-		PathMetadata aggr = manifest.getAggregation(manifestXml);
-		if (aggr.getConformsTo() == null) {
-			// Add the manifest itself
-			aggr.setConformsTo(URI.create(OMEX_MANIFEST));
-		}
-
-		for (PathMetadata metadata : manifest.getAggregates()) {
-			Content content = objectFactory.createContent();
-			Path file = metadata.getFile();
-
-			if (file == null) {
-				content.setLocation(metadata.getUri().toString());
-			} else {
-				Path relPath = metadata.getFile().relativize(bundle.getRoot());
-				content.setLocation("./" + relPath);
-			}
-			if (metadata.getMediatype() != null
-					&& !metadata.getMediatype().isEmpty()) {
-				content.setFormat(metadata.getMediatype());
-			} else if (metadata.getConformsTo() != null) {
-				content.setFormat(metadata.getConformsTo().toString());
-			} else {
-				// Binary fallback as 'format' is required attribute
-				content.setFormat("application/octet-stream");
-			}
-
-			// TODO: Handle 'master' attribute
-
-			omexManifest.getContent().add(content);
-		}
-		// TODO: Should we add .ro/manifest.json and .ro/* ?
-		return omexManifest;
-	}
-
-	public void readCombineArchive() throws IOException {
-		readManifestXML();
-		findAnnotations();
-
-	}
-
-	public void readManifestXML() throws IOException {
-		Path manifestXml = manifestXmlPath(bundle);
-		OmexManifest omexManifest;
-		try (InputStream inStream = newInputStream(manifestXml)) {
-			InputSource src = new InputSource(inStream);
-			Source source = new SAXSource(src);
-			omexManifest = createUnMarshaller().unmarshal(source,
-					OmexManifest.class).getValue();
-			// omexManifest = (OmexManifest) createUnMarshaller().unmarshal(inStream);
-		} catch (JAXBException | ClassCastException e) {
-			// logger.warning("Could not parse " + manifestXml);
-			throw new IOException("Could not parse " + manifestXml, e);
-		}
-		if (!manifest.getManifest().contains(manifestXml))
-			manifest.getManifest().add(manifestXml);
-		for (Content c : omexManifest.getContent()) {
-			PathMetadata metadata;
-			if (c.getLocation().contains(":")) {
-				try {
-					URI uri = new URI(c.getLocation());
-					if (!uri.isAbsolute()) {
-						logger.warning("Not an absolute URI, but contains :"
-								+ c.getLocation());
-						continue;
-					}
-					metadata = manifest.getAggregation(uri);
-				} catch (URISyntaxException e) {
-					logger.warning("Invalid URI " + c.getLocation());
-					continue;
-				}
-			} else {
-				Path path = bundle.getRoot().resolve(c.getLocation());
-				if (!exists(path)) {
-					logger.warning(MANIFEST_XML + " listed relative path "
-							+ path + ", but it does not exist in bundle");
-					continue;
-				}
-				metadata = manifest.getAggregation(path);
-			}
-
-			// Format - is it an URI or media type?
-			if (c.getFormat().contains(":")) {
-				metadata.setConformsTo(URI.create(c.getFormat()));
-			} else if (!c.getFormat().isEmpty()) {
-				metadata.setMediatype(c.getFormat());
-			} else if (metadata.getFile() != null) {
-				metadata.setMediatype(manifest.guessMediaType(metadata
-						.getFile()));
-			} // else: Not needed for URIs
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/odf/ODFManifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/odf/ODFManifest.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/odf/ODFManifest.java
deleted file mode 100644
index 4f96679..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/odf/ODFManifest.java
+++ /dev/null
@@ -1,321 +0,0 @@
-package org.apache.taverna.robundle.manifest.odf;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.nio.file.Files.createDirectories;
-import static java.nio.file.Files.exists;
-import static java.nio.file.Files.isRegularFile;
-import static java.nio.file.Files.newInputStream;
-import static java.nio.file.Files.newOutputStream;
-import static java.nio.file.Files.size;
-import static java.util.logging.Level.FINE;
-import static java.util.logging.Level.WARNING;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.math.BigInteger;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-
-import oasis.names.tc.opendocument.xmlns.manifest._1.FileEntry;
-import oasis.names.tc.opendocument.xmlns.manifest._1.Manifest;
-import oasis.names.tc.opendocument.xmlns.manifest._1.ObjectFactory;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.manifest.PathMetadata;
-
-import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
-
-public class ODFManifest {
-	public static class ManifestNamespacePrefixMapperJAXB_RI extends
-			NamespacePrefixMapper {
-		@Override
-		public String[] getPreDeclaredNamespaceUris() {
-			// TODO Auto-generated method stub
-			return super.getPreDeclaredNamespaceUris();
-		}
-
-		@Override
-		public String getPreferredPrefix(String namespaceUri,
-				String suggestion, boolean requirePrefix) {
-			if (namespaceUri
-					.equals("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"))
-				return "manifest";
-			return suggestion;
-		}
-	}
-
-	public static final String CONTAINER_XML = "META-INF/container.xml";
-	private static JAXBContext jaxbContext;
-	private static Logger logger = Logger.getLogger(ODFManifest.class
-			.getCanonicalName());
-
-	public static final String MANIFEST_XML = "META-INF/manifest.xml";
-
-	private static final String ODF_MANIFEST_VERSION = "1.2";
-	private static boolean warnedPrefixMapper;
-
-	public static boolean containsManifest(Bundle bundle) {
-		return isRegularFile(manifestXmlPath(bundle));
-	}
-
-	protected static synchronized Marshaller createMarshaller()
-			throws JAXBException {
-		Marshaller marshaller = getJaxbContext().createMarshaller();
-		setPrefixMapper(marshaller);
-		return marshaller;
-	}
-	protected static synchronized Unmarshaller createUnMarshaller()
-			throws JAXBException {
-		return getJaxbContext().createUnmarshaller();
-	}
-
-	protected static synchronized JAXBContext getJaxbContext()
-			throws JAXBException {
-		if (jaxbContext == null) {
-			jaxbContext = JAXBContext.newInstance(ObjectFactory.class
-					// ,
-					// org.oasis_open.names.tc.opendocument.xmlns.container.ObjectFactory.class,
-					// org.w3._2000._09.xmldsig_.ObjectFactory.class,
-					// org.w3._2001._04.xmlenc_.ObjectFactory.class
-					);
-		}
-		return jaxbContext;
-	}
-
-	private static Path manifestXmlPath(Bundle bundle) {
-		return bundle.getRoot().resolve(MANIFEST_XML);
-	}
-
-	protected static void setPrefixMapper(Marshaller marshaller) {
-		boolean setPrefixMapper = false;
-
-		try {
-			/*
-			 * This only works with JAXB RI, in which case we can set the
-			 * namespace prefix mapper
-			 */
-			Class.forName("com.sun.xml.bind.marshaller.NamespacePrefixMapper");
-			marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper",
-					new ManifestNamespacePrefixMapperJAXB_RI());
-			/*
-			 * Note: A similar mapper for the built-in java
-			 * (com.sun.xml.bind.internal.namespacePrefixMapper) is no longer
-			 * included here, as it will not (easily) compile with Maven.
-			 */
-			setPrefixMapper = true;
-		} catch (Exception e) {
-			logger.log(FINE, "Can't find NamespacePrefixMapper", e);
-		}
-
-		if (!setPrefixMapper && !warnedPrefixMapper) {
-			logger.info("Could not set prefix mapper (missing or incompatible JAXB) "
-					+ "- will use prefixes ns0, ns1, ..");
-			warnedPrefixMapper = true;
-		}
-	}
-
-	private Bundle bundle;
-
-	// protected void prepareContainerXML() throws IOException {
-	//
-	//
-	// /* Check if we should prune <rootFiles> */
-	// Iterator<Object> iterator = containerXml.getValue().getRootFilesOrAny()
-	// .iterator();
-	// boolean foundAlready = false;
-	// while (iterator.hasNext()) {
-	// Object anyOrRoot = iterator.next();
-	// if (!(anyOrRoot instanceof JAXBElement)) {
-	// continue;
-	// }
-	// @SuppressWarnings("rawtypes")
-	// JAXBElement elem = (JAXBElement) anyOrRoot;
-	// if (!elem.getDeclaredType().equals(RootFiles.class)) {
-	// continue;
-	// }
-	// RootFiles rootFiles = (RootFiles) elem.getValue();
-	// if (foundAlready
-	// || (rootFiles.getOtherAttributes().isEmpty() && rootFiles
-	// .getAnyOrRootFile().isEmpty())) {
-	// // Delete it!
-	// System.err.println("Deleting unneccessary <rootFiles>");
-	// iterator.remove();
-	// }
-	// foundAlready = true;
-	// }
-	//
-	// Marshaller marshaller;
-	// OutputStream outStream = null;
-	// try {
-	// marshaller = createMarshaller();
-	// // XMLStreamWriter xmlStreamWriter = XMLOutputFactory
-	// // .newInstance().createXMLStreamWriter(outStream);
-	// // xmlStreamWriter.setDefaultNamespace(containerElem.getName()
-	// // .getNamespaceURI());
-	// //
-	// // xmlStreamWriter.setPrefix("dsig",
-	// // "http://www.w3.org/2000/09/xmldsig#");
-	// // xmlStreamWriter.setPrefix("xmlenc",
-	// // "http://www.w3.org/2001/04/xmlenc#");
-	// outStream = odfPackage.insertOutputStream(CONTAINER_XML);
-	//
-	// // FIXME: Set namespace prefixes and default namespace
-	//
-	// marshaller.setProperty("jaxb.formatted.output", true);
-	//
-	// // TODO: Ensure using default namespace
-	// marshaller.marshal(containerXml, outStream);
-	//
-	// } catch (IOException e) {
-	// throw e;
-	// } catch (Exception e) {
-	// throw new IOException("Could not parse " + CONTAINER_XML, e);
-	// } finally {
-	// if (outStream != null) {
-	// outStream.close();
-	// }
-	// }
-	// }
-	//
-	// @SuppressWarnings("unchecked")
-	// protected void parseContainerXML() throws IOException {
-	// createdContainerXml = false;
-	// InputStream containerStream = getResourceAsInputStream(CONTAINER_XML);
-	// if (containerStream == null) {
-	// // Make an empty containerXml
-	// Container container = containerFactory.createContainer();
-	// containerXml = containerFactory.createContainer(container);
-	// createdContainerXml = true;
-	// return;
-	// }
-	// try {
-	// Unmarshaller unMarshaller = createUnMarshaller();
-	// containerXml = (JAXBElement<Container>) unMarshaller
-	// .unmarshal(containerStream);
-	// } catch (JAXBException e) {
-	// throw new IOException("Could not parse " + CONTAINER_XML, e);
-	// }
-	//
-	// }
-
-	private org.apache.taverna.robundle.manifest.Manifest manifest;
-
-	private ObjectFactory manifestFactory = new ObjectFactory();
-
-	public ODFManifest(org.apache.taverna.robundle.manifest.Manifest manifest) {
-		this.manifest = manifest;
-		this.bundle = manifest.getBundle();
-	}
-
-	public Path createManifestXML() throws IOException {
-		Manifest odfManifest = manifestFactory.createManifest();
-		odfManifest.setVersion(ODF_MANIFEST_VERSION);
-		for (PathMetadata pathMetadata : manifest.getAggregates()) {
-			Path path = pathMetadata.getFile();
-			if (path == null)
-				logger.finest("Skipping non-path entry "
-						+ pathMetadata.getUri());
-			// if (! Files.isRegularFile(path)) {
-			// logger.fine("Not adding " + path +
-			// " to  manifest, not a regular file");
-			// }
-			FileEntry entry = manifestFactory.createFileEntry();
-			entry.setFullPath(bundle.getRoot().relativize(path).toString());
-			if (pathMetadata.getMediatype() != null)
-				entry.setMediaType(pathMetadata.getMediatype());
-			else
-				entry.setMediaType("application/octet-stream");
-
-			try {
-				entry.setSize(BigInteger.valueOf(size(path)));
-			} catch (IOException e) {
-				logger.log(WARNING, "Can't find size of " + path, e);
-			}
-			if (pathMetadata.getConformsTo() != null)
-				entry.setVersion(pathMetadata.getConformsTo().toString());
-			odfManifest.getFileEntry().add(entry);
-		}
-		Path manifestXml = manifestXmlPath(bundle);
-		createDirectories(manifestXml.getParent());
-		try (OutputStream outStream = newOutputStream(manifestXml)) {
-			try {
-				createMarshaller().marshal(odfManifest, outStream);
-			} catch (JAXBException e) {
-				throw new RuntimeException("Could not serialize ODF Manifest",
-						e);
-			}
-		}
-		return manifestXml;
-
-	}
-
-	public void readManifestXML() throws IOException {
-		Path manifestXml = manifestXmlPath(bundle);
-		Manifest odfManifest;
-		try (InputStream inStream = newInputStream(manifestXml)) {
-			odfManifest = (Manifest) createUnMarshaller().unmarshal(inStream);
-		} catch (JAXBException e) {
-			// logger.warning("Could not parse " + manifestXml);
-			throw new IOException("Could not parse " + manifestXml, e);
-		}
-		if (!manifest.getManifest().contains(manifestXml))
-			manifest.getManifest().add(manifestXml);
-		for (FileEntry f : odfManifest.getFileEntry()) {
-			Path path = bundle.getRoot().resolve(f.getFullPath());
-			if (!exists(path)) {
-				logger.warning(MANIFEST_XML + " listed " + path
-						+ ", but it does not exist in bundle");
-				continue;
-			}
-			PathMetadata metadata = manifest.getAggregation(path);
-			if (f.getMediaType() != null && f.getMediaType().contains("/"))
-				metadata.setMediatype(f.getMediaType());
-			if (f.getEncryptionData() != null) {
-				logger.warning("Unsupported encryption for " + path);
-				continue;
-			}
-			try {
-				if (f.getVersion() != null)
-					metadata.setConformsTo(new URI(f.getVersion()));
-			} catch (URISyntaxException e) {
-				logger.warning("Ignoring unsupported version " + f.getVersion());
-			}
-			if (isRegularFile(path) && f.getSize() != null) {
-				long actualSize = size(path);
-				long expectedSize = f.getSize().longValue();
-				if (expectedSize != actualSize)
-					logger.warning("Wrong file size for " + path
-							+ ", expected: " + expectedSize + ", actually: "
-							+ actualSize);
-			}
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/PathHelper.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/PathHelper.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/PathHelper.java
deleted file mode 100644
index e8bbcc6..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/PathHelper.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.apache.taverna.robundle.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-
-public class PathHelper {
-	private static final URI ROOT = URI.create("/");
-
-	public static URI relativizeFromBase(String uri, URI base) {
-		return relativizeFromBase(URI.create(uri), base);
-	}
-
-	public static URI relativizeFromBase(URI uri, URI base) {
-		return ROOT.resolve(base.relativize(uri));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RDFUtils.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RDFUtils.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RDFUtils.java
deleted file mode 100644
index ee3575e..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RDFUtils.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.taverna.robundle.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDdateTime;
-import static java.nio.file.attribute.FileTime.fromMillis;
-
-import java.nio.file.attribute.FileTime;
-import java.util.logging.Logger;
-
-import com.hp.hpl.jena.datatypes.DatatypeFormatException;
-import com.hp.hpl.jena.datatypes.xsd.XSDDateTime;
-import com.hp.hpl.jena.rdf.model.Literal;
-import com.hp.hpl.jena.rdf.model.RDFNode;
-
-public class RDFUtils {
-	private static final Logger logger = Logger.getLogger(RDFUtils.class
-			.getCanonicalName());
-
-	public static FileTime literalAsFileTime(RDFNode rdfNode) {
-		if (rdfNode == null)
-			return null;
-		if (!rdfNode.isLiteral()) {
-			logger.warning("Expected literal. not " + rdfNode);
-			return null;
-		}
-		Literal literal = rdfNode.asLiteral();
-		Object value = literal.getValue();
-		XSDDateTime dateTime;
-		if (value instanceof XSDDateTime) {
-			dateTime = (XSDDateTime) value;
-		} else {
-			logger.info("Literal not an XSDDateTime, but: " + value.getClass()
-					+ " " + value);
-
-			// Try to parse it anyway
-			try {
-				dateTime = (XSDDateTime) XSDdateTime.parse(literal
-						.getLexicalForm());
-			} catch (DatatypeFormatException e) {
-				logger.warning("Invalid datetime: " + literal);
-				return null;
-			}
-		}
-		return fromMillis(dateTime.asCalendar().getTimeInMillis());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveCopyFileVisitor.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveCopyFileVisitor.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveCopyFileVisitor.java
deleted file mode 100644
index ae42ca4..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveCopyFileVisitor.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package org.apache.taverna.robundle.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.lang.Integer.MAX_VALUE;
-import static java.nio.file.FileVisitOption.FOLLOW_LINKS;
-import static java.nio.file.FileVisitResult.CONTINUE;
-import static java.nio.file.FileVisitResult.SKIP_SUBTREE;
-import static java.nio.file.Files.copy;
-import static java.nio.file.Files.getFileAttributeView;
-import static java.nio.file.Files.isDirectory;
-import static java.nio.file.Files.readAttributes;
-import static java.nio.file.Files.walkFileTree;
-import static java.nio.file.LinkOption.NOFOLLOW_LINKS;
-import static java.nio.file.StandardCopyOption.COPY_ATTRIBUTES;
-import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
-import static java.util.EnumSet.noneOf;
-import static org.apache.taverna.robundle.utils.RecursiveCopyFileVisitor.RecursiveCopyOption.IGNORE_ERRORS;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.CopyOption;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.FileVisitOption;
-import java.nio.file.FileVisitResult;
-import java.nio.file.LinkOption;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributeView;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.Arrays;
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.Set;
-
-public class RecursiveCopyFileVisitor extends SimpleFileVisitor<Path> {
-	public enum RecursiveCopyOption implements java.nio.file.CopyOption {
-		/**
-		 * Ignore any errors, copy as much as possible. The default is to stop
-		 * on the first IOException.
-		 */
-		IGNORE_ERRORS,
-	}
-
-	public static void copyRecursively(final Path source,
-			final Path destination, final CopyOption... copyOptions)
-			throws IOException {
-		final Set<CopyOption> copyOptionsSet = new HashSet<>(
-				Arrays.asList(copyOptions));
-
-		if (!isDirectory(source))
-			throw new FileNotFoundException("Not a directory: " + source);
-		if (isDirectory(destination)
-				&& !copyOptionsSet.contains(REPLACE_EXISTING))
-			throw new FileAlreadyExistsException(destination.toString());
-		Path destinationParent = destination.getParent();
-		if (destinationParent != null && !isDirectory(destinationParent))
-			throw new FileNotFoundException("Not a directory: "
-					+ destinationParent);
-
-		RecursiveCopyFileVisitor visitor = new RecursiveCopyFileVisitor(
-				destination, copyOptionsSet, source);
-		Set<FileVisitOption> walkOptions = noneOf(FileVisitOption.class);
-		if (!copyOptionsSet.contains(NOFOLLOW_LINKS))
-			walkOptions = EnumSet.of(FOLLOW_LINKS);
-		walkFileTree(source, walkOptions, MAX_VALUE, visitor);
-	}
-
-	private final CopyOption[] copyOptions;
-	private final Set<CopyOption> copyOptionsSet;
-	private final Path destination;
-	private boolean ignoreErrors;
-	private final LinkOption[] linkOptions;
-	private final Path source;
-
-	RecursiveCopyFileVisitor(Path destination, Set<CopyOption> copyOptionsSet,
-			Path source) {
-		this.destination = destination;
-		this.source = source;
-		this.copyOptionsSet = new HashSet<>(copyOptionsSet);
-
-		HashSet<Object> linkOptionsSet = new HashSet<>();
-		for (CopyOption option : copyOptionsSet) {
-			copyOptionsSet.add(option);
-			if (option instanceof LinkOption)
-				linkOptionsSet.add((LinkOption) option);
-		}
-		this.linkOptions = linkOptionsSet
-				.toArray(new LinkOption[(linkOptionsSet.size())]);
-
-		this.ignoreErrors = copyOptionsSet.contains(IGNORE_ERRORS);
-
-		/*
-		 * To avoid UnsupporteOperationException from native java.nio operations
-		 * we strip our own options out
-		 */
-		copyOptionsSet.removeAll(EnumSet.allOf(RecursiveCopyOption.class));
-		copyOptions = copyOptionsSet.toArray(new CopyOption[(copyOptionsSet
-				.size())]);
-	}
-
-	private URI pathOnly(URI uri) {
-		if (!uri.isAbsolute())
-			return uri;
-		String path = uri.getRawPath();
-		// if (! uri.isOpaque()) {
-		// path = uri.getPath();
-		// }
-		if (uri.getScheme().equals("jar")) {
-			String part = uri.getSchemeSpecificPart();
-			int slashPos = part.indexOf("!/");
-			path = part.substring(slashPos + 1, part.length());
-		}
-		if (path == null)
-			throw new IllegalArgumentException("Can't extract path from URI "
-					+ uri);
-
-		if (!path.startsWith("/"))
-			path = "/" + path;
-		try {
-			return new URI(null, null, path, null);
-		} catch (URISyntaxException e) {
-			throw new IllegalArgumentException("Can't extract path from URI "
-					+ uri, e);
-		}
-	}
-
-	@Override
-	public FileVisitResult postVisitDirectory(Path dir, IOException exc)
-			throws IOException {
-		try {
-			if (copyOptionsSet.contains(COPY_ATTRIBUTES)) {
-				/*
-				 * Copy file times. Inspired by
-				 * java.nio.file.CopyMoveHelper.copyToForeignTarget()
-				 */
-				BasicFileAttributes attrs = readAttributes(dir,
-						BasicFileAttributes.class, linkOptions);
-				BasicFileAttributeView view = getFileAttributeView(
-						toDestination(dir), BasicFileAttributeView.class,
-						linkOptions);
-				view.setTimes(attrs.lastModifiedTime(), attrs.lastAccessTime(),
-						attrs.creationTime());
-			}
-			return CONTINUE;
-		} catch (IOException ex) {
-			return visitFileFailed(dir, ex);
-		}
-	}
-
-	@Override
-	public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
-			throws IOException {
-		try {
-			Path destinationDir = toDestination(dir);
-			if (copyOptionsSet.contains(REPLACE_EXISTING)
-					&& isDirectory(destinationDir))
-				return CONTINUE;
-			copy(dir, destinationDir, copyOptions);
-			// Files.createDirectory(destinationDir);
-			// System.out.println("Created " + destinationDir + " " +
-			// destinationDir.toUri());
-			return CONTINUE;
-		} catch (IOException ex) {
-			// Eat or rethrow depending on IGNORE_ERRORS
-			return visitFileFailed(dir, ex);
-		}
-	}
-
-	private Path toDestination(Path path) {
-		if (path.equals(source))
-			// Top-level folder
-			return destination;
-		// Path relativize = source.relativize(path);
-		// return destination.resolve(relativize);
-		/*
-		 * The above does not work as ZipPath throws ProviderMisMatchException
-		 * when given a relative filesystem Path
-		 */
-
-		URI rel = pathOnly(uriWithSlash(source)).relativize(
-				pathOnly(path.toUri()));
-		if (rel.isAbsolute())
-			throw new IllegalStateException("Can't relativize " + rel);
-		URI dest = uriWithSlash(destination).resolve(rel);
-		return destination.getFileSystem().provider().getPath(dest);
-	}
-
-	private URI uriWithSlash(Path dir) {
-		URI uri = dir.toUri();
-		if (!uri.toString().endsWith("/"))
-			return URI.create(uri.toString() + "/");
-		return uri;
-	}
-
-	@Override
-	public FileVisitResult visitFile(final Path file, BasicFileAttributes attrs)
-			throws IOException {
-		try {
-			copy(file, toDestination(file), copyOptions);
-			return CONTINUE;
-		} catch (IOException ex) {
-			return visitFileFailed(file, ex);
-		}
-	}
-
-	@Override
-	public FileVisitResult visitFileFailed(Path file, IOException exc)
-			throws IOException {
-		if (ignoreErrors)
-			return SKIP_SUBTREE;
-		// Or - throw exception
-		return super.visitFileFailed(file, exc);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveDeleteVisitor.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveDeleteVisitor.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveDeleteVisitor.java
deleted file mode 100644
index 92f6135..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/RecursiveDeleteVisitor.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.apache.taverna.robundle.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.nio.file.FileVisitResult.CONTINUE;
-import static java.nio.file.Files.delete;
-import static java.nio.file.Files.isDirectory;
-import static java.nio.file.Files.walkFileTree;
-
-import java.io.IOException;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
-
-public class RecursiveDeleteVisitor extends SimpleFileVisitor<Path> {
-	public static void deleteRecursively(Path p) throws IOException {
-		if (isDirectory(p))
-			walkFileTree(p, new RecursiveDeleteVisitor());
-		else
-			delete(p);
-	}
-
-	@Override
-	public FileVisitResult postVisitDirectory(Path dir, IOException exc)
-			throws IOException {
-		super.postVisitDirectory(dir, exc);
-		delete(dir);
-		return CONTINUE;
-	}
-
-	@Override
-	public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
-			throws IOException {
-		delete(file);
-		return CONTINUE;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/TemporaryFiles.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/TemporaryFiles.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/TemporaryFiles.java
deleted file mode 100644
index 52f3520..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/utils/TemporaryFiles.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.taverna.robundle.utils;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.nio.file.Files.createTempDirectory;
-
-import java.io.IOException;
-import java.nio.file.Path;
-
-public class TemporaryFiles {
-	public static Path temporaryBundle() throws IOException {
-		Path tempDir = createTempDirectory("robundle");
-		tempDir.toFile().deleteOnExit();
-		/*
-		 * Why inside a tempDir? Because ZipFileSystemProvider creates
-		 * neighbouring temporary files per file that is written to zip, which
-		 * could mean a lot of temporary files directly in /tmp - making it
-		 * difficult to clean up
-		 */
-		Path bundle = tempDir.resolve("robundle.zip");
-		bundle.toFile().deleteOnExit();
-		return bundle;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileSystemProvider
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileSystemProvider b/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileSystemProvider
deleted file mode 100644
index 1025748..0000000
--- a/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileSystemProvider
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.robundle.fs.BundleFileSystemProvider

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileTypeDetector
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileTypeDetector b/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileTypeDetector
deleted file mode 100644
index 66fc906..0000000
--- a/taverna-robundle/src/main/resources/META-INF/services/java.nio.file.spi.FileTypeDetector
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.robundle.fs.BundleFileTypeDetector

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/contexts/bundle.jsonld
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/contexts/bundle.jsonld b/taverna-robundle/src/main/resources/contexts/bundle.jsonld
deleted file mode 100644
index 9ab7bb6..0000000
--- a/taverna-robundle/src/main/resources/contexts/bundle.jsonld
+++ /dev/null
@@ -1,141 +0,0 @@
-{
-  "http://purl.org/dc/terms/license" : 
-  "Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements.  See the NOTICE file distributed with\n this work for additional information regarding copyright ownership.\n The ASF licenses this file to You under the Apache License, Version 2.0\n (the \"License\"); you may not use this file except in compliance with\n the License.  You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n",
-  "@context": {
-    "ao": "http://purl.org/ao/",
-    "oa": "http://www.w3.org/ns/oa#",
-    "dc": "http://purl.org/dc/elements/1.1/",
-    "dct": "http://purl.org/dc/terms/",
-    "ore": "http://www.openarchives.org/ore/terms/",
-    "ro": "http://purl.org/wf4ever/ro#",
-    "roterms": "http://purl.org/wf4ever/roterms#",
-    "bundle": "http://purl.org/wf4ever/bundle#",
-    "prov": "http://www.w3.org/ns/prov#",
-    "pav": "http://purl.org/pav/",
-    "xsd": "http://www.w3.org/2001/XMLSchema#",
-    "foaf": "http://xmlns.com/foaf/0.1/",
-    "owl": "http://www.w3.org/2002/07/owl#",
-
-    "uri": "@id",
-    "id": {
-      "@id": "owl:sameAs",
-      "@type": "@id" },
-    "file": {
-      "@id": "owl:sameAs",
-      "@type": "@id" },
-    "annotation": {
-      "@id": "owl:sameAs",
-      "@type": "@id" },
-
-    "manifest": {
-        "@id": "ore:isDescribedBy",
-        "@type": "@id"
-    },
-
-    "createdOn": {
-        "@id": "pav:createdOn",
-        "@type": "xsd:dateTime"
-    },
-    "createdBy": {
-        "@id": "pav:createdBy",
-        "@type": "@id"
-    },
-    "aggregatedOn": {
-        "@id": "pav:createdOn",
-        "@type": "xsd:dateTime"
-    },
-    "aggregatedBy": {
-        "@id": "pav:createdBy",
-        "@type": "@id"
-    },
-    "authoredOn": {
-        "@id": "pav:authoredOn",
-        "@type": "xsd:dateTime"
-    },
-    "authoredBy": {
-        "@id": "pav:authoredBy",
-        "@type": "@id"
-    },
-    "curatedOn": {
-        "@id": "pav:curatedOn",
-        "@type": "xsd:dateTime"
-    },
-    "curatedBy": {
-        "@id": "pav:curatedBy",
-        "@type": "@id"
-    },
-    "contributedOn": {
-        "@id": "pav:contributedOn",
-        "@type": "xsd:dateTime"
-    },
-    "contributedBy": {
-        "@id": "pav:contributedBy",
-        "@type": "@id"
-    },
-    "retrievedOn": {
-        "@id": "pav:retrievedOn",
-        "@type": "xsd:dateTime"
-    },
-    "retrievedBy": {
-        "@id": "pav:retrievedBy",
-        "@type": "@id"
-    },
-    "retrievedFrom": {
-        "@id": "pav:retrievedFrom",
-        "@type": "@id"
-    },
-    "name": {
-        "@id": "foaf:name"
-    },
-    "orcid": {
-        "@id": "roterms:orcid",
-        "@type": "@id"
-    },
-
-    "history": {
-        "@id": "prov:has_provenance",
-        "@type": "@id"
-    },
-    "aggregates": {
-      "@id": "ore:aggregates",
-      "@type": "@id"
-    },
-    "mediatype": {
-        "@id": "dc:format"
-    },
-    "folder": {
-      "@id": "bundle:inFolder",
-      "@type": "@id"
-    },
-    "filename": {
-        "@id": "ro:entryName"
-    },
-    "proxy": {
-      "@id": "bundle:hasProxy",
-      "@type": "@id"
-    },
-    "bundledAs": {
-        "@id": "bundle:bundledAs",
-        "@type": "@id"
-    },
-    "conformsTo": {
-        "@id": "dct:conformsTo",
-        "@type": "@id"
-    },
-    "annotations": {
-      "@id": "bundle:hasAnnotation",
-      "@type": "@id"
-    },
-    "content": {
-       "@id": "oa:hasBody",
-       "@type": "@id"
-    },
-    "about": {
-       "@id": "oa:hasTarget",
-       "@type": "@id"
-    }
-
-  },
-  "http://purl.org/pav/retrievedFrom": { "@id": "https://raw.githubusercontent.com/wf4ever/ro/61b563e7e9941485ff6e7b338875d4015d734b6f/bundle/draft/context.json" } 
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/jarcache.json
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/jarcache.json b/taverna-robundle/src/main/resources/jarcache.json
deleted file mode 100644
index 34df158..0000000
--- a/taverna-robundle/src/main/resources/jarcache.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-  {
-  	"Content-Location": "https://w3id.org/bundle/context",
-  	"X-Classpath": "contexts/bundle.jsonld",
-  	"Content-Type": "application/ld+json"
-  }
-]
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/resources/ontologies/bundle.owl
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/resources/ontologies/bundle.owl b/taverna-robundle/src/main/resources/ontologies/bundle.owl
deleted file mode 100644
index 950ef2b..0000000
--- a/taverna-robundle/src/main/resources/ontologies/bundle.owl
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY ao "http://purl.org/ao/" >
-    <!ENTITY oa "http://www.w3.org/ns/oa#" >
-    <!ENTITY ro "http://purl.org/wf4ever/ro#" >
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY bundle "http://purl.org/wf4ever/bundle#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY ore "http://www.openarchives.org/ore/terms/" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://purl.org/wf4ever/bundle#"
-     xml:base="http://purl.org/wf4ever/bundle"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:ro="http://purl.org/wf4ever/ro#"
-     xmlns:ao="http://purl.org/ao/"
-     xmlns:oa="http://www.w3.org/ns/oa#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:bundle="http://purl.org/wf4ever/bundle#"
-     xmlns:ore="http://www.openarchives.org/ore/terms/">
-    <owl:Ontology rdf:about="http://purl.org/wf4ever/bundle">
-        <owl:imports rdf:resource="http://purl.org/wf4ever/ro"/>
-        <owl:versionIRI rdf:resource="http://purl.org/wf4ever/bundle/0.1.0-SNAPSHOT"/>
-        <owl:imports rdf:resource="http://www.w3.org/ns/oa#"/>
-    </owl:Ontology>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://purl.org/ao/annotatesResource -->
-
-    <rdf:Description rdf:about="&ao;annotatesResource">
-        <owl:equivalentProperty rdf:resource="&oa;hasTarget"/>
-    </rdf:Description>
-    
-
-
-    <!-- http://purl.org/ao/body -->
-
-    <rdf:Description rdf:about="&ao;body">
-        <owl:equivalentProperty rdf:resource="&oa;hasBody"/>
-    </rdf:Description>
-    
-
-
-    <!-- http://purl.org/wf4ever/bundle#hasAnnotation -->
-
-    <owl:ObjectProperty rdf:about="&bundle;hasAnnotation">
-        <rdfs:range rdf:resource="&ao;Annotation"/>
-        <rdfs:domain rdf:resource="&ro;ResearchObject"/>
-        <rdfs:subPropertyOf rdf:resource="&ore;aggregates"/>
-        <rdfs:range rdf:resource="&oa;Annotation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/wf4ever/bundle#hasProxy -->
-
-    <owl:ObjectProperty rdf:about="&bundle;hasProxy"/>
-    
-
-
-    <!-- http://purl.org/wf4ever/bundle#inFolder -->
-
-    <owl:ObjectProperty rdf:about="&bundle;inFolder">
-        <rdfs:range rdf:resource="&ro;Folder"/>
-        <rdfs:domain rdf:resource="&ro;Resource"/>
-        <rdfs:subPropertyOf rdf:resource="&ore;isAggregatedBy"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/aggregates -->
-
-    <rdf:Description rdf:about="&ore;aggregates">
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="&ore;aggregates"/>
-            <rdf:Description rdf:about="&bundle;inFolder"/>
-        </owl:propertyChainAxiom>
-    </rdf:Description>
-    
-
-
-    <!-- http://www.openarchives.org/ore/terms/proxyFor -->
-
-    <rdf:Description rdf:about="&ore;proxyFor">
-        <owl:inverseOf rdf:resource="&bundle;hasProxy"/>
-    </rdf:Description>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasBody -->
-
-    <rdf:Description rdf:about="&oa;hasBody"/>
-    
-
-
-    <!-- http://www.w3.org/ns/oa#hasTarget -->
-
-    <rdf:Description rdf:about="&oa;hasTarget"/>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net -->
-


[15/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowParser.java
deleted file mode 100644
index f103281..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowParser.java
+++ /dev/null
@@ -1,1214 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.util.Locale.ENGLISH;
-import static java.util.TimeZone.getTimeZone;
-import static java.util.UUID.randomUUID;
-import static java.util.logging.Level.SEVERE;
-import static java.util.logging.Level.WARNING;
-import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
-import static org.apache.taverna.scufl2.api.container.WorkflowBundle.WORKFLOW_BUNDLE_ROOT;
-import static org.apache.taverna.scufl2.api.core.Workflow.WORKFLOW_ROOT;
-import static org.apache.taverna.scufl2.xml.t2flow.jaxb.LinkType.DATAFLOW;
-import static org.apache.taverna.scufl2.xml.t2flow.jaxb.LinkType.MERGE;
-import static org.apache.taverna.scufl2.xml.t2flow.jaxb.LinkType.PROCESSOR;
-import static org.apache.taverna.scufl2.xml.t2flow.jaxb.Role.TOP;
-
-import java.io.CharArrayWriter;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.ServiceLoader;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-
-import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.common.Named;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Activity;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.AnnotatedGranularDepthPort;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.AnnotatedGranularDepthPorts;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.AnnotatedPort;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.AnnotatedPorts;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.AnnotationAssertionImpl.NetSfTavernaT2AnnotationAnnotationAssertionImpl;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.AnnotationChain;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Annotations;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Condition;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Conditions;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.CrossProduct;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Dataflow;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Datalinks;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DepthPort;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DepthPorts;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DispatchLayer;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DispatchStack;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.DotProduct;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.GranularDepthPort;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.GranularDepthPorts;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.IterationNode;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.IterationNodeParent;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Link;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Mapping;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ObjectFactory;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.PortProduct;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Processors;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.Raven;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.TopIterationNode;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class T2FlowParser {
-	private static final URI INTERNAL_DISPATCH_PREFIX = URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/");
-    private static final String TEXT_TURTLE = "text/turtle";
-	private static final String SEMANTIC_ANNOTATION = "net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation";
-	private static final String IDENTIFICATION_ASSERTION = "net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion";
-	private static final String T2FLOW_EXTENDED_XSD = "xsd/t2flow-extended.xsd";
-	@SuppressWarnings("unused")
-	private static final String T2FLOW_XSD = "xsd/t2flow.xsd";
-	private static final Logger logger = Logger.getLogger(T2FlowParser.class
-			.getCanonicalName());
-	public static final URI ravenURI = URI
-			.create("http://ns.taverna.org.uk/2010/xml/t2flow/raven/");
-	public static final URI configBeanURI = URI
-			.create("http://ns.taverna.org.uk/2010/xml/t2flow/configbean/");
-	public static final URI t2flowParserURI = URI
-			.create("http://ns.taverna.org.uk/2012/scufl2/t2flowParser");
-	// TODO: Find better example predicate
-	public static final URI exampleDataURI = URI
-			.create("http://biocatalogue.org/attribute/exampleData");
-	public static final String DEFAULT_PRODUCED_BY = "unspecified";
-
-	public static <T extends Named> T findNamed(Collection<T> namedObjects,
-			String name) {
-		for (T named : namedObjects)
-			if (named.getName().equals(name))
-				return named;
-		return null;
-	}
-
-	protected ThreadLocal<ParserState> parserState = new ThreadLocalParserState();
-
-	/**
-	 * A static class for the thread-local parser state.
-	 */
-	private static class ThreadLocalParserState extends ThreadLocal<ParserState> {
-		@Override
-		protected ParserState initialValue() {
-			return new ParserState();
-		};
-	}
-
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private static URITools uriTools = new URITools();
-    private static TransformerFactory transformerFactory;
-
-	protected Set<T2Parser> t2Parsers = null;
-	protected final JAXBContext jaxbContext;
-	private boolean strict = false;
-	private boolean validating = false;
-
-	public final boolean isValidating() {
-		return validating;
-	}
-
-	public final void setValidating(boolean validating) {
-		this.validating = validating;
-	}
-
-	protected ServiceLoader<T2Parser> discoveredT2Parsers;
-	protected final ThreadLocal<Unmarshaller> unmarshaller;
-	private Map<String, URI> predicates;
-
-	public T2FlowParser() throws JAXBException {
-		jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-		unmarshaller = new ThreadLocalUnmarshaller(jaxbContext);
-	}
-
-	/**
-	 * A static class for the thread-local unmarshaller.
-	 */
-	private static class ThreadLocalUnmarshaller extends
-			ThreadLocal<Unmarshaller> {
-		private final JAXBContext jaxbContext;
-
-		ThreadLocalUnmarshaller(JAXBContext jaxbContext) {
-			this.jaxbContext = jaxbContext;
-		}
-
-		@Override
-		protected Unmarshaller initialValue() {
-			try {
-				return jaxbContext.createUnmarshaller();
-			} catch (JAXBException e) {
-				logger.log(SEVERE, "Could not create unmarshaller", e);
-				return null;
-			}
-		};
-	}
-
-	protected ReceiverPort findReceiverPort(Workflow wf, Link sink)
-			throws ReaderException {
-		String portName = sink.getPort();
-		if (portName == null)
-			throw new ReaderException("Port name not specified");
-		String processorName = sink.getProcessor();
-		if (processorName == null) {
-			if (sink.getType().equals(PROCESSOR))
-				throw new ReaderException(
-						"Link type was processor, but no processor name found");
-			OutputWorkflowPort candidate = wf.getOutputPorts().getByName(
-					portName);
-			if (candidate == null)
-				throw new ReaderException("Link to unknown workflow port "
-						+ portName);
-			return candidate;
-		} else {
-			if (sink.getType().equals(DATAFLOW))
-				throw new ReaderException(
-						"Link type was dataflow, but processor name was found");
-			Processor processor = wf.getProcessors().getByName(processorName);
-			if (processor == null)
-				throw new ReaderException("Link to unknown processor "
-						+ processorName);
-			InputProcessorPort candidate = processor.getInputPorts().getByName(
-					portName);
-			if (candidate == null)
-				throw new ReaderException("Link to unknown port " + portName
-						+ " in " + processorName);
-			return candidate;
-		}
-	}
-
-	protected SenderPort findSenderPort(Workflow wf, Link source)
-			throws ReaderException {
-		if (source.getType().equals(MERGE))
-			throw new ReaderException(
-					"Link type Merge unexpected for sender ports");
-		String portName = source.getPort();
-		if (portName == null)
-			throw new ReaderException("Port name not specified");
-		String processorName = source.getProcessor();
-		if (processorName == null) {
-			if (source.getType().equals(PROCESSOR))
-				throw new ReaderException(
-						"Link type was processor, but no processor name found");
-			InputWorkflowPort candidate = wf.getInputPorts()
-					.getByName(portName);
-			if (candidate == null)
-				throw new ReaderException("Link from unknown workflow port "
-						+ portName);
-			return candidate;
-		} else {
-			if (source.getType().equals(DATAFLOW))
-				throw new ReaderException(
-						"Link type was dataflow, but processor name was found");
-			Processor processor = wf.getProcessors().getByName(processorName);
-			if (processor == null)
-				throw new ReaderException("Link from unknown processor "
-						+ processorName);
-			OutputProcessorPort candidate = processor.getOutputPorts()
-					.getByName(portName);
-			if (candidate == null)
-				throw new ReaderException("Link from unknown port " + portName
-						+ " in " + processorName);
-			return candidate;
-		}
-	}
-
-	protected T2Parser getT2Parser(URI classURI) {
-		for (T2Parser t2Parser : getT2Parsers())
-			if (t2Parser.canHandlePlugin(classURI))
-				return t2Parser;
-		return null;
-	}
-
-	public synchronized Set<T2Parser> getT2Parsers() {
-		Set<T2Parser> parsers = t2Parsers;
-		if (parsers != null)
-			return parsers;
-		parsers = new HashSet<>();
-		/*
-		 * TODO: Do we need to cache this, or is the cache in ServiceLoader fast
-		 * enough?
-		 */
-		if (discoveredT2Parsers == null)
-			discoveredT2Parsers = ServiceLoader.load(T2Parser.class);
-		for (T2Parser parser : discoveredT2Parsers)
-			parsers.add(parser);
-		return parsers;
-	}
-
-	public synchronized void setT2Parsers(Set<T2Parser> parsers) {
-		this.t2Parsers = parsers;
-	}
-
-	public boolean isStrict() {
-		return strict;
-	}
-
-	protected void makeProfile(org.apache.taverna.scufl2.xml.t2flow.jaxb.Workflow wf) {
-		// TODO: What should the default be? Should there be one? Who knows
-		Profile profile = new Profile(
-				wf.getProducedBy() == null ? DEFAULT_PRODUCED_BY
-						: wf.getProducedBy());
-		profile.setParent(parserState.get().getCurrentWorkflowBundle());
-		parserState.get().getCurrentWorkflowBundle().setMainProfile(profile);
-		parserState.get().setCurrentProfile(profile);
-	}
-
-	private URI makeRavenURI(Raven raven, String className) {
-		if (raven == null)
-			return ravenURI.resolve("undefined/" + uriTools.validFilename(className));
-
-		return ravenURI.resolve(uriTools.validFilename(raven.getGroup()) + "/"
-				+ uriTools.validFilename(raven.getArtifact()) + "/"
-				+ uriTools.validFilename(raven.getVersion()) + "/"
-				+ uriTools.validFilename(className));
-	}
-
-	private URI mapTypeFromRaven(Raven raven, String activityClass)
-			throws ReaderException {
-		URI classURI = makeRavenURI(raven, activityClass);
-		parserState.get().setCurrentT2Parser(null);
-		T2Parser t2Parser = getT2Parser(classURI);
-		if (t2Parser == null) {
-			String message = "Unknown T2 activity or dispatch layer "
-					+ classURI + ", install supporting T2Parser";
-			if (isStrict())
-				throw new ReaderException(message);
-			logger.warning(message);
-			return classURI;
-		}
-		parserState.get().setCurrentT2Parser(t2Parser);
-		return t2Parser.mapT2flowRavenIdToScufl2URI(classURI);
-	}
-
-	protected org.apache.taverna.scufl2.api.activity.Activity parseActivityAndAddToProfile(
-			Activity origActivity) throws ReaderException {
-		org.apache.taverna.scufl2.api.activity.Activity newActivity = parseActivity(origActivity);
-		newActivity.setName(parserState.get().getCurrentProcessorBinding()
-				.getName());
-		parserState.get().getCurrentProfile().getActivities()
-				.addWithUniqueName(newActivity);
-		newActivity.setParent(parserState.get().getCurrentProfile());
-		return newActivity;
-	}
-
-	protected org.apache.taverna.scufl2.api.activity.Activity parseActivity(
-			Activity origActivity) throws ReaderException {
-		Raven raven = origActivity.getRaven();
-		String activityClass = origActivity.getClazz();
-		URI activityId = mapTypeFromRaven(raven, activityClass);
-		org.apache.taverna.scufl2.api.activity.Activity newActivity = new org.apache.taverna.scufl2.api.activity.Activity();
-		newActivity.setType(activityId);
-		return newActivity;
-	}
-
-	protected void parseActivityBinding(Activity origActivity,
-			int activityPosition) throws ReaderException, JAXBException {
-		ProcessorBinding processorBinding = new ProcessorBinding();
-
-		processorBinding.setName(parserState.get().getCurrentProcessor()
-				.getName());
-		parserState.get().getCurrentProfile().getProcessorBindings()
-				.addWithUniqueName(processorBinding);
-
-		processorBinding.setBoundProcessor(parserState.get()
-				.getCurrentProcessor());
-		parserState.get().setCurrentProcessorBinding(processorBinding);
-		org.apache.taverna.scufl2.api.activity.Activity newActivity = parseActivityAndAddToProfile(origActivity);
-		parserState.get().setCurrentActivity(newActivity);
-
-		parserState.get().getCurrentProfile().getActivities().add(newActivity);
-		processorBinding.setBoundActivity(newActivity);
-		processorBinding.setActivityPosition(activityPosition);
-
-		parserState.get().setCurrentConfigurable(newActivity);
-
-		try {
-			parseConfigurationAndAddToProfile(origActivity.getConfigBean());
-		} catch (JAXBException e) {
-			if (isStrict())
-				throw e;
-			logger.log(WARNING, "Can't configure activity" + newActivity, e);
-		}
-
-		parseActivityInputMap(origActivity.getInputMap());
-		parseActivityOutputMap(origActivity.getOutputMap());
-
-		parserState.get().setCurrentConfigurable(null);
-		parserState.get().setCurrentActivity(null);
-		parserState.get().setCurrentProcessorBinding(null);
-	}
-
-	protected Configuration parseConfigurationAndAddToProfile(ConfigBean configBean) throws JAXBException, ReaderException {
-		Configuration configuration = parseConfiguration(configBean);
-		if (configuration == null)
-			return null;
-		Profile profile = parserState.get().getCurrentProfile();
-		configuration.setName(parserState.get().getCurrentActivity()
-				.getName());
-        profile.getConfigurations().addWithUniqueName(configuration);
-        configuration.setConfigures(parserState.get().getCurrentConfigurable());
-        return configuration;
-	}
-	
-	protected Configuration parseConfiguration(ConfigBean configBean)
-			throws JAXBException, ReaderException {
-		// Placeholder to check later if no configuration have been provided
-		Configuration UNCONFIGURED = new Configuration();
-		
-		Configuration configuration = UNCONFIGURED;
-		if (parserState.get().getCurrentT2Parser() == null) {
-			String message = "No config parser for " 
-					+ parserState.get().getCurrentConfigurable();
-			if (isStrict())
-				throw new ReaderException(message);
-			return null;
-		}
-
-		try {
-			configuration = parserState.get().getCurrentT2Parser()
-					.parseConfiguration(this, configBean, parserState.get());
-		} catch (ReaderException e) {
-			if (isStrict())
-				throw e;
-		}
-		if (configuration == null)
-			// Perfectly valid - true for say Invoke layer
-			return null;
-		
-		if (configuration == UNCONFIGURED) {
-			if (isStrict())
-				throw new ReaderException("No configuration returned from "
-						+ parserState.get().getCurrentT2Parser() + " for "						
-						+ parserState.get().getCurrentConfigurable());
-			// We'll have to fall back by just keeping the existing XML
-			
-			configuration = new Configuration();
-			configuration.setType(configBeanURI.resolve("Config"));
-			String xml = elementToXML((Element) configBean.getAny());
-			String encoding = configBean.getEncoding();
-			ObjectNode json = (ObjectNode)configuration.getJson();
-			json.put(encoding, xml);
-		}
-		return configuration;
-	}
-
-	public static String elementToXML(Element element) {
-		try {
-			Transformer transformer = getTransformer();
-			CharArrayWriter writer = new CharArrayWriter();
-			transformer.transform(new DOMSource(element), new StreamResult(
-					writer));
-			return writer.toString();
-		} catch (TransformerException e) {
-			throw new IllegalStateException("Can't write XML", e);
-		}
-	}
-
-	public static Transformer getTransformer()
-			throws TransformerConfigurationException {
-		if (transformerFactory == null)
-			transformerFactory = TransformerFactory.newInstance();
-		return transformerFactory.newTransformer();
-	}
-
-	public Unmarshaller getUnmarshaller() {
-		Unmarshaller u = unmarshaller.get();
-		if (!isValidating() && u.getSchema() != null) {
-			u.setSchema(null);
-		} else if (isValidating() && u.getSchema() == null) {
-			// Load and set schema to validate against
-			Schema schema;
-			try {
-				SchemaFactory schemaFactory = SchemaFactory
-						.newInstance(W3C_XML_SCHEMA_NS_URI);
-				List<URI> schemas = getAdditionalSchemas();
-				URL t2flowExtendedXSD = T2FlowParser.class
-						.getResource(T2FLOW_EXTENDED_XSD);
-				schemas.add(t2flowExtendedXSD.toURI());
-
-				List<Source> schemaSources = new ArrayList<>();
-				for (URI schemaUri : schemas)
-					schemaSources.add(new StreamSource(schemaUri
-							.toASCIIString()));
-				Source[] sources = schemaSources
-						.toArray(new Source[schemaSources.size()]);
-				schema = schemaFactory.newSchema(sources);
-			} catch (SAXException e) {
-				throw new RuntimeException("Can't load schemas", e);
-			} catch (URISyntaxException | NullPointerException e) {
-				throw new RuntimeException("Can't find schemas", e);
-			}
-			u.setSchema(schema);
-		}
-		return u;
-	}
-
-	protected List<URI> getAdditionalSchemas() {
-		List<URI> uris = new ArrayList<>();
-		for (T2Parser parser : getT2Parsers()) {
-			List<URI> schemas = parser.getAdditionalSchemas();
-			if (schemas != null)
-				uris.addAll(schemas);
-		}
-		return uris;
-	}
-
-	protected void parseActivityInputMap(
-			org.apache.taverna.scufl2.xml.t2flow.jaxb.Map inputMap)
-			throws ReaderException {
-		for (Mapping mapping : inputMap.getMap()) {
-			String fromProcessorOutput = mapping.getFrom();
-			String toActivityOutput = mapping.getTo();
-			ProcessorInputPortBinding processorInputPortBinding = new ProcessorInputPortBinding();
-
-			InputProcessorPort inputProcessorPort = findNamed(parserState.get()
-					.getCurrentProcessor().getInputPorts(), fromProcessorOutput);
-			if (inputProcessorPort == null) {
-				String message = "Invalid input port binding, "
-						+ "unknown processor port: " + fromProcessorOutput
-						+ "->" + toActivityOutput + " in "
-						+ parserState.get().getCurrentProcessor();
-				if (isStrict())
-					throw new ReaderException(message);
-				logger.warning(message);
-				continue;
-			}
-
-			InputActivityPort inputActivityPort = parserState.get()
-					.getCurrentActivity().getInputPorts()
-					.getByName(toActivityOutput);
-			if (inputActivityPort == null) {
-				inputActivityPort = new InputActivityPort();
-				inputActivityPort.setName(toActivityOutput);
-				inputActivityPort.setParent(parserState.get()
-						.getCurrentActivity());
-				parserState.get().getCurrentActivity().getInputPorts()
-						.add(inputActivityPort);
-			}
-
-			if (inputActivityPort.getDepth() == null)
-				inputActivityPort.setDepth(inputProcessorPort.getDepth());
-
-			processorInputPortBinding.setBoundActivityPort(inputActivityPort);
-			processorInputPortBinding.setBoundProcessorPort(inputProcessorPort);
-			parserState.get().getCurrentProcessorBinding()
-					.getInputPortBindings().add(processorInputPortBinding);
-		}
-	}
-
-	protected void parseActivityOutputMap(
-			org.apache.taverna.scufl2.xml.t2flow.jaxb.Map outputMap)
-			throws ReaderException {
-		for (Mapping mapping : outputMap.getMap()) {
-			String fromActivityOutput = mapping.getFrom();
-			String toProcessorOutput = mapping.getTo();
-			ProcessorOutputPortBinding processorOutputPortBinding = new ProcessorOutputPortBinding();
-
-			OutputProcessorPort outputProcessorPort = findNamed(parserState
-					.get().getCurrentProcessor().getOutputPorts(),
-					toProcessorOutput);
-			if (outputProcessorPort == null) {
-				String message = "Invalid output port binding, "
-						+ "unknown processor port: " + fromActivityOutput
-						+ "->" + toProcessorOutput + " in "
-						+ parserState.get().getCurrentProcessor();
-				if (isStrict())
-					throw new ReaderException(message);
-				logger.warning(message);
-				continue;
-			}
-
-			OutputActivityPort outputActivityPort = parserState.get()
-					.getCurrentActivity().getOutputPorts()
-					.getByName(fromActivityOutput);
-			if (outputActivityPort == null) {
-				outputActivityPort = new OutputActivityPort();
-				outputActivityPort.setName(fromActivityOutput);
-				outputActivityPort.setParent(parserState.get()
-						.getCurrentActivity());
-				parserState.get().getCurrentActivity().getOutputPorts()
-						.add(outputActivityPort);
-			}
-
-			if (outputActivityPort.getDepth() == null)
-				outputActivityPort.setDepth(outputProcessorPort.getDepth());
-			if (outputActivityPort.getGranularDepth() == null)
-				outputActivityPort.setGranularDepth(outputProcessorPort
-						.getGranularDepth());
-
-			processorOutputPortBinding.setBoundActivityPort(outputActivityPort);
-			processorOutputPortBinding
-					.setBoundProcessorPort(outputProcessorPort);
-			parserState.get().getCurrentProcessorBinding()
-					.getOutputPortBindings().add(processorOutputPortBinding);
-		}
-	}
-
-	protected Workflow parseDataflow(Dataflow df, Workflow wf)
-			throws ReaderException, JAXBException {
-		parserState.get().setCurrentWorkflow(wf);
-		wf.setInputPorts(parseInputPorts(df.getInputPorts()));
-		wf.setOutputPorts(parseOutputPorts(df.getOutputPorts()));
-		wf.setProcessors(parseProcessors(df.getProcessors()));
-		wf.setDataLinks(parseDatalinks(df.getDatalinks()));
-		wf.setControlLinks(parseControlLinks(df.getConditions()));		
-		Revision revision = parseIdentificationAnnotations(df.getAnnotations());
-		if (revision != null)
-			wf.setCurrentRevision(revision);
-		parseAnnotations(wf, df.getAnnotations());
-
-		parserState.get().setCurrentWorkflow(null);
-		return wf;
-	}
-
-	public void parseAnnotations(WorkflowBean annotatedBean,
-			Annotations annotations) throws ReaderException {
-		// logger.fine("Checking annotations for " + annotatedSubject);
-
-		Map<String, NetSfTavernaT2AnnotationAnnotationAssertionImpl> annotationElems = new HashMap<>();
-		if (annotations == null
-				|| annotations.getAnnotationChainOrAnnotationChain22() == null)
-			return;
-		for (JAXBElement<AnnotationChain> el : annotations
-				.getAnnotationChainOrAnnotationChain22()) {
-			NetSfTavernaT2AnnotationAnnotationAssertionImpl ann = el.getValue()
-					.getNetSfTavernaT2AnnotationAnnotationChainImpl()
-					.getAnnotationAssertions()
-					.getNetSfTavernaT2AnnotationAnnotationAssertionImpl();
-			String annClass = ann.getAnnotationBean().getClazz();
-			if (annotationElems.containsKey(annClass)
-					&& annotationElems.get(annClass).getDate()
-							.compareToIgnoreCase(ann.getDate()) > 0)
-				// ann.getDate() is less than current 'latest' annotation, skip
-				continue;
-			annotationElems.put(annClass, ann);
-		}
-
-		for (String clazz : annotationElems.keySet()) {
-			NetSfTavernaT2AnnotationAnnotationAssertionImpl ann = annotationElems.get(clazz);
-			Calendar cal = parseDate(ann.getDate());					
-			String value = null;	
-			String semanticMediaType = TEXT_TURTLE;
-			for (Object obj : ann.getAnnotationBean().getAny()) {
-				if (!(obj instanceof Element))
-					continue;
-				Element elem = (Element) obj;
-				if (!(elem.getNamespaceURI() == null))
-					continue;
-				if (elem.getLocalName().equals("text")) {
-					value = elem.getTextContent().trim();
-					break;
-				}
-				if (clazz.equals(SEMANTIC_ANNOTATION)) {
-					if (elem.getLocalName().equals("content"))
-						value = elem.getTextContent().trim();
-					if (elem.getLocalName().equals("mimeType"))
-						semanticMediaType = elem.getTextContent().trim();
-				}
-			}
-			if (value != null) {
-				// Add the annotation
-				Annotation annotation = new Annotation();
-				WorkflowBundle workflowBundle = parserState.get()
-						.getCurrentWorkflowBundle();
-				annotation.setParent(workflowBundle);
-
-				String path = "annotation/" + annotation.getName() + ".ttl";
-				URI bodyURI = URI.create(path);
-
-				annotation.setTarget(annotatedBean);
-				annotation.setAnnotatedAt(cal);
-				// annotation.setAnnotator();
-				annotation.setSerializedBy(t2flowParserURI);
-				annotation.setSerializedAt(new GregorianCalendar());
-				URI annotatedSubject = uriTools.relativeUriForBean(
-						annotatedBean, annotation);
-				String body;
-				if (clazz.equals(SEMANTIC_ANNOTATION)) {
-					String baseStr = "@base <"
-							+ annotatedSubject.toASCIIString() + "> .\n";
-					body = baseStr + value;
-				} else {
-					// Generate Turtle from 'classic' annotation
-					URI predicate = getPredicatesForClass().get(clazz);
-					if (predicate == null) {
-						if (isStrict())
-							throw new ReaderException(
-									"Unsupported annotation class " + clazz);
-						return;
-					}
-
-					StringBuilder turtle = new StringBuilder();
-					turtle.append("<");
-					turtle.append(annotatedSubject.toASCIIString());
-					turtle.append("> ");
-
-					turtle.append("<");
-					turtle.append(predicate.toASCIIString());
-					turtle.append("> ");
-
-					// A potentially multi-line string
-					turtle.append("\"\"\"");
-					// Escape existing \ to \\
-					String escaped = value.replace("\\", "\\\\");
-					// Escape existing " to \" (beware Java's escaping of \ and " below)
-					escaped = escaped.replace("\"", "\\\"");
-					turtle.append(escaped);
-					turtle.append("\"\"\"");
-					turtle.append(" .");
-					body = turtle.toString();
-				}
-                try {
-                    workflowBundle.getResources().addResource(body, path, semanticMediaType);
-                } catch (IOException e) {
-                    throw new ReaderException("Could not store annotation body to " + path, e);
-                }
-                annotation.setBody(bodyURI);
-			}
-		}
-	}
-
-	private Map<String, URI> getPredicatesForClass() {
-		if (this.predicates != null)
-			return this.predicates;
-		synchronized (this) {
-			if (this.predicates != null)
-				return this.predicates;
-			Map<String, URI> predicates = new HashMap<>();
-			predicates.put("net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle", 
-					URI.create("http://purl.org/dc/terms/title"));
-			
-			predicates.put("net.sf.taverna.t2.annotation.annotationbeans.Author", 
-					URI.create("http://purl.org/dc/elements/1.1/creator"));
-			
-			predicates.put("net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription", 
-					URI.create("http://purl.org/dc/terms/description"));
-			
-			predicates.put("net.sf.taverna.t2.annotation.annotationbeans.MimeType", 
-					URI.create("http://purl.org/dc/elements/1.1/format"));
-			
-			predicates.put("net.sf.taverna.t2.annotation.annotationbeans.ExampleValue", 
-					exampleDataURI);
-			this.predicates = predicates;
-			return this.predicates;
-		}
-	}
-
-	protected Revision parseIdentificationAnnotations(Annotations annotations) {
-		SortedMap<Calendar, UUID> revisions = new TreeMap<>();
-		if (annotations == null || annotations.getAnnotationChainOrAnnotationChain22() == null)
-			return null;
-		for (JAXBElement<AnnotationChain> el : annotations
-				.getAnnotationChainOrAnnotationChain22()) {
-			NetSfTavernaT2AnnotationAnnotationAssertionImpl ann = el.getValue()
-					.getNetSfTavernaT2AnnotationAnnotationChainImpl()
-					.getAnnotationAssertions()
-					.getNetSfTavernaT2AnnotationAnnotationAssertionImpl();
-			String annClass = ann.getAnnotationBean().getClazz();
-			if (!annClass.equals(IDENTIFICATION_ASSERTION))
-				continue;
-			for (Object obj : ann.getAnnotationBean().getAny()) {
-				if (!(obj instanceof Element))
-					continue;
-				Element elem = (Element) obj;
-				if (elem.getNamespaceURI() == null
-						&& elem.getLocalName().equals("identification")) {
-					String uuid = elem.getTextContent().trim();
-					String date = ann.getDate();
-					Calendar cal = parseDate(date);
-					revisions.put(cal, UUID.fromString(uuid));
-				}
-			}
-		}
-		
-		Revision rev = null;
-		for (Entry<Calendar, UUID> entry : revisions.entrySet()) {			
-			Calendar cal = entry.getKey();
-			UUID uuid = entry.getValue();
-			URI uri = WORKFLOW_ROOT.resolve(uuid.toString() + "/");
-			rev = new Revision(uri, rev);
-			rev.setGeneratedAtTime(cal);		
-		}
-		return rev;
-	}
-
-	private Calendar parseDate(String dateStr) {
-		// Based briefly on patterns used by 
-		// com.thoughtworks.xstream.converters.basic.DateConverter
-		
-		List<String> patterns = new ArrayList<>();
-		patterns.add("yyyy-MM-dd HH:mm:ss.S z");
-		patterns.add("yyyy-MM-dd HH:mm:ss z");
-		patterns.add("yyyy-MM-dd HH:mm:ssz");
-		patterns.add("yyyy-MM-dd HH:mm:ss.S 'UTC'");
-		patterns.add("yyyy-MM-dd HH:mm:ss 'UTC'");
-        Date date;
-		for (String pattern : patterns)
-        	try {        		
-        		SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, ENGLISH);
-				date = dateFormat.parse(dateStr);
-				GregorianCalendar cal = new GregorianCalendar(getTimeZone("UTC"), ENGLISH);
-				cal.setTime(date);
-				return cal;
-			} catch (ParseException e) {
-				continue;
-			}
-        throw new IllegalArgumentException("Can't parse date: " + dateStr);		
-	}
-
-	private Set<ControlLink> parseControlLinks(Conditions conditions)
-			throws ReaderException {
-		Set<ControlLink> links = new HashSet<>();
-		for (Condition condition : conditions.getCondition()) {
-			NamedSet<Processor> processors = parserState.get()
-					.getCurrentWorkflow().getProcessors();
-			String target = condition.getTarget();
-			Processor block = processors.getByName(target);
-			if (block == null && isStrict())
-				throw new ReaderException(
-						"Unrecognized blocking processor in control link: "
-								+ target);
-			String control = condition.getControl();
-			Processor untilFinished = processors.getByName(control);
-			if (untilFinished == null && isStrict())
-				throw new ReaderException(
-						"Unrecognized untilFinished processor in control link: "
-								+ control);
-
-			BlockingControlLink newLink = new BlockingControlLink(block, untilFinished);
-
-			// FIXME: missing from t2flow and schema
-			//parseAnnotations(newLink, condition.getAnnotations());
-
-			links.add(newLink);
-		}
-		return links;
-	}
-
-	protected Set<DataLink> parseDatalinks(Datalinks origLinks)
-			throws ReaderException {
-		HashSet<DataLink> newLinks = new HashSet<>();
-		Map<ReceiverPort, AtomicInteger> mergeCounts = new HashMap<>();
-		for (org.apache.taverna.scufl2.xml.t2flow.jaxb.DataLink origLink : origLinks
-				.getDatalink()) {
-			try {
-				SenderPort senderPort = findSenderPort(parserState.get()
-						.getCurrentWorkflow(), origLink.getSource());
-				ReceiverPort receiverPort = findReceiverPort(parserState.get()
-						.getCurrentWorkflow(), origLink.getSink());
-
-				DataLink newLink = new DataLink(parserState.get()
-						.getCurrentWorkflow(), senderPort, receiverPort);
-
-				AtomicInteger mergeCount = mergeCounts.get(receiverPort);
-				if (origLink.getSink().getType().equals(MERGE)) {
-					if (mergeCount != null && mergeCount.intValue() < 1)
-						throw new ReaderException(
-								"Merged and non-merged links to port "
-										+ receiverPort);
-					if (mergeCount == null) {
-						mergeCount = new AtomicInteger(0);
-						mergeCounts.put(receiverPort, mergeCount);
-					}
-					newLink.setMergePosition(mergeCount.getAndIncrement());
-				} else {
-					if (mergeCount != null)
-						throw new ReaderException(
-								"More than one link to non-merged port "
-										+ receiverPort);
-					mergeCounts.put(receiverPort, new AtomicInteger(-1));
-				}
-
-				// FIXME: missing from t2flow and schema
-				//parseAnnotations(newLink, origLink.getAnnotations());
-
-				newLinks.add(newLink);
-			} catch (ReaderException ex) {
-				logger.log(WARNING, "Could not translate link:\n" + origLink,
-						ex);
-				if (isStrict())
-					throw ex;
-				continue;
-			}
-		}
-		return newLinks;
-	}
-
-	protected void parseDispatchStack(DispatchStack dispatchStack)
-			throws ReaderException {
-		Processor processor = parserState.get().getCurrentProcessor();
-		Configuration procConfig = scufl2Tools.createConfigurationFor(
-				processor, parserState.get().getCurrentProfile());
-		parserState.get().setCurrentConfigurable(processor);
-		parserState.get().setCurrentConfiguration(procConfig);
-		parserState.get().setPreviousDispatchLayerName(null);
-		try {
-			for (DispatchLayer dispatchLayer : dispatchStack.getDispatchLayer())
-				parseDispatchStack(dispatchLayer);
-		} finally {
-			parserState.get().setCurrentConfigurable(null);
-			parserState.get().setCurrentConfiguration(null);
-			parserState.get().setPreviousDispatchLayerName(null);
-		}
-	}
-	
-	protected void parseDispatchStack(DispatchLayer dispatchLayer)
-			throws ReaderException {
-		URI typeUri = mapTypeFromRaven(dispatchLayer.getRaven(),
-				dispatchLayer.getClazz());
-		ObjectNode procConfig = parserState.get().getCurrentConfiguration().getJsonAsObjectNode();
-		
-		try {
-			Configuration dispatchConfig = parseConfiguration(dispatchLayer.getConfigBean());
-			URI relUri = INTERNAL_DISPATCH_PREFIX.relativize(typeUri);
-			String name;
-			if (!relUri.isAbsolute()) {
-				/*
-				 * It's an internal layer. We'll put it under the name which
-				 * we'll cleverly fish out of the URI path, eg. "retry" or
-				 * "parallelize"
-				 */
-                name = relUri.getPath().toLowerCase();
-			    if (dispatchConfig != null && dispatchConfig.getJson().size() > 0)
-			        // But only if non-empty (non-default)
-			        procConfig.put(name, dispatchConfig.getJson());
-			} else {
-			    ObjectNode json;
-			    if (dispatchConfig != null && dispatchConfig.getJson().isObject())
-			        json = dispatchConfig.getJsonAsObjectNode();
-			    else {
-					/*
-					 * We'll still need to create an objectNode to keep _type
-					 * and _below
-					 */
-			        json = procConfig.objectNode();
-			        if (dispatchConfig != null)
-			            // We'll put the non-objectnode here
-			            json.put("_config", dispatchConfig.getJson());
-			    }
-			    
-				/*
-				 * Not really much to go from here, we don't want to use the
-				 * typeUri as the name as third-party layers in theory could be
-				 * added several times for same type
-				 */
-			    name = randomUUID().toString();
-				json.put("_type", typeUri.toString());
-				// Might be null - meaning "top"
-				json.put("_below", parserState.get()
-						.getPreviousDispatchLayerName());
-				procConfig.put(name, json);
-			}
-			parserState.get().setPreviousDispatchLayerName(name);			
-		} catch (JAXBException ex) {
-			String message = "Can't parse configuration for dispatch layer in "
-					+ parserState.get().getCurrentProcessor();
-			if (isStrict())
-				throw new ReaderException(message, ex);
-			logger.log(WARNING, message, ex);
-		}
-	}
-
-	protected Set<InputWorkflowPort> parseInputPorts(
-			AnnotatedGranularDepthPorts originalPorts) throws ReaderException {
-		Set<InputWorkflowPort> createdPorts = new HashSet<>();
-		for (AnnotatedGranularDepthPort originalPort : originalPorts.getPort()) {
-			InputWorkflowPort newPort = new InputWorkflowPort(parserState.get()
-					.getCurrentWorkflow(), originalPort.getName());
-			newPort.setDepth(originalPort.getDepth().intValue());
-			if (!originalPort.getGranularDepth()
-					.equals(originalPort.getDepth())) {
-				String message = "Specific input port granular depth not "
-						+ "supported in scufl2, port " + originalPort.getName()
-						+ " has depth " + originalPort.getDepth()
-						+ " and granular depth "
-						+ originalPort.getGranularDepth();
-				if (isStrict())
-					throw new ReaderException(message);
-				logger.warning(message);
-			}
-			parseAnnotations(newPort, originalPort.getAnnotations());
-
-			createdPorts.add(newPort);
-		}
-		return createdPorts;
-	}
-
-	protected IterationStrategyStack parseIterationStrategyStack(
-			org.apache.taverna.scufl2.xml.t2flow.jaxb.IterationStrategyStack originalStack)
-			throws ReaderException {
-		IterationStrategyStack newStack = new IterationStrategyStack();
-
-		for (TopIterationNode strategy : originalStack.getIteration()
-				.getStrategy()) {
-			IterationNode topNode = strategy.getCross();
-			if (topNode == null)
-				topNode = strategy.getDot();
-			if (topNode == null)
-				continue;
-			IterationNodeParent parent = (IterationNodeParent) topNode;
-			if (parent.getCrossOrDotOrPort().isEmpty())
-				continue;
-			try {
-				newStack.add((IterationStrategyTopNode) parseIterationStrategyNode(topNode));
-			} catch (ReaderException e) {
-				if (isStrict())
-					throw e;
-				logger.warning(e.getMessage());
-			}
-		}
-
-		return newStack;
-	}
-
-	protected IterationStrategyNode parseIterationStrategyNode(
-			IterationNode topNode) throws ReaderException {
-		if (topNode instanceof PortProduct) {
-			PortProduct portProduct = (PortProduct) topNode;
-			PortNode portNode = new PortNode();
-			portNode.setDesiredDepth(portProduct.getDepth().intValue());
-			String name = portProduct.getName();
-			Processor processor = parserState.get().getCurrentProcessor();
-			InputProcessorPort inputProcessorPort = processor.getInputPorts()
-					.getByName(name);
-			portNode.setInputProcessorPort(inputProcessorPort);
-			return portNode;
-		}
-
-		IterationStrategyNode node;
-		if (topNode instanceof DotProduct)
-			node = new org.apache.taverna.scufl2.api.iterationstrategy.DotProduct();
-		else if (topNode instanceof CrossProduct)
-			node = new org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct();
-		else
-			throw new ReaderException("Invalid node " + topNode);
-		@SuppressWarnings("unchecked")
-		List<IterationStrategyNode> children = (List<IterationStrategyNode>) node;
-		IterationNodeParent parent = (IterationNodeParent) topNode;
-		for (IterationNode child : parent.getCrossOrDotOrPort())
-			children.add(parseIterationStrategyNode(child));
-		return node;
-	}
-
-	protected Set<OutputWorkflowPort> parseOutputPorts(
-			AnnotatedPorts originalPorts) throws ReaderException {
-		Set<OutputWorkflowPort> createdPorts = new HashSet<>();
-		for (AnnotatedPort originalPort : originalPorts.getPort()) {
-			OutputWorkflowPort newPort = new OutputWorkflowPort(parserState
-					.get().getCurrentWorkflow(), originalPort.getName());
-			parseAnnotations(newPort, originalPort.getAnnotations());
-			createdPorts.add(newPort);
-		}
-		return createdPorts;
-	}
-
-	@SuppressWarnings("boxing")
-	protected Set<InputProcessorPort> parseProcessorInputPorts(
-			Processor newProc, DepthPorts origPorts) {
-		Set<InputProcessorPort> newPorts = new HashSet<>();
-		for (DepthPort origPort : origPorts.getPort()) {
-			InputProcessorPort newPort = new InputProcessorPort(newProc,
-					origPort.getName());
-			newPort.setDepth(origPort.getDepth().intValue());
-			// TODO: What about InputProcessorPort granular depth?
-			newPorts.add(newPort);
-		}
-		return newPorts;
-	}
-
-	@SuppressWarnings("boxing")
-	protected Set<OutputProcessorPort> parseProcessorOutputPorts(
-			Processor newProc, GranularDepthPorts origPorts) {
-		Set<OutputProcessorPort> newPorts = new HashSet<>();
-		for (GranularDepthPort origPort : origPorts.getPort()) {
-			OutputProcessorPort newPort = new OutputProcessorPort(newProc,
-					origPort.getName());
-			newPort.setDepth(origPort.getDepth().intValue());
-			newPort.setGranularDepth(origPort.getGranularDepth().intValue());
-			newPorts.add(newPort);
-		}
-		return newPorts;
-	}
-
-	protected Set<Processor> parseProcessors(Processors originalProcessors)
-			throws ReaderException, JAXBException {
-		HashSet<Processor> newProcessors = new HashSet<>();
-		for (org.apache.taverna.scufl2.xml.t2flow.jaxb.Processor origProc : originalProcessors
-				.getProcessor()) {
-			Processor newProc = new Processor(parserState.get()
-					.getCurrentWorkflow(), origProc.getName());
-			parserState.get().setCurrentProcessor(newProc);
-			newProc.setInputPorts(parseProcessorInputPorts(newProc,
-					origProc.getInputPorts()));
-			newProc.setOutputPorts(parseProcessorOutputPorts(newProc,
-					origProc.getOutputPorts()));
-			parseDispatchStack(origProc
-					.getDispatchStack());
-			newProc.setIterationStrategyStack(parseIterationStrategyStack(origProc
-					.getIterationStrategyStack()));
-			parseAnnotations(newProc, origProc.getAnnotations());
-
-			newProcessors.add(newProc);
-			int i = 0;
-			for (Activity origActivity : origProc.getActivities().getActivity())
-				parseActivityBinding(origActivity, i++);
-		}
-		parserState.get().setCurrentProcessor(null);
-		return newProcessors;
-	}
-
-	@SuppressWarnings("unchecked")
-	public WorkflowBundle parseT2Flow(File t2File) throws IOException,
-			ReaderException, JAXBException {
-		JAXBElement<org.apache.taverna.scufl2.xml.t2flow.jaxb.Workflow> root = (JAXBElement<org.apache.taverna.scufl2.xml.t2flow.jaxb.Workflow>) getUnmarshaller()
-				.unmarshal(t2File);
-		return parseT2Flow(root.getValue());
-	}
-
-	@SuppressWarnings("unchecked")
-	public WorkflowBundle parseT2Flow(InputStream t2File) throws IOException,
-			JAXBException, ReaderException {
-		JAXBElement<org.apache.taverna.scufl2.xml.t2flow.jaxb.Workflow> root = (JAXBElement<org.apache.taverna.scufl2.xml.t2flow.jaxb.Workflow>) getUnmarshaller()
-				.unmarshal(t2File);
-		return parseT2Flow(root.getValue());
-	}
-
-	public WorkflowBundle parseT2Flow(
-			org.apache.taverna.scufl2.xml.t2flow.jaxb.Workflow wf)
-			throws ReaderException, JAXBException {
-		try {
-			parserState.get().setT2FlowParser(this);
-			WorkflowBundle wfBundle = new WorkflowBundle();
-			parserState.get().setCurrentWorkflowBundle(wfBundle);
-			makeProfile(wf);
-
-			// First a skeleton scan of workflows (for nested workflow configs)
-			Map<Dataflow, Workflow> dataflowMap = new HashMap<>();
-			for (Dataflow df : wf.getDataflow()) {
-				Workflow workflow = skeletonDataflow(df);
-				dataflowMap.put(df, workflow);
-				wfBundle.getWorkflows().addWithUniqueName(workflow);
-				workflow.setParent(wfBundle);
-				if (df.getRole().equals(TOP)) {
-					wfBundle.setMainWorkflow(workflow);
-					wfBundle.setName(df.getName());
-					wfBundle.setGlobalBaseURI(WORKFLOW_BUNDLE_ROOT.resolve(df
-							.getId() + "/"));
-				}
-			}
-			// Second stage
-			for (Dataflow df : wf.getDataflow()) {
-				Workflow workflow = dataflowMap.get(df);
-				parseDataflow(df, workflow);
-			}
-			if (isStrict() && wfBundle.getMainWorkflow() == null)
-				throw new ReaderException("No main workflow");
-			scufl2Tools.setParents(wfBundle);
-
-			return wfBundle;
-		} finally {
-			parserState.remove();
-		}
-	}
-
-	protected Workflow skeletonDataflow(Dataflow df) {
-		Workflow wf = new Workflow();
-		parserState.get().setCurrentWorkflow(wf);
-		wf.setName(df.getName());
-		wf.setIdentifier(WORKFLOW_ROOT.resolve(df.getId() + "/"));
-		return wf;
-	}
-
-	public void setStrict(boolean strict) {
-		this.strict = strict;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowReader.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowReader.java
deleted file mode 100644
index 00d3350..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowReader.java
+++ /dev/null
@@ -1,182 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.util.Collections.singleton;
-import static org.apache.taverna.scufl2.api.container.WorkflowBundle.WORKFLOW_BUNDLE_ROOT;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
-
-
-public class T2FlowReader implements WorkflowBundleReader {
-	private final class DelayedCloseBufferedInputStream extends
-			BufferedInputStream {
-		private DelayedCloseBufferedInputStream(InputStream in, int size) {
-			super(in, size);
-		}
-
-		@Override
-		public void close() throws IOException {
-			return;
-		}
-
-		public void reallyClose() throws IOException {
-			super.close();
-		}
-	}
-
-	protected static final URI PROV = URI.create("http://www.w3.org/ns/prov#");
-	protected static final URI HAD_ORIGINAL_SOURCE = PROV.resolve("#hadOriginalSource");
-	protected static final URI ENTITY = PROV.resolve("#Entity");
-	private static final int MEGABYTE = 1024 * 1024;
-	private static final int PRESERVE_ORIGINAL_MAXIMUM_BYTES = 5 * MEGABYTE;
-	public static final String APPLICATION_VND_TAVERNA_T2FLOW_XML = "application/vnd.taverna.t2flow+xml";
-
-	private T2FlowParser parser;
-	private Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private URITools uriTools = new URITools();
-	
-	@Override
-	public Set<String> getMediaTypes() {
-		return singleton(APPLICATION_VND_TAVERNA_T2FLOW_XML);
-	}
-
-	@Override
-	public WorkflowBundle readBundle(File bundleFile, String mediaType)
-			throws ReaderException, IOException {
-		try {
-			WorkflowBundle bundle = getParser().parseT2Flow(bundleFile);
-			scufl2Tools.setParents(bundle);
-			preserveOriginal(bundle, new FileInputStream(bundleFile));
-			return bundle;
-		} catch (JAXBException e) {
-			if (e.getCause() instanceof IOException) {
-				IOException ioException = (IOException) e.getCause();
-				throw ioException;
-			}
-			throw new ReaderException("Can't parse t2flow " + bundleFile, e);
-		}
-	}
-
-	protected void preserveOriginal(WorkflowBundle bundle,
-			InputStream t2flowStream) throws IOException {
-		String path = "history/" + bundleUUID(bundle) + ".t2flow";
-		bundle.getResources().addResource(t2flowStream, path,
-				APPLICATION_VND_TAVERNA_T2FLOW_XML);
-		// TODO: Add annotation recording the provenance of this history file
-//		PropertyResource original = new PropertyResource();
-//		original.setTypeURI(ENTITY);
-//		original.setResourceURI(URI.create("../../" + path));
-//		// TODO: dcterms:format ?				
-//		// TODO: Add this annotation to the workflow bundle rather than main workflow
-//		bundle.getMainWorkflow().getCurrentRevision().addProperty(HAD_ORIGINAL_SOURCE, original);		
-	}
-
-	protected String bundleUUID(WorkflowBundle bundle) {
-		String uuidPath = uriTools.relativePath(WORKFLOW_BUNDLE_ROOT,
-				bundle.getGlobalBaseURI()).getPath();
-		UUID uuid = UUID
-				.fromString(uuidPath.substring(0, uuidPath.length() - 1));
-		return uuid.toString();
-	}
-
-	@Override
-	public WorkflowBundle readBundle(InputStream inputStream, String mediaType)
-			throws ReaderException, IOException {
-		DelayedCloseBufferedInputStream buffered = new DelayedCloseBufferedInputStream(
-				inputStream, PRESERVE_ORIGINAL_MAXIMUM_BYTES);
-		try {
-			buffered.mark(PRESERVE_ORIGINAL_MAXIMUM_BYTES);
-			WorkflowBundle bundle;
-			try {
-				bundle = getParser().parseT2Flow(buffered);
-				scufl2Tools.setParents(bundle);
-			} catch (JAXBException e) {
-				if (e.getCause() instanceof IOException) {
-					IOException ioException = (IOException) e.getCause();
-					throw ioException;
-				}
-				throw new ReaderException("Can't parse t2flow", e);
-			}
-
-			// Rewind and try to copy out the original t2flow
-			try {
-				buffered.reset();
-			} catch (IOException ex) {
-				// Too big workflow, can't preserve it.
-				// TODO: Store to Bundle first?
-				// FIXME: Can we close BufferedInputStream without closing
-				// inputStream from our parameter?
-				return bundle;
-			}
-			preserveOriginal(bundle, buffered);
-			return bundle;
-		} finally {
-			buffered.reallyClose();
-		}
-	}
-
-	public void setParser(T2FlowParser parser) {
-		this.parser = parser;
-	}
-
-	public T2FlowParser getParser() throws JAXBException {
-		if (parser == null)
-			parser = new T2FlowParser();
-		return parser;
-	}
-	
-	@Override
-	public String guessMediaTypeForSignature(byte[] firstBytes) {
-		if (firstBytes.length < 100)
-			return null;
-		// FIXME: Does not deal with potential UTF-16 encoding
-		
-		// Latin 1 can deal with nasty bytes in binaries
-		Charset latin1 = Charset.forName("ISO-8859-1");
-		String asLatin1 = new String(firstBytes, latin1);
-		if (!asLatin1.contains("workflow"))
-			return null;
-		if (!asLatin1.contains("http://taverna.sf.net/2008/xml/t2flow"))
-			return null;
-		if (!asLatin1.contains("dataflow"))
-			return null;
-		// Good enough - XML is hard to check on so few bytes		
-		return APPLICATION_VND_TAVERNA_T2FLOW_XML;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2Parser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2Parser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2Parser.java
deleted file mode 100644
index 6e7c469..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2Parser.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.net.URI;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public interface T2Parser {
-	boolean canHandlePlugin(URI pluginURI);
-
-	URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity);
-
-	Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException;
-
-	List<URI> getAdditionalSchemas();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/AbstractActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/AbstractActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/AbstractActivityParser.java
deleted file mode 100644
index 6069920..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/AbstractActivityParser.java
+++ /dev/null
@@ -1,232 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.StringReader;
-import java.math.BigInteger;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.transform.Source;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.T2Parser;
-import org.w3c.dom.Element;
-
-//import org.apache.taverna.scufl2.api.property.PropertyResource;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean.MimeTypes;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public abstract class AbstractActivityParser implements T2Parser {
-	public static URI MEDIATYPES_URI = URI.create("http://purl.org/NET/mediatypes/");
-	@Deprecated
-	public static URI PORT_DEFINITION = Scufl2Tools.PORT_DEFINITION;
-	
-	@SuppressWarnings("unused")
-	private ThreadLocal<ParserState> parserState;
-
-	public <ConfigType> ConfigType unmarshallConfig(T2FlowParser t2FlowParser,
-			ConfigBean configBean, String encoding, Class<ConfigType> configType)
-			throws ReaderException {
-		Object config = configBean.getAny();
-		if (config instanceof JAXBElement) {
-			JAXBElement<?> jaxbElement = (JAXBElement<?>) config;
-			if (!configType.isInstance((jaxbElement.getValue())))
-				throw new ReaderException("Unexpected config type: "
-						+ jaxbElement.getValue().getClass() + ", expected "
-						+ configType);
-			return configType.cast(jaxbElement.getValue());
-		}
-		if (!(config instanceof Element)
-				|| !configBean.getEncoding().equals(encoding))
-			throw new ReaderException("Unsupported config bean " + configBean);
-		return unmarshallElement(t2FlowParser, (Element) config, configType);
-	}
-
-	public <ConfigType> ConfigType unmarshallElement(T2FlowParser t2FlowParser,
-			Element element, Class<ConfigType> configType)
-			throws ReaderException {
-		Unmarshaller unmarshaller2 = t2FlowParser.getUnmarshaller();
-		unmarshaller2.setSchema(null);
-		try {
-			JAXBElement<ConfigType> configElemElem = unmarshaller2.unmarshal(
-					element, configType);
-			return configElemElem.getValue();
-		} catch (JAXBException|ClassCastException e) {
-			throw new ReaderException("Can't parse element " + element, e);
-		}
-	}
-
-	public <ConfigType> ConfigType unmarshallXml(T2FlowParser t2FlowParser,
-			String xml, Class<ConfigType> configType) throws ReaderException {
-		Unmarshaller unmarshaller2 = t2FlowParser.getUnmarshaller();
-		unmarshaller2.setSchema(null);
-
-		Source source = new StreamSource(new StringReader(xml));
-		try {
-			JAXBElement<ConfigType> configElemElem = unmarshaller2.unmarshal(
-					source, configType);
-			return configElemElem.getValue();
-		} catch (JAXBException|ClassCastException e) {
-			throw new ReaderException("Can't parse xml " + xml, e);
-		}
-	}
-
-	protected ObjectNode parseAndAddOutputPortDefinition(
-			ActivityPortDefinitionBean portBean, Configuration configuration,
-			Activity activity) {
-		ObjectNode configResource = (ObjectNode) configuration.getJson();
-		OutputActivityPort outputPort = new OutputActivityPort();
-
-		outputPort.setName(getPortElement(portBean, "name", String.class));
-		outputPort.setParent(activity);
-
-		BigInteger depth = getPortElement(portBean, "depth", BigInteger.class);
-		if (depth != null)
-			outputPort.setDepth(depth.intValue());
-		
-		BigInteger granularDepth = getPortElement(portBean, "granularDepth",
-				BigInteger.class);
-		if (granularDepth != null)
-			outputPort.setGranularDepth(granularDepth.intValue());
-		
-		ObjectNode portConfig = configResource.objectNode();
-//		PropertyResource portConfig = configResource.addPropertyAsNewResource(
-//				Scufl2Tools.PORT_DEFINITION.resolve("#outputPortDefinition"),
-//				Scufl2Tools.PORT_DEFINITION.resolve("#OutputPortDefinition"));
-
-		@SuppressWarnings("unused")
-		URI portUri = new URITools().relativeUriForBean(outputPort, configuration);
-//		portConfig.addPropertyReference(Scufl2Tools.PORT_DEFINITION.resolve("#definesOutputPort"), portUri);
-
-	      // Legacy duplication of port details for XMLSplitter activities
-        portConfig.put("name", outputPort.getName());
-        portConfig.put("depth", outputPort.getDepth());
-        portConfig.put("granularDepth", outputPort.getDepth());
-		
-		parseMimeTypes(portBean, portConfig);
-		return portConfig;
-	}
-
-	/**
-	 * Deals with the not-so-helpful
-	 * getHandledReferenceSchemesOrTranslatedElementTypeOrName method
-	 * 
-	 * @param portBean
-	 * @param elementName
-	 * @return
-	 */
-	private <T> T getPortElement(ActivityPortDefinitionBean portBean,
-			String elementName, Class<T> type) {
-		for (JAXBElement<?> elem : portBean
-				.getHandledReferenceSchemesOrTranslatedElementTypeOrName())
-			if (elem.getName().getLocalPart().equals(elementName))
-				return type.cast(elem.getValue());
-		return null;
-	}
-
-	protected ObjectNode parseAndAddInputPortDefinition(
-			ActivityPortDefinitionBean portBean, Configuration configuration,
-			Activity activity) {
-		ObjectNode configResource = (ObjectNode) configuration.getJson();
-		ObjectNode portConfig = configResource.objectNode();
-
-		InputActivityPort inputPort = new InputActivityPort();
-		inputPort.setName(getPortElement(portBean, "name", String.class));
-		inputPort.setParent(activity);
-
-		BigInteger depth = getPortElement(portBean, "depth", BigInteger.class);
-		if (depth != null)
-			inputPort.setDepth(depth.intValue());
-		
-//		PropertyResource portConfig = configResource.addPropertyAsNewResource(
-//				Scufl2Tools.PORT_DEFINITION.resolve("#inputPortDefinition"),
-//				Scufl2Tools.PORT_DEFINITION.resolve("#InputPortDefinition"));
-
-		@SuppressWarnings("unused")
-		URI portUri = new URITools().relativeUriForBean(inputPort, configuration);
-//		portConfig.addPropertyReference(Scufl2Tools.PORT_DEFINITION.resolve("#definesInputPort"), portUri);
-
-		parseMimeTypes(portBean, portConfig);
-		
-		String translated = getPortElement(portBean, "translatedElementType", String.class);
-		if (translated != null) {
-			// As "translated element type" is confusing, we'll instead use "dataType"
-//			portConfig.addPropertyReference(Scufl2Tools.PORT_DEFINITION.resolve("#dataType"),
-//					URI.create("java:" + translated));
-			portConfig.put("dataType", "java:" + translated);
-
-			// TODO: Include mapping to XSD types like xsd:string
-		}
-		// T2-1681: Ignoring isAllowsLiteralValues and handledReferenceScheme
-
-		// Legacy duplication of port details for XMLSplitter activities
-		portConfig.put("name", inputPort.getName());
-		portConfig.put("depth", inputPort.getDepth());
-
-		return portConfig;
-	}
-
-	private void parseMimeTypes(ActivityPortDefinitionBean portBean,
-			ObjectNode portConfig) {
-		MimeTypes mimeTypes = getPortElement(portBean, "mimeTypes",
-				MimeTypes.class);
-		if (mimeTypes == null)
-			return;
-		// FIXME: Do as annotation as this is not configuration
-//		URI mimeType = Scufl2Tools.PORT_DEFINITION.resolve("#expectedMimeType");
-		List<String> strings = mimeTypes.getString();
-		if ((strings == null || strings.isEmpty())
-				&& mimeTypes.getElement() != null)
-			strings = Arrays.asList(mimeTypes.getElement().getValue());
-		if (strings != null)
-			for (String s : strings) {
-				if (s.contains("'"))
-					s = s.split("'")[1];
-//				portConfig.addPropertyReference(mimeType,
-//						MEDIATYPES_URI.resolve(s));
-				portConfig.put("mimeType", s);
-				return; // Just first mimeType survives
-			}
-	}
-	
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ApiConsomerActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ApiConsomerActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ApiConsomerActivityParser.java
deleted file mode 100644
index 61d3dbc..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ApiConsomerActivityParser.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.math.BigInteger;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ApiConsumerConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ApiConsomerActivityParser extends AbstractActivityParser {
-	private static URI activityRavenURI = T2FlowParser.ravenURI
-			.resolve("net.sf.taverna.t2.activities/apiconsumer-activity/");
-	private static String activityClassName = "net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity";
-	public static URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/apiconsumer");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		ApiConsumerConfig config = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", ApiConsumerConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-		json.put("apiConsumerDescription", config.getApiConsumerDescription());
-		json.put("apiConsumerName", config.getApiConsumerName());
-		json.put("description", config.getDescription());
-		json.put("className", config.getClassName());
-		json.put("methodName", config.getMethodName());
-
-		ArrayNode parameterNames = json.arrayNode();
-		json.put("parameterNames", parameterNames);
-		for (String parameterName : config.getParameterNames().getString())
-			parameterNames.add(parameterName);
-
-		ArrayNode parameterDimensions = json.arrayNode();
-		json.put("parameterDimensions", parameterDimensions);
-		for (BigInteger parameterDimension : config.getParameterDimensions()
-				.getInt())
-			parameterDimensions.add(parameterDimension.intValue());
-
-		ArrayNode parameterTypes = json.arrayNode();
-		json.put("parameterTypes", parameterTypes);
-		for (String parameterType : config.getParameterTypes().getString())
-			parameterTypes.add(parameterType);
-
-		json.put("returnType", config.getReturnType());
-		json.put("returnDimension", config.getReturnDimension().intValue());
-		json.put("isMethodConstructor", config.isIsMethodConstructor());
-		json.put("isMethodStatic", config.isIsMethodStatic());
-
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BeanshellActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BeanshellActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BeanshellActivityParser.java
deleted file mode 100644
index 322c3c7..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BeanshellActivityParser.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ActivityPortDefinitionBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.BasicArtifact;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.BeanshellConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ClassLoaderSharing;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class BeanshellActivityParser extends AbstractActivityParser {
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/beanshell-activity/");
-	private static final URI localWorkerActivityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/localworker-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.beanshell.BeanshellActivity";
-	private static final String localWorkerActivityClassName = "net.sf.taverna.t2.activities.localworker.LocalworkerActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/beanshell");
-	public static final URI LOCAL_WORKER_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/localworker/");
-	public static final URI DEPENDENCY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/dependency");
-	private static URITools uriTools = new URITools();
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		if (activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName))
-			return true;
-		if (activityUriStr.startsWith(localWorkerActivityRavenURI
-				.toASCIIString())
-				&& activityUriStr.endsWith(localWorkerActivityClassName))
-			return true;
-		return false;
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		BeanshellConfig beanshellConfig = unmarshallConfig(t2FlowParser,
-				configBean, "xstream", BeanshellConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-		
-		if (beanshellConfig.getLocalworkerName() != null) {
-			URI localWorkerURI = LOCAL_WORKER_URI.resolve(uriTools
-					.validFilename(beanshellConfig.getLocalworkerName()));
-			/*
-			 * FIXME: As we can't read the annotation chain yet, we can't tell
-			 * whether this local worker has been edited or not, and so can't
-			 * use #definedBy
-			 */
-			json.put("derivedFrom", localWorkerURI.toString());
-		}
-
-		String script = beanshellConfig.getScript();
-		json.put("script", script);
-
-		ClassLoaderSharing classLoaderSharing = beanshellConfig
-				.getClassLoaderSharing();
-		if (classLoaderSharing == ClassLoaderSharing.SYSTEM)
-			json.put("classLoaderSharing", "system");
-		else {
-		    // default is "workflow" but don't need to be expressed
-//		    json.put("classLoaderSharing", "workflow");
-		}
- 
-		if (beanshellConfig.getLocalDependencies() != null) {
-			ArrayNode dependencies = json.arrayNode();
-			for (String localDep : beanshellConfig.getLocalDependencies()
-					.getString())
-				dependencies.add(localDep);
-			if (dependencies.size() > 0)
-				json.put("localDependency", dependencies);
-		}
-
-		/*
-		 * Note: Maven Dependencies are not supported by Taverna 3 - only here
-		 * for informational purposes and potential t2flow->t2flow scenarios
-		 */
-		if (beanshellConfig.getArtifactDependencies() != null) {
-			ArrayNode dependencies = json.arrayNode();
-			for (BasicArtifact mavenDep : beanshellConfig
-					.getArtifactDependencies()
-					.getNetSfTavernaRavenRepositoryBasicArtifact()) {
-				ObjectNode mavenDependency = json.objectNode();
-				dependencies.add(mavenDependency);
-				mavenDependency.put("groupId", mavenDep.getGroupId());
-				mavenDependency.put("artifactId", mavenDep.getArtifactId());
-				mavenDependency.put("version", mavenDep.getVersion());
-			}
-			if (dependencies.size() > 0)
-				json.put("mavenDependency", dependencies);
-		}
-		
-		Activity activity = parserState.getCurrentActivity();
-		activity.getInputPorts().clear();
-		activity.getOutputPorts().clear();
-		for (ActivityPortDefinitionBean portBean : beanshellConfig
-				.getInputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityInputPortDefinitionBean())
-			parseAndAddInputPortDefinition(portBean, configuration, activity);
-		for (ActivityPortDefinitionBean portBean : beanshellConfig
-				.getOutputs()
-				.getNetSfTavernaT2WorkflowmodelProcessorActivityConfigActivityOutputPortDefinitionBean())
-			parseAndAddOutputPortDefinition(portBean, configuration, activity);
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomartActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomartActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomartActivityParser.java
deleted file mode 100644
index 06ef449..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomartActivityParser.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.w3c.dom.Element;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class BiomartActivityParser extends AbstractActivityParser {
-	private static final URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/biomart-activity/");
-	private static final String activityClassName = "net.sf.taverna.t2.activities.biomart.BiomartActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/biomart");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-		json.put("martQuery",
-				T2FlowParser.elementToXML((Element) configBean.getAny()));
-
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomobyActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomobyActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomobyActivityParser.java
deleted file mode 100644
index 9778781..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/BiomobyActivityParser.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-public class BiomobyActivityParser extends AbstractActivityParser {
-	private static URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/biomoby-activity/");
-	private static String mobyObjectClassName = "net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity";
-	private static String mobyServiceClassName = "net.sf.taverna.t2.activities.biomoby.BiomobyActivity";
-	public static URI mobyObjectScufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/activity/biomoby/object");
-	public static URI mobyServiceScufl2Uri = URI
-			.create("http://ns.taverna.org.uk/2010/activity/biomoby/service");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		if (!activityUriStr.startsWith(activityRavenURI.toASCIIString()))
-			return false;
-		return activityUriStr.endsWith(mobyObjectClassName)
-				|| activityUriStr.endsWith(mobyServiceClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		String activityUriStr = t2flowActivity.toASCIIString();
-		if (activityUriStr.endsWith(mobyObjectClassName))
-			return mobyObjectScufl2Uri;
-		else
-			return mobyServiceScufl2Uri;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ComponentActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ComponentActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ComponentActivityParser.java
deleted file mode 100644
index d928414..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultactivities/ComponentActivityParser.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.defaultactivities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.net.URI.create;
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ComponentConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class ComponentActivityParser extends AbstractActivityParser {
-	private static URI activityRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.component/component-activity/");
-	private static String activityClassName = "net.sf.taverna.t2.component.ComponentActivity";
-	public static URI ACTIVITY_URI = create("http://ns.taverna.org.uk/2010/activity/component");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return activityUriStr.startsWith(activityRavenURI.toASCIIString())
-				&& activityUriStr.endsWith(activityClassName);
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		ComponentConfig config = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", ComponentConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-
-		ObjectNode json = (ObjectNode) configuration.getJson();
-		configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-		json.put("registryBase", config.getRegistryBase());
-		json.put("familyName", config.getFamilyName());
-		json.put("componentName", config.getComponentName());
-		if (config.getComponentVersion() != null)
-			json.put("componentVersion", (int) config.getComponentVersion());
-
-		return configuration;
-	}
-}


[09/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/as.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/as.t2flow b/taverna-scufl2-t2flow/src/test/resources/as.t2flow
deleted file mode 100644
index c52586a..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/as.t2flow
+++ /dev/null
@@ -1,1675 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.1.0">
-<!-- 
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- -->
-  <dataflow id="92c5e8d5-8360-4f86-a845-09c9849cbdc5" role="top">
-    <name>Workflow1</name>
-    <inputPorts />
-    <outputPorts>
-      <port>
-        <name>asdasd</name>
-        <annotations />
-      </port>
-    </outputPorts>
-    <processors>
-      <processor>
-        <name>Workflow19</name>
-        <inputPorts>
-          <port>
-            <name>lk</name>
-            <depth>0</depth>
-          </port>
-        </inputPorts>
-        <outputPorts>
-          <port>
-            <name>kk</name>
-            <depth>0</depth>
-            <granularDepth>0</granularDepth>
-          </port>
-          <port>
-            <name>String_constant_value</name>
-            <depth>0</depth>
-            <granularDepth>0</granularDepth>
-          </port>
-        </outputPorts>
-        <annotations />
-        <activities>
-          <activity>
-            <raven>
-              <group>net.sf.taverna.t2.activities</group>
-              <artifact>dataflow-activity</artifact>
-              <version>1.0</version>
-            </raven>
-            <class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</class>
-            <inputMap>
-              <map from="lk" to="lk" />
-            </inputMap>
-            <outputMap>
-              <map from="String_constant_value" to="String_constant_value" />
-              <map from="kk" to="kk" />
-            </outputMap>
-            <configBean encoding="dataflow">
-              <dataflow ref="c451b1cf-1c95-47e5-b89c-537a5501a1ef" />
-            </configBean>
-            <annotations />
-          </activity>
-        </activities>
-        <dispatchStack>
-          <dispatchLayer>
-            <raven>
-              <group>net.sf.taverna.t2.core</group>
-              <artifact>workflowmodel-impl</artifact>
-              <version>1.0</version>
-            </raven>
-            <class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-            <configBean encoding="xstream">
-              <net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-                <maxJobs>1</maxJobs>
-              </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-            </configBean>
-          </dispatchLayer>
-          <dispatchLayer>
-            <raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="lk" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings</name>
-<inputPorts>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string2" depth="0" />
-<port name="string1" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings_2</name>
-<inputPorts>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string2" depth="0" />
-<port name="string1" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Create_Lots_Of_Strings</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>strings</name>
-<depth>1</depth>
-<granularDepth>1</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap />
-<outputMap>
-<map from="strings" to="strings" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
-  <script>List strings = new ArrayList();
-for (int i = 0; i &lt; 40; i++) {
-	strings.add("String" + i);
-}
-</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs />
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>strings</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('text/plain')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings_3</name>
-<inputPorts>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string1" depth="0" />
-<port name="string2" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>String_constant</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>value</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>stringconstant-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class>
-<inputMap />
-<outputMap>
-<map from="value" to="value" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Add your own value here</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Concatenate_two_strings_4</name>
-<inputPorts>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string1" depth="0" />
-<port name="string2" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>Echo_List</name>
-<inputPorts>
-<port>
-<name>inputlist</name>
-<depth>1</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>outputlist</name>
-<depth>1</depth>
-<granularDepth>1</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="inputlist" to="inputlist" />
-</inputMap>
-<outputMap>
-<map from="outputlist" to="outputlist" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EchoList</localworkerName>
-  <script>outputlist = inputlist;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="inputlist" depth="1" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-</processors>
-<conditions />
-<datalinks>
-<datalink>
-<sink type="processor">
-<processor>Workflow19</processor>
-<port>lk</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings_2</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>Create_Lots_Of_Strings</processor>
-<port>strings</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_2</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>Create_Lots_Of_Strings</processor>
-<port>strings</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_2</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>Create_Lots_Of_Strings</processor>
-<port>strings</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_3</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>Workflow19</processor>
-<port>kk</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_3</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>String_constant</processor>
-<port>value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_4</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>String_constant</processor>
-<port>value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings_4</processor>
-<port>string2</port>
-</sink>
-<source type="processor">
-<processor>Workflow19</processor>
-<port>String_constant_value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="merge">
-<processor>Echo_List</processor>
-<port>inputlist</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings_4</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="merge">
-<processor>Echo_List</processor>
-<port>inputlist</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings_3</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="dataflow">
-<port>asdasd</port>
-</sink>
-<source type="processor">
-<processor>Echo_List</processor>
-<port>outputlist</port>
-</source>
-</datalink>
-</datalinks>
-<annotations />
-</dataflow>
-<dataflow id="c451b1cf-1c95-47e5-b89c-537a5501a1ef" role="nested">
-<name>Workflow19</name>
-<inputPorts>
-<port>
-<name>lk</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-<annotations />
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>kk</name>
-<annotations />
-</port>
-<port>
-<name>String_constant_value</name>
-<annotations />
-</port>
-</outputPorts>
-<processors>
-<processor>
-<name>Concatenate_two_strings</name>
-<inputPorts>
-<port>
-<name>string1</name>
-<depth>0</depth>
-</port>
-<port>
-<name>string2</name>
-<depth>0</depth>
-</port>
-</inputPorts>
-<outputPorts>
-<port>
-<name>output</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>localworker-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
-<inputMap>
-<map from="string2" to="string2" />
-<map from="string1" to="string1" />
-</inputMap>
-<outputMap>
-<map from="output" to="output" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
-  <script>output = string1 + string2;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>string2</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy>
-<cross>
-<port name="string1" depth="0" />
-<port name="string2" depth="0" />
-</cross>
-</strategy>
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>string1_value</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>value</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>stringconstant-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class>
-<inputMap />
-<outputMap>
-<map from="value" to="value" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>kjkj</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-<processor>
-<name>String_constant</name>
-<inputPorts />
-<outputPorts>
-<port>
-<name>value</name>
-<depth>0</depth>
-<granularDepth>0</granularDepth>
-</port>
-</outputPorts>
-<annotations />
-<activities>
-<activity>
-<raven>
-<group>net.sf.taverna.t2.activities</group>
-<artifact>stringconstant-activity</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class>
-<inputMap />
-<outputMap>
-<map from="value" to="value" />
-</outputMap>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>Add your own value here</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean>
-</configBean>
-<annotations />
-</activity>
-</activities>
-<dispatchStack>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
-<configBean encoding="xstream">
-<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
-</configBean>
-</dispatchLayer>
-<dispatchLayer>
-<raven>
-<group>net.sf.taverna.t2.core</group>
-<artifact>workflowmodel-impl</artifact>
-<version>1.0</version>
-</raven>
-<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
-<configBean encoding="xstream">
-<null xmlns="" />
-</configBean>
-</dispatchLayer>
-</dispatchStack>
-<iterationStrategyStack>
-<iteration>
-<strategy />
-</iteration>
-</iterationStrategyStack>
-</processor>
-</processors>
-<conditions>
-<condition control="Concatenate_two_strings" target="String_constant" />
-</conditions>
-<datalinks>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string1</port>
-</sink>
-<source type="processor">
-<processor>string1_value</processor>
-<port>value</port>
-</source>
-</datalink>
-<datalink>
-<sink type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>string2</port>
-</sink>
-<source type="dataflow">
-<port>lk</port>
-</source>
-</datalink>
-<datalink>
-<sink type="dataflow">
-<port>kk</port>
-</sink>
-<source type="processor">
-<processor>Concatenate_two_strings</processor>
-<port>output</port>
-</source>
-</datalink>
-<datalink>
-<sink type="dataflow">
-<port>String_constant_value</port>
-</sink>
-<source type="processor">
-<processor>String_constant</processor>
-<port>value</port>
-</source>
-</datalink>
-</datalinks>
-<annotations />
-</dataflow>
-</workflow>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/as.txt
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/as.txt b/taverna-scufl2-t2flow/src/test/resources/as.txt
deleted file mode 100644
index 323db46..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/as.txt
+++ /dev/null
@@ -1,274 +0,0 @@
-WorkflowBundle 'Workflow1'
-  MainWorkflow 'Workflow1'
-  Workflow 'Workflow1'
-    Out 'asdasd'
-    Processor 'Concatenate_two_strings'
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Processor 'Concatenate_two_strings_2'
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Processor 'Concatenate_two_strings_3'
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Processor 'Concatenate_two_strings_4'
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Processor 'Create_Lots_Of_Strings'
-      Out 'strings'
-    Processor 'Echo_List'
-      In 'inputlist'
-      Out 'outputlist'
-    Processor 'String_constant'
-      Out 'value'
-    Processor 'Workflow19'
-      In 'lk'
-      Out 'String_constant_value'
-      Out 'kk'
-    Links
-      'Concatenate_two_strings:output' -> 'Workflow19:lk'
-      'Concatenate_two_strings_2:output' -> 'Concatenate_two_strings:string2'
-      'Concatenate_two_strings_3:output' -> 'Echo_List:inputlist'
-      'Concatenate_two_strings_4:output' -> 'Echo_List:inputlist'
-      'Create_Lots_Of_Strings:strings' -> 'Concatenate_two_strings:string1'
-      'Create_Lots_Of_Strings:strings' -> 'Concatenate_two_strings_2:string1'
-      'Create_Lots_Of_Strings:strings' -> 'Concatenate_two_strings_2:string2'
-      'Echo_List:outputlist' -> 'asdasd'
-      'String_constant:value' -> 'Concatenate_two_strings_3:string2'
-      'String_constant:value' -> 'Concatenate_two_strings_4:string1'
-      'Workflow19:String_constant_value' -> 'Concatenate_two_strings_4:string2'
-      'Workflow19:kk' -> 'Concatenate_two_strings_3:string1'
-  Workflow 'Workflow19'
-    In 'lk'
-    Out 'String_constant_value'
-    Out 'kk'
-    Processor 'Concatenate_two_strings'
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Processor 'String_constant'
-      Out 'value'
-    Processor 'string1_value'
-      Out 'value'
-    Links
-      'Concatenate_two_strings:output' -> 'kk'
-      'String_constant:value' -> 'String_constant_value'
-      'lk' -> 'Concatenate_two_strings:string2'
-      'string1_value:value' -> 'Concatenate_two_strings:string1'
-    Controls
-      block 'String_constant' until 'Concatenate_two_strings' finish
-  MainProfile 'taverna-2.1.0'
-  Profile 'taverna-2.1.0'
-    Activity 'Concatenate_two_strings'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Activity 'Concatenate_two_strings1'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Activity 'Concatenate_two_strings_2'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Activity 'Concatenate_two_strings_3'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Activity 'Concatenate_two_strings_4'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'string1'
-      In 'string2'
-      Out 'output'
-    Activity 'Create_Lots_Of_Strings'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      Out 'strings'
-    Activity 'Echo_List'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell>
-      In 'inputlist'
-      Out 'outputlist'
-    Activity 'String_constant'
-      Type <http://ns.taverna.org.uk/2010/activity/constant>
-      Out 'value'
-    Activity 'String_constant1'
-      Type <http://ns.taverna.org.uk/2010/activity/constant>
-      Out 'value'
-    Activity 'Workflow19'
-      Type <http://ns.taverna.org.uk/2010/activity/nested-workflow>
-      In 'lk'
-      Out 'String_constant_value'
-      Out 'kk'
-    Activity 'string1_value'
-      Type <http://ns.taverna.org.uk/2010/activity/constant>
-      Out 'value'
-    ProcessorBinding 'Concatenate_two_strings'
-      Activity 'Concatenate_two_strings'
-      Processor 'Workflow1:Concatenate_two_strings'
-      InputPortBindings
-        'string1' -> 'string1'
-        'string2' -> 'string2'
-      OutputPortBindings
-        'output' -> 'output'
-    ProcessorBinding 'Concatenate_two_strings1'
-      Activity 'Concatenate_two_strings1'
-      Processor 'Workflow19:Concatenate_two_strings'
-      InputPortBindings
-        'string1' -> 'string1'
-        'string2' -> 'string2'
-      OutputPortBindings
-        'output' -> 'output'
-    ProcessorBinding 'Concatenate_two_strings_2'
-      Activity 'Concatenate_two_strings_2'
-      Processor 'Workflow1:Concatenate_two_strings_2'
-      InputPortBindings
-        'string1' -> 'string1'
-        'string2' -> 'string2'
-      OutputPortBindings
-        'output' -> 'output'
-    ProcessorBinding 'Concatenate_two_strings_3'
-      Activity 'Concatenate_two_strings_3'
-      Processor 'Workflow1:Concatenate_two_strings_3'
-      InputPortBindings
-        'string1' -> 'string1'
-        'string2' -> 'string2'
-      OutputPortBindings
-        'output' -> 'output'
-    ProcessorBinding 'Concatenate_two_strings_4'
-      Activity 'Concatenate_two_strings_4'
-      Processor 'Workflow1:Concatenate_two_strings_4'
-      InputPortBindings
-        'string1' -> 'string1'
-        'string2' -> 'string2'
-      OutputPortBindings
-        'output' -> 'output'
-    ProcessorBinding 'Create_Lots_Of_Strings'
-      Activity 'Create_Lots_Of_Strings'
-      Processor 'Workflow1:Create_Lots_Of_Strings'
-      OutputPortBindings
-        'strings' -> 'strings'
-    ProcessorBinding 'Echo_List'
-      Activity 'Echo_List'
-      Processor 'Workflow1:Echo_List'
-      InputPortBindings
-        'inputlist' -> 'inputlist'
-      OutputPortBindings
-        'outputlist' -> 'outputlist'
-    ProcessorBinding 'String_constant'
-      Activity 'String_constant'
-      Processor 'Workflow1:String_constant'
-      OutputPortBindings
-        'value' -> 'value'
-    ProcessorBinding 'String_constant1'
-      Activity 'String_constant1'
-      Processor 'Workflow19:String_constant'
-      OutputPortBindings
-        'value' -> 'value'
-    ProcessorBinding 'Workflow19'
-      Activity 'Workflow19'
-      Processor 'Workflow1:Workflow19'
-      InputPortBindings
-        'lk' -> 'lk'
-      OutputPortBindings
-        'String_constant_value' -> 'String_constant_value'
-        'kk' -> 'kk'
-    ProcessorBinding 'string1_value'
-      Activity 'string1_value'
-      Processor 'Workflow19:string1_value'
-      OutputPortBindings
-        'value' -> 'value'
-    Configuration 'Concatenate_two_strings'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Concatenate_two_strings'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.StringConcat","script":"output = string1 + string2;"}
-    Configuration 'Concatenate_two_strings-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Concatenate_two_strings'
-        {}
-    Configuration 'Concatenate_two_strings-proc1'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Concatenate_two_strings'
-        {}
-    Configuration 'Concatenate_two_strings1'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Concatenate_two_strings1'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.StringConcat","script":"output = string1 + string2;"}
-    Configuration 'Concatenate_two_strings_2'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Concatenate_two_strings_2'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.StringConcat","script":"output = string1 + string2;"}
-    Configuration 'Concatenate_two_strings_2-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Concatenate_two_strings_2'
-        {}
-    Configuration 'Concatenate_two_strings_3'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Concatenate_two_strings_3'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.StringConcat","script":"output = string1 + string2;"}
-    Configuration 'Concatenate_two_strings_3-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Concatenate_two_strings_3'
-        {}
-    Configuration 'Concatenate_two_strings_4'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Concatenate_two_strings_4'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.StringConcat","script":"output = string1 + string2;"}
-    Configuration 'Concatenate_two_strings_4-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Concatenate_two_strings_4'
-        {}
-    Configuration 'Create_Lots_Of_Strings'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Create_Lots_Of_Strings'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings","script":"List strings = new ArrayList();\nfor (int i = 0; i < 40; i++) {\n\tstrings.add(\"String\" + i);\n}\n"}
-    Configuration 'Create_Lots_Of_Strings-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Create_Lots_Of_Strings'
-        {}
-    Configuration 'Echo_List'
-      Type <http://ns.taverna.org.uk/2010/activity/beanshell#Config>
-      Configures 'activity/Echo_List'
-        {"derivedFrom":"http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.EchoList","script":"outputlist = inputlist;"}
-    Configuration 'Echo_List-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Echo_List'
-        {}
-    Configuration 'String_constant'
-      Type <http://ns.taverna.org.uk/2010/activity/constant#Config>
-      Configures 'activity/String_constant'
-        {"string":"Add your own value here"}
-    Configuration 'String_constant-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/String_constant'
-        {}
-    Configuration 'String_constant-proc1'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/String_constant'
-        {}
-    Configuration 'String_constant1'
-      Type <http://ns.taverna.org.uk/2010/activity/constant#Config>
-      Configures 'activity/String_constant1'
-        {"string":"Add your own value here"}
-    Configuration 'Workflow19'
-      Type <http://ns.taverna.org.uk/2010/activity/nested-workflow#Config>
-      Configures 'activity/Workflow19'
-        {"nestedWorkflow":"Workflow19"}
-    Configuration 'Workflow19-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/Workflow19'
-        {}
-    Configuration 'string1_value'
-      Type <http://ns.taverna.org.uk/2010/activity/constant#Config>
-      Configures 'activity/string1_value'
-        {"string":"kjkj"}
-    Configuration 'string1_value-proc'
-      Type <http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig>
-      Configures 'processor/string1_value'
-        {}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/beanshell-deps.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/beanshell-deps.t2flow b/taverna-scufl2-t2flow/src/test/resources/beanshell-deps.t2flow
deleted file mode 100755
index 3d52c25..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/beanshell-deps.t2flow
+++ /dev/null
@@ -1,47 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.3.0"><dataflow id="9a455aad-8690-4a1a-862b-a5d5feee84cf" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>A_C_workflow</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies>
-    <string>libraryA.jar</string>
-    <string>libraryC.jar</string>
-  </localDependencies>
-  <artifactDependencies />
-  <script>A C workflow</script>
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>B_system</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <inputs />
-  <outputs />
-  <classLoaderSharing>system</classLoaderSharing>
-  <localDependencies>
-    <string>libraryB.jar</string>
-  </localDependencies>
-  <artifactDependencies />
-  <script>A C workflow</script>
-  <dependencies />
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks /><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>9a455aad-8690-4a1a-862b-a5d5feee84cf</identification>
-      </annotationBean>
-      <date>2011-09-02 12:07:29.382 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/component_simple.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/component_simple.t2flow b/taverna-scufl2-t2flow/src/test/resources/component_simple.t2flow
deleted file mode 100644
index e240e38..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/component_simple.t2flow
+++ /dev/null
@@ -1,35 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-digitalpreservation-2.5.0"><dataflow id="b521b6df-57f3-4eed-8536-c4c1a044dfcc" role="top"><name>Workflow1</name><inputPorts><port><name>doc1</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port><port><name>doc2</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>docOut</name><lastPredictedDepth>0</lastPredictedDepth><annotations /></port></outputPorts><processors><processor><name>combiner</name><inputPorts><port><name>metricDocument1</name><depth>0</depth></port><port><name>metricDocument2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>combinedMetricDocument</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.component</group><artifact>component-activity</artifact><version>1.5</version></raven><class>ne
 t.sf.taverna.t2.component.ComponentActivity</class><inputMap><map from="metricDocument1" to="metricDocument1" /><map from="metricDocument2" to="metricDocument2" /></inputMap><outputMap><map from="combinedMetricDocument" to="combinedMetricDocument" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.component.ComponentActivityConfigurationBean xmlns="">
-  <registryBase>http://www.myexperiment.org</registryBase>
-  <familyName>SCAPE Utility Components</familyName>
-  <componentName>MeasuresDocCombiner</componentName>
-  <componentVersion>1</componentVersion>
-</net.sf.taverna.t2.component.ComponentActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.5</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="metricDocument1" depth="0" /><port name="metricDocument2" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>combiner</processor><port>metricDocument1</port></sink><source type="dataflow"><port>doc1</port></source></datalink><datalink><sink type="processor"><processor>combiner</processor><port>metricDocument2</port></sink><source type="dataflow"><port>doc2</port></source></datalink><datalink><sink type="dataflow"><por
 t>docOut</port></sink><source type="processor"><processor>combiner</processor><port>combinedMetricDocument</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>b521b6df-57f3-4eed-8536-c4c1a044dfcc</identification>
-      </annotationBean>
-      <date>2014-06-30 10:56:39.855 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>242c7677-5908-4036-8bb5-9deb56f00d3f</identification>
-      </annotationBean>
-      <date>2014-06-30 10:47:40.365 UTC</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/resources/dataflow_link_then_merge.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/resources/dataflow_link_then_merge.t2flow b/taverna-scufl2-t2flow/src/test/resources/dataflow_link_then_merge.t2flow
deleted file mode 100644
index 62206b6..0000000
--- a/taverna-scufl2-t2flow/src/test/resources/dataflow_link_then_merge.t2flow
+++ /dev/null
@@ -1,66 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="aaecfd60-6456-4573-a25c-bcb841050601" role="top"><name>Workflow1</name><inputPorts /><outputPorts><port><name>a</name><annotations /></port><port><name>b</name><annotations /></port></outputPorts><processors><processor><name>Echo_List</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>outputlist</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="inputlist" to="inputlist" /></inputMap><outputMap><map from="outputlist" to="outputlist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurati
 onBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EchoList</localworkerName>
-  <script>outputlist = inputlist;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="inputlist" depth="1" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>a</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" />
 </outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>a</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>b</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.
 t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>b</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="dataflow"><port>b</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalink><sink type="merge"><port>b</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="merge"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>b</processor><port>value</port></source></datalink><datalin
 k><sink type="merge"><processor>Echo_List</processor><port>inputlist</port></sink><source type="processor"><processor>a</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>a</port></sink><source type="processor"><processor>Echo_List</processor><port>outputlist</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>aaecfd60-6456-4573-a25c-bcb841050601</identification>
-      </annotationBean>
-      <date>2010-10-29 09:52:34.321 BST</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
\ No newline at end of file


[32/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Workflow.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Workflow.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Workflow.java
deleted file mode 100644
index 0b101c5..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Workflow.java
+++ /dev/null
@@ -1,283 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.apache.taverna.scufl2.api.annotation.Revisioned;
-import org.apache.taverna.scufl2.api.common.AbstractRevisioned;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Ported;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-
-
-/**
- * A <code>Workflow</code> is a set of {@link Processor}s and {@link DataLink}s
- * between the <code>Processor</code>s. <code>Workflow</code>s may also have
- * input and output ports.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public class Workflow extends AbstractRevisioned implements
-		Child<WorkflowBundle>, Ported, Revisioned {
-	public static final URI WORKFLOW_ROOT = URI
-			.create("http://ns.taverna.org.uk/2010/workflow/");
-
-	private final TreeSet<DataLink> dataLinks = new TreeSet<>();
-	private final TreeSet<ControlLink> controlLinks = new TreeSet<>();
-	private final NamedSet<InputWorkflowPort> inputPorts = new NamedSet<>();
-	private final NamedSet<OutputWorkflowPort> outputPorts = new NamedSet<>();
-	private final NamedSet<Processor> processors = new NamedSet<>();
-	private WorkflowBundle parent;
-
-	/**
-	 * Constructs a <code>Workflow</code> with a name based on a random UUID.
-	 */
-	public Workflow() {	
-	}
-
-	/**
-     * Constructs a <code>Workflow</code> with the specified name.
-     * 
-     * @param name
-     *            The name of the <code>Workflow</code>. <strong>Must
-     *            not</strong> be <code>null</code> or an empty String.
-     */
-    public Workflow(String name) {
-        super(name);
-    }
-	
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this)) {
-			List<WorkflowBean> children = new ArrayList<>();
-			children.addAll(getInputPorts());
-			children.addAll(getOutputPorts());
-			children.addAll(getProcessors());
-			children.addAll(getDataLinks());
-			children.addAll(getControlLinks());
-			children.add(getCurrentRevision());
-			for (WorkflowBean bean : children)
-				if (!bean.accept(visitor))
-					break;
-		}
-		return visitor.visitLeave(this);
-	}
-
-	/**
-	 * Returns the <code>ControlLink</code>s.
-	 * 
-	 * If there are no <code>ControlLink</code>s an empty set is returned.
-	 * 
-	 * @return the <code>ControlLink</code>s
-	 */
-	public Set<ControlLink> getControlLinks() {
-		return controlLinks;
-	}
-	
-	/**
-	 * Returns the <code>DataLink</code>s.
-	 * 
-	 * If there are no <code>DataLink</code>s an empty set is returned.
-	 * 
-	 * @return the <code>DataLink</code>s.
-	 */
-	public Set<DataLink> getDataLinks() {
-		return dataLinks;
-	}
-
-	/**
-	 * Returns the <code>InputWorkflowPort</code>s.
-	 * 
-	 * If there are no <code>InputWorkflowPort</code>s an empty set is returned.
-	 * 
-	 * @return the <code>InputWorkflowPort</code>s.
-	 */
-	@Override
-	public NamedSet<InputWorkflowPort> getInputPorts() {
-		return inputPorts;
-	}
-
-	/**
-	 * Returns the <code>OutputWorkflowPort</code>s.
-	 * 
-	 * If there are no <code>OutputWorkflowPort</code>s an empty set is
-	 * returned.
-	 * 
-	 * @return the <code>OutputWorkflowPort</code>s.
-	 */
-	@Override
-	public NamedSet<OutputWorkflowPort> getOutputPorts() {
-		return outputPorts;
-	}
-
-	@Override
-	public WorkflowBundle getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns the <code>Processor</code>s.
-	 * 
-	 * If there are no <code>Processor</code>s an empty set is returned.
-	 * 
-	 * @return the <code>Processor</code>s.
-	 */
-	public NamedSet<Processor> getProcessors() {
-		return processors;
-	}
-
-	/**
-	 * Set the <code>ControlLink</code>s to be the contents of the specified
-	 * set.
-	 * <p>
-	 * <code>ControlLink</code>s can be added by using
-	 * {@link #getControlLinks()}.add(controlLink).
-	 * 
-	 * @param controlLinks
-	 *            the <code>ControlLink</code>s. <strong>Must not</strong> be
-	 *            null
-	 */
-	public void setControlLinks(Set<ControlLink> controlLinks) {
-		this.controlLinks.clear();
-		this.controlLinks.addAll(controlLinks);
-	}
-	
-	/**
-	 * Set the <code>DataLink</code>s to be the contents of the specified set.
-	 * <p>
-	 * <code>DataLink</code>s can be added by using {@link #getDataLinks()}
-	 * .add(dataLink).
-	 * 
-	 * @param dataLinks
-	 *            the <code>DataLink</code>s. <strong>Must not</strong> be null
-	 */
-	public void setDataLinks(Set<DataLink> dataLinks) {
-		this.dataLinks.clear();
-		this.dataLinks.addAll(dataLinks);
-	}
-
-	/**
-	 * Set the <code>InputWorkflowPort</code>s to be the contents of the
-	 * specified set.
-	 * <p>
-	 * <code>InputWorkflowPort</code>s can be added by using
-	 * {@link #getInputWorkflowPorts()}.add(inputPort).
-	 * 
-	 * @param inputPorts
-	 *            the <code>InputWorkflowPort</code>s. <strong>Must not</strong>
-	 *            be null
-	 */
-	public void setInputPorts(Set<InputWorkflowPort> inputPorts) {
-		this.inputPorts.clear();
-		for (InputWorkflowPort inputPort : inputPorts)
-			inputPort.setParent(this);
-	}
-
-	/**
-	 * Set the <code>OutputWorkflowPort</code>s to be the contents of the
-	 * specified set.
-	 * <p>
-	 * <code>OutputWorkflowPort</code>s can be added by using
-	 * {@link #getOutputWorkflowPorts()}.add(outputPort).
-	 * 
-	 * @param outputPorts
-	 *            the <code>OutputWorkflowPort</code>s. <strong>Must
-	 *            not</strong> be null
-	 */
-	public void setOutputPorts(Set<OutputWorkflowPort> outputPorts) {
-		this.outputPorts.clear();
-		for (OutputWorkflowPort outputPort : outputPorts)
-			outputPort.setParent(this);
-	}
-
-	@Override
-	public void setParent(WorkflowBundle parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getWorkflows().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getWorkflows().add(this);
-	}
-
-	/**
-	 * Set the <code>Processor</code>s to be the contents of the specified set.
-	 * <p>
-	 * <code>Processor</code>s can be added by using {@link #getProcessors()}
-	 * .add(processor).
-	 * 
-	 * @param processors
-	 *            the <code>Processor</code>s. <strong>Must not</strong> be null
-	 */
-	public void setProcessors(Set<Processor> processors) {
-		this.processors.clear();
-		for (Processor processor : processors)
-			processor.setParent(this);
-	}
-
-	/**
-	 * Updates the workflow identifier.
-	 * <p>
-	 * The {@link #getCurrentRevision()} will be replaced using using
-	 * {@link #newRevision()}.
-	 * 
-	 */
-	public void updateWorkflowIdentifier() {
-		newRevision();
-	}
-
-	@SuppressWarnings("unused")
-	private String toString(Collection<?> collection, int maxLen) {
-		StringBuilder builder = new StringBuilder("[");
-		String sep = "";
-		int i = 0;
-		for (Object o : collection) {
-			builder.append(sep).append(o);
-			sep = ", ";
-			if (++i >= maxLen)
-				break;
-		}
-		return builder.append("]").toString();
-	}
-
-	@Override
-	protected URI getIdentifierRoot() {
-		return WORKFLOW_ROOT;
-	}
-	
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		Workflow cloneWorkflow = (Workflow)clone;
-		cloneWorkflow.setCurrentRevision(cloning.cloneIfNotInCache(getCurrentRevision()));		
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/package-info.java
deleted file mode 100644
index 5061365..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/IterableComparator.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/IterableComparator.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/IterableComparator.java
deleted file mode 100644
index d7b3972..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/IterableComparator.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package org.apache.taverna.scufl2.api.impl;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-
-/**
- * A Comparator of Iterables of comparables.
- * <p>
- * This comparator compares two {@link Iterable}s by comparing their items.
- * Iterables are compared on the first items, then on the second items, etc. If
- * Iterable A is larger than Iterable B, but all the items of B compared 0
- * (equal) with the corresponding items in A, then the comparator will sort the
- * smaller Iterable before the bigger Iterable.
- * <p>
- * Obviously this comparator would not give predictable results for
- * {@link Iterable}s which don't have a predictable iteration order, like
- * {@link HashSet}, but should work well with {@link List}s,
- * {@link LinkedHashSet}, etc.
- * <p>
- * The two Iterables don't need to contain items of the same classes, as long as
- * their element's {@link Comparable#compareTo(Object)} allow comparison. (For
- * instance a Iterable&lt;String&gt; would not compare against
- * Iterable&lt;Integer&gt;). As according to
- * {@link Comparator#compare(Object, Object)} a {@link ClassCastException} would
- * be thrown in such cases.
- * <p>
- * Items in the Iterable are compared using {@link NullSafeComparator}, so this
- * comparator will handle Iterables containing <code>null</code> items
- * predictably. This comparator also allows <code>null</code> in the same way,
- * so comparison of a {@link Iterable} and <code>null</code> will sort
- * <code>null</code> before the Iterable.
- * <p>
- * If an item in the Iterable is a {@link Iterable} which is not itself
- * {@link Comparable}, and it is being compared with a different Iterable, it
- * will be recursively compared with the same instance of
- * {@link IterableComparator}. However, if such {@link Iterable}s are compared
- * with other {@link Comparable}s a {@link ClassCastException} would be thrown.
- * <p>
- * If an item in a Iterable is not {@link Comparable} <code>null</code> and
- * could not be recursively compared, a {@link ClassCastException} will be
- * thrown, as according to {@link Comparator#compare(Object, Object)}
- * 
- * @author Stian Soiland-Reyes
- */
-public class IterableComparator implements Comparator<Iterable<?>> {
-	@Override
-	public int compare(Iterable<?> a, Iterable<?> b) {
-		Integer nullCompare = compareNulls(a, b);
-		if (nullCompare != null)
-			return nullCompare;
-		
-		Iterator<?> aIt = a.iterator();
-		Iterator<?> bIt = b.iterator();
-		
-		while (aIt.hasNext() && bIt.hasNext()) {
-			int itemCompare = compareItems(aIt.next(), bIt.next());
-			if (itemCompare != 0)
-				return itemCompare;
-		}
-		// Puh, compared all corresponding items
-		
-		if (aIt.hasNext())
-			return 1; // a is bigger
-		if (bIt.hasNext())
-			return -1; // a is smaller
-		// Both finished? Then we are equal!
-		return 0;		
-	}
-
-	@SuppressWarnings("unchecked")
-	protected int compareItems(Object a, Object b) {
-		Integer nullCompare = compareNulls(a, b);
-		if (nullCompare != null)
-			return nullCompare;
-		if (a instanceof Comparable && b instanceof Comparable)
-			return ((Comparable<Object>) a).compareTo((Comparable<Object>) b);
-		if (a instanceof Iterable && b instanceof Iterable)
-			// Recurse
-			return compare((Iterable<?>) a, (Iterable<?>) b);
-		throw new ClassCastException(
-				"Compared items must be null, or both be Comparable or Iterables");
-	}
-
-	protected Integer compareNulls(Object a, Object b) {
-		if (a == null && b == null)
-			return 0;
-		if (a == null && b != null)
-			return -1;
-		if (a != null && b == null)
-			return 1;
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/LazyMap.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/LazyMap.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/LazyMap.java
deleted file mode 100644
index 4ec5ce7..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/LazyMap.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.taverna.scufl2.api.impl;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.Comparator;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-/**
- * A lazy TreeMap, inspired by org.apache.commons.collections.map.LazyMap
- * <p>
- * On {@link #get(Object)}, if a key is not found in the map,
- * {@link #getDefault(Object)} will be called to create the value for the given
- * key. This value is subsequently inserted into the map before being returned.
- * <p>
- * Call {@link #containsKey(Object)} to check if a key is in the map.
- * <p>
- * Implementations of this class must implement {@link #getDefault(Object)} to
- * specify the default value to create.
- * 
- * @author Stian Soiland-Reyes
- * 
- * @param <KeyType>
- *            Type of key
- * @param <ValueType>
- *            Type of value
- */
-public abstract class LazyMap<KeyType, ValueType> extends
-		TreeMap<KeyType, ValueType> implements Map<KeyType, ValueType> {
-	private static final long serialVersionUID = 3284689384208221667L;
-
-	public LazyMap() {
-		super();
-	}
-
-	public LazyMap(Comparator<? super KeyType> comparator) {
-		super(comparator);
-	}
-
-	public LazyMap(Map<? extends KeyType, ? extends ValueType> m) {
-		super(m);
-	}
-
-	public LazyMap(SortedMap<KeyType, ? extends ValueType> m) {
-		super(m);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public ValueType get(Object key) {
-		ValueType value = super.get(key);
-		if (value == null) {
-			value = getDefault((KeyType) key);
-			put((KeyType) key, value);
-		}
-		return value;
-	}
-
-	public abstract ValueType getDefault(KeyType key);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/NullSafeComparator.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/NullSafeComparator.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/NullSafeComparator.java
deleted file mode 100644
index b8d39c3..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/impl/NullSafeComparator.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.apache.taverna.scufl2.api.impl;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.Comparator;
-
-/**
- * A Comparator that is null-safe
- * <p>
- * This comparator performs {@link Comparable#compareTo(Object)} if both objects
- * are non-null, and sorts <code>null</code> to be -1 (before the non-null), and
- * compares two <code>null</code>s as equal.
- * </p>
- * <p>
- * The static method {@link #compareObjects(Object, Object)} can be used if such
- * a comparison is needed without having to instantiate this class, for instance
- * because it is used within a {@link Comparable#compareTo(Object)} or because
- * the two arguments are not of an agreeable subclass &lt<T&gt; of
- * {@link Comparable} (but still can be compared).
- * 
- * @author Stian Soiland-Reyes
- * @param <T>
- *            The common type of the objects to be compared.
- */
-public class NullSafeComparator<T extends Comparable<T>> implements
-		Comparator<T> {
-	/**
-	 * Compare two objects for <code>null</code>ity only.
-	 * <p>
-	 * If both parameters are <code>null</code>, return <code>0</code>. If only a
-	 * is <code>null</code>, return <code>-1</code>, if only b is
-	 * <code>null</code>, return <code>1</code>. If none are <code>null</code>,
-	 * return <code>null</code>.
-	 * </p>
-	 * The <code>null</code> return might sound counter-intuitive, but it
-	 * basically means that the objects could not be compared on nullity alone,
-	 * and must be further compared.
-	 * 
-	 * @param a
-	 *            First object to compare
-	 * @param b
-	 *            Second object to compare
-	 * @return 0 if both are null, -1 if a is null, 1 if b is null, otherwise
-	 *         <code>null</code>.
-	 */
-	public static Integer nullCompare(Object a, Object b) {
-		if (a == null && b == null)
-			return 0;
-		if (a == null && b != null)
-			return -1;
-		if (a != null && b == null)
-			return 1;
-		return null;
-	}
-
-	/**
-	 * Compare any two objects, null-safe.
-	 * <p>
-	 * If any of the parameters are <code>null</code>, results are returned as
-	 * for {@link #nullCompare(Object, Object)}. Otherwise,
-	 * {@link Comparable#compareTo(Object)} is called on the first parameter
-	 * against the second.
-	 * 
-	 * @param a
-	 *            First object to compare. Must be instance of
-	 *            {@link Comparable}.
-	 * @param b
-	 *            Second object to compare. Must be
-	 * @return 0 if both are null, -1 if a is null, 1 if b is null, otherwise
-	 *         the result of a.compareTo(b).
-	 * @throws ClassCastException
-	 *             if the specified object's type prevents it from being
-	 *             compared to this object.
-	 */
-	@SuppressWarnings("unchecked")
-	public static int compareObjects(Object a, Object b) {
-		Integer diff = nullCompare(a, b);
-		if (diff != null)
-			return diff;
-		return ((Comparable<Object>) a).compareTo(b);
-	}
-
-	@Override
-	public int compare(T a, T b) {
-		return compareObjects(a, b);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/ReaderException.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/ReaderException.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/ReaderException.java
deleted file mode 100644
index 553c0ff..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/ReaderException.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * Thrown when there is a problem reading a {@link WorkflowBundle}
- * 
- * @see WorkflowBundleIO#readBundle(java.io.File, String)
- * @see WorkflowBundleIO#readBundle(java.io.InputStream, String)
- * @see WorkflowBundleIO#readBundle(java.net.URL, String)
- * @see WorkflowBundleReader#readBundle(java.io.File, String)
- * @see WorkflowBundleReader#readBundle(java.io.InputStream, String)
- */
-@SuppressWarnings("serial")
-public class ReaderException extends Exception {
-	/**
-	 * Constructs an exception with no message or cause.
-	 */
-	public ReaderException() {
-	}
-
-	/**
-	 * Constructs an exception with the specified message and no cause.
-	 * 
-	 * @param message
-	 *            details about the exception. Can be <code>null</code>
-	 */
-	public ReaderException(String message) {
-		super(message);
-	}
-
-	/**
-	 * Constructs an exception with the specified message and cause.
-	 * 
-	 * @param message
-	 *            details about the exception. Can be <code>null</code>
-	 * @param cause
-	 *            the cause of the exception. Can be <code>null</code>
-	 */
-	public ReaderException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * Constructs an exception with the specified cause and and the same message
-	 * as the cause (if the cause is not null).
-	 * 
-	 * @param cause
-	 *            the cause of the exception. Can be <code>null</code>
-	 */
-	public ReaderException(Throwable cause) {
-		super(cause);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleIO.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleIO.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleIO.java
deleted file mode 100644
index d8cb24f..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleIO.java
+++ /dev/null
@@ -1,538 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.ServiceLoader;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.logging.Logger;
-
-import org.apache.taverna.scufl2.api.annotation.Revisioned;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-/**
- * Utility class for reading and writing <code>WorkflowBundle</code>s.
- * <p>
- * This class depends on implemented {@link WorkflowBundleReader} and
- * {@link WorkflowBundleWriter} instances, which are discovered from the
- * classpath using {@link ServiceLoader} or set using {@link #setReaders(List)}
- * and {@link #setWriters(List)}. An OSGi service descriptors is provided for
- * instantiating this class as bean <code>workflowBundleIO</code>, while
- * non-OSGi uses can just instantiate this class where needed.
- * <p>
- * The methods {@link #readBundle(File, String)},
- * {@link #readBundle(InputStream, String)}, {@link #readBundle(URL, String)}
- * and {@link #writeBundle(WorkflowBundle, File, String)}/
- * {@link #writeBundle(WorkflowBundle, OutputStream, String)} take an argument
- * to indicate the media type of the format. The reader methods from file and
- * URL allow the parameter to be <code>null</code> in order to guess the format,
- * but the writer method requires the format to be specified explicitly.
- * <p>
- * Known supported formats (as of 2013-04-23):
- * <dl>
- * <dt>text/vnd.taverna.scufl2.structure</dt>
- * <dd>A textual tree-view, useful for debugging, but probably incomplete for
- * actual workflow execution. Reader and writer provided by scufl2-api (this
- * module).</dd>
- * <dt>application/vnd.taverna.scufl2.workflow-bundle</dt>
- * <dd>The <a href=
- * 'http://dev.mygrid.org.uk/wiki/display/developer/Taverna+Workflow+Bundle'>SCU
- * F L 2 workflow bundle</a> format, a ZIP container of RDF/XML files. Reader
- * and writer provided by the scufl2-rdfxml module.</dd>
- * <dt>application/vnd.taverna.t2flow+xml</dt>
- * <dd>The Taverna 2 workflow format t2flow. An XML format based on XMLBeans
- * serialization of T2 java objects. Reader provided by the scufl2-t2flow
- * module.
- * <dt>application/vnd.taverna.scufl+xml</dt>
- * <dd>The Taverna 1 workflow format SCUFL. An XML format made for the FreeFluo
- * workflow engine. Experimental reader provided by the scufl2-scufl module.
- * <dt>text/vnd.wf4ever.wfdesc+turtle</dt>
- * <dd>An abstract workflow structure format by the <a
- * href="http://www.wf4ever-project.org/">Wf4Ever project. RDF Turtle according
- * to the <a href="http://purl.org/wf4ever/model">wfdesc ontology</a>. Writer
- * provided by the third-party <a
- * href="https://github.com/wf4ever/scufl2-wfdesc">scufl2-wfdesc</a> module.
- * </dl>
- */
-public class WorkflowBundleIO {
-	private static Logger log = Logger.getLogger(WorkflowBundleIO.class
-			.getCanonicalName());
-
-	private static final Scufl2Tools scufl2Tools = new Scufl2Tools();
-	// delay initialising the ServiceLoaders
-	protected ServiceLoader<WorkflowBundleWriter> writersLoader;
-	protected ServiceLoader<WorkflowBundleReader> readersLoader;
-
-	private List<WorkflowBundleWriter> writers;
-
-	private List<WorkflowBundleReader> readers;
-
-	protected List<WorkflowBundleReader> discoverReaders() {
-		synchronized (this) {
-			if (readersLoader == null)
-				/*
-				 * FIXME: This uses Thread.currentThread.getContextClassLoader()
-				 * - depending on who gets synchronized-block first this can
-				 * vary - but as it's still local per instance of
-				 * WorkflowBundleIO it should be OK for now.
-				 */
-				readersLoader = ServiceLoader.load(WorkflowBundleReader.class);
-		}
-
-		List<WorkflowBundleReader> allReaders = new ArrayList<>();
-		for (WorkflowBundleReader reader : readersLoader)
-			allReaders.add(reader);
-		return allReaders;
-	}
-
-	protected List<WorkflowBundleWriter> discoverWriters() {
-		synchronized (this) {
-			if (writersLoader == null)
-				/*
-				 * FIXME: This uses Thread.currentThread.getContextClassLoader()
-				 * - depending on who gets synchronized-block first this can
-				 * vary - but as it's still local per instance of
-				 * WorkflowBundleIO it should be OK for now.
-				 */
-				writersLoader = ServiceLoader.load(WorkflowBundleWriter.class);
-		}
-		List<WorkflowBundleWriter> allWriters = new ArrayList<>();
-		for (WorkflowBundleWriter writer : writersLoader)
-			allWriters.add(writer);
-		return allWriters;
-	}
-
-	/**
-	 * Returns a <code>WorkflowBundleReader</code> for the specified media type.
-	 * 
-	 * If there is more than one <code>WorkflowBundleReader</code> for the
-	 * specified media type the first reader discovered is returned. Subsequent
-	 * calls to this method may return a different reader.
-	 * 
-	 * If there is no <code>WorkflowBundleReader</code> for the specified media
-	 * type <code>null</code> is returned.
-	 * 
-	 * @param mediaType
-	 *            the media type of the <code>WorkflowBundleReader</code>
-	 * @return a <code>WorkflowBundleReader</code> for the specified media type
-	 */
-	public WorkflowBundleReader getReaderForMediaType(String mediaType) {
-		for (WorkflowBundleReader reader : getReaders())
-			if (reader.getMediaTypes().contains(mediaType))
-				return reader;
-		return null;
-	}
-
-	/**
-	 * Returns all the available <code>WorkflowBundleReader</code>s.
-	 * 
-	 * @return all the available <code>WorkflowBundleReader</code>s
-	 */
-	public List<WorkflowBundleReader> getReaders() {
-		if (readers == null)
-			return discoverReaders();
-		return readers;
-	}
-
-	/**
-	 * Get the supported media types for reading.
-	 * <p>
-	 * Returned media types can be used with {@link #readBundle(File, String)},
-	 * {@link #readBundle(InputStream, String)} and/or
-	 * {@link #readBundle(URL, String)}.
-	 * 
-	 * @return A (usually sorted) set of media types
-	 */
-	public Set<String> getSupportedReaderMediaTypes() {
-		Set<String> mediaTypes = new TreeSet<>();
-		for (WorkflowBundleReader reader : getReaders())
-			mediaTypes.addAll(reader.getMediaTypes());
-		return mediaTypes;
-	}
-
-	/**
-	 * Get the supported media types for writing.
-	 * <p>
-	 * Returned media types can be used with
-	 * {@link #writeBundle(WorkflowBundle, File, String)} and/or
-	 * {@link #writeBundle(WorkflowBundle, OutputStream, String)}.
-	 * 
-	 * @return A (usually sorted) set of media types
-	 */
-	public Set<String> getSupportedWriterMediaTypes() {
-		Set<String> mediaTypes = new TreeSet<>();
-		for (WorkflowBundleWriter writer : getWriters())
-			mediaTypes.addAll(writer.getMediaTypes());
-		return mediaTypes;
-	}
-
-	/**
-	 * Returns a <code>WorkflowBundleWriter</code> for the specified media type.
-	 * 
-	 * If there is more than one <code>WorkflowBundleWriter</code> for the
-	 * specified media type the first writer discovered is returned. Subsequent
-	 * calls to this method may return a different writer.
-	 * 
-	 * If there is no <code>WorkflowBundleWriter</code> for the specified media
-	 * type <code>null</code> is returned.
-	 * 
-	 * @param mediaType
-	 *            the media type of the <code>WorkflowBundleWriter</code>
-	 * @return a <code>WorkflowBundleWriter</code> for the specified media type
-	 */
-	public WorkflowBundleWriter getWriterForMediaType(String mediaType) {
-		for (WorkflowBundleWriter writer : getWriters())
-			if (writer.getMediaTypes().contains(mediaType))
-				return writer;
-		return null;
-	}
-
-	/**
-	 * Returns all the available <code>WorkflowBundleWriter</code>s.
-	 * 
-	 * @return all the available <code>WorkflowBundleWriter</code>s
-	 */
-	public List<WorkflowBundleWriter> getWriters() {
-		if (writers == null)
-			return discoverWriters();
-		return writers;
-	}
-
-	/**
-	 * Attempt to guess the media type for a stream or file that starts with
-	 * these bytes.
-	 * <p>
-	 * All registered {@link #getReaders()} are consulted.
-	 * <p>
-	 * Return <code>null</code> if ambiguous (more than one possibility) or
-	 * unknown.
-	 * 
-	 * @param firstBytes
-	 *            The initial bytes, at least 512 bytes long unless the resource
-	 *            is smaller.
-	 * @return The recognised media type, or <code>null</code> if the bytes were
-	 *         ambiguous or unknown.
-	 */
-	public String guessMediaTypeForSignature(byte[] firstBytes) {
-		Set<String> mediaTypes = new HashSet<>();
-		for (WorkflowBundleReader reader : getReaders()) {
-			String guess = reader.guessMediaTypeForSignature(firstBytes);
-			if (guess != null)
-				mediaTypes.add(guess);
-		}
-		if (mediaTypes.isEmpty())
-			return null;
-		if (mediaTypes.size() > 1) {
-			log.warning("Multiple media types found: " + mediaTypes);
-			return null;
-		}
-		return mediaTypes.iterator().next();
-	}
-
-	/**
-	 * Reads a file containing a workflow bundle in the specified media type and
-	 * returns a <code>WorkflowBundle</code>.
-	 * 
-	 * @param bundleFile
-	 *            the file containing the workflow bundle
-	 * @param mediaType
-	 *            the media type of the workflow bundle. A
-	 *            <code>WorkflowBundleReader</code> must exist for this media
-	 *            type. If <code>null</code>, the media type will be guessed as
-	 *            with {@link #guessMediaTypeForSignature(byte[])}.
-	 * @return the <code>WorkflowBundle</code> read from the file
-	 * @throws ReaderException
-	 *             if there is an error parsing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error reading the file
-	 * @throws IllegalArgumentException
-	 *             if a <code>WorkflowBundleReader</code> cannot be found for
-	 *             the media type
-	 */
-	public WorkflowBundle readBundle(File bundleFile, String mediaType)
-			throws ReaderException, IOException {
-		if (mediaType == null) {
-			byte[] firstBytes = new byte[1024];
-			try (FileInputStream fileIn = new FileInputStream(bundleFile)) {
-				fileIn.read(firstBytes);
-			}
-			mediaType = guessMediaTypeForSignature(firstBytes);
-		}
-		WorkflowBundleReader reader = getReaderForMediaType(mediaType);
-		if (reader == null) {
-			if (mediaType == null)
-				throw new IllegalArgumentException(
-						"Could not guess media type for " + bundleFile);
-			throw new IllegalArgumentException(
-					"Could not find reader for media type " + mediaType);
-		}
-		return reader.readBundle(bundleFile, mediaType);
-	}
-
-	/**
-	 * Reads a stream containing a workflow bundle in the specified media type
-	 * and returns a <code>WorkflowBundle</code>.
-	 * 
-	 * @param inputStream
-	 *            the stream containing the workflow bundle
-	 * @param mediaType
-	 *            the media type of the workflow bundle. A
-	 *            <code>WorkflowBundleReader</code> must exist for this media
-	 *            type. If <code>null</code>, the media type will be guessed as
-	 *            with {@link #guessMediaTypeForSignature(byte[])}.
-	 * @return the <code>WorkflowBundle</code> read from the stream
-	 * @throws ReaderException
-	 *             if there is an error parsing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error reading from the stream
-	 * @throws IllegalArgumentException
-	 *             if a <code>WorkflowBundleReader</code> cannot be found for
-	 *             the media type
-	 */
-	public WorkflowBundle readBundle(InputStream inputStream, String mediaType)
-			throws ReaderException, IOException {
-		if (mediaType == null) {
-			byte[] firstBytes = new byte[1024];
-			inputStream = new BufferedInputStream(inputStream);
-			try {
-				inputStream.mark(firstBytes.length * 2);
-				inputStream.read(firstBytes);
-				mediaType = guessMediaTypeForSignature(firstBytes);
-			} finally {
-				inputStream.reset();
-				// Important = so readBundle can start from the beginning
-			}
-		}
-		WorkflowBundleReader reader = getReaderForMediaType(mediaType);
-		if (reader == null) {
-			if (mediaType == null)
-				throw new IllegalArgumentException(
-						"Could not guess media type for input stream");
-			throw new IllegalArgumentException(
-					"Could not find reader for media type " + mediaType);
-		}
-		return reader.readBundle(inputStream, mediaType);
-	}
-
-	/**
-	 * Reads a URL containing a workflow bundle in the specified media type and
-	 * returns a <code>WorkflowBundle</code>.
-	 * 
-	 * @param url
-	 *            the URL containing the workflow bundle
-	 * @param mediaType
-	 *            the media type of the workflow bundle. A
-	 *            <code>WorkflowBundleReader</code> must exist for this media
-	 *            type If <code>null</code>, the media type will be guessed as
-	 *            with {@link #guessMediaTypeForSignature(byte[])}.
-	 * @return the <code>WorkflowBundle</code> read from the URL
-	 * @throws ReaderException
-	 *             if there is an error parsing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error reading from the stream
-	 * @throws IllegalArgumentException
-	 *             if a <code>WorkflowBundleReader</code> cannot be found for
-	 *             the media type
-	 */
-	public WorkflowBundle readBundle(URL url, String mediaType)
-			throws ReaderException, IOException {
-		URLConnection connection = url.openConnection();
-		if (mediaType != null && !mediaType.isEmpty())
-			addAcceptHeaders(mediaType, connection);
-		else
-			for (String supportedType : getSupportedReaderMediaTypes()) {
-				addAcceptHeaders(supportedType, connection);
-				connection.addRequestProperty("Accept", "*/*;q=0.1");
-			}
-
-		try (InputStream inputStream = connection.getInputStream()) {
-			String contentType = connection.getContentType();
-			List<String> ignoreTypes = Arrays.asList("text/plain",
-					"application/octet-stream", "application/zip",
-					"application/x-zip-compressed", "text/xml",
-					"application/xml", "content/unknown");
-			if (contentType == null || contentType.isEmpty())
-				contentType = mediaType; // might still be null -> guess
-			else
-				for (String ignore : ignoreTypes)
-					if (contentType.toLowerCase().startsWith(ignore))
-						contentType = mediaType; // might still be null -> guess
-			// TODO: Pass URL to reader (as baseURI)
-			return readBundle(url.openStream(), contentType);
-		}
-	}
-
-	private void addAcceptHeaders(String mediaType, URLConnection connection) {
-		connection.addRequestProperty("Accept", mediaType);
-
-		if (mediaType.endsWith("+zip")
-				|| mediaType.equals("vnd.taverna.scufl2.workflow-bundle")) {
-			connection.addRequestProperty("Accept", "application/zip;q=0.5");
-			connection.addRequestProperty("Accept",
-					"application/x-zip-compressed;q=0.5");
-		} else if (mediaType.endsWith("+xml")) {
-			connection.setRequestProperty("Accept", "application/xml;q=0.6");
-			connection.setRequestProperty("Accept", "text/xml;q=0.5");
-		}
-	}
-
-	/**
-	 * Sets the <code>WorkflowBundleReader</code>s.
-	 * <p>
-	 * This method will normally be called by Spring when wiring beans.
-	 * 
-	 * @param readers
-	 *            the <code>WorkflowBundleReader</code>s
-	 */
-	public void setReaders(List<WorkflowBundleReader> readers) {
-		this.readers = readers;
-	}
-
-	/**
-	 * Sets the <code>WorkflowBundleWriter</code>s.
-	 * <p>
-	 * This method will normally be called by Spring when wiring beans.
-	 * 
-	 * @param readers
-	 *            the <code>WorkflowBundleWriter</code>s
-	 */
-	public void setWriters(List<WorkflowBundleWriter> writers) {
-		this.writers = writers;
-	}
-
-	/**
-	 * Write a <code>WorkflowBundle</code> to a file with specified media type.
-	 * <p>
-	 * {@link Scufl2Tools#setParents(WorkflowBundle)} will be called on the
-	 * bundle to ensure everything contained by the bundle has it as an
-	 * ancestor.
-	 * 
-	 * @param wfBundle
-	 *            the workflow bundle to write
-	 * @param destination
-	 *            the file to write the workflow bundle to
-	 * @param mediaType
-	 *            the media type to write workflow bundle in. A
-	 *            <code>WorkflowBundleWriter</code> must exist for this media
-	 *            type
-	 * @throws WriterException
-	 *             if there is an error writing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error writing the file
-	 * @throws IllegalArgumentException
-	 *             if a <code>WorkflowBundleWriter</code> cannot be found for
-	 *             the media type
-	 */
-	public void writeBundle(WorkflowBundle wfBundle, File destination,
-			String mediaType) throws WriterException, IOException {
-		WorkflowBundleWriter writer = getWriterForMediaType(mediaType);
-		if (writer == null)
-			throw new IllegalArgumentException(
-					"Could not find writer for media type " + mediaType);
-		scufl2Tools.setParents(wfBundle);
-		writer.writeBundle(wfBundle, destination, mediaType);
-	}
-
-	/**
-	 * Write a <code>WorkflowBundle</code> to a stream with specified media
-	 * type.
-	 * <p>
-	 * {@link Scufl2Tools#setParents(WorkflowBundle)} will be called on the
-	 * bundle to ensure everything contained by the bundle has it as an
-	 * ancestor.
-	 * 
-	 * @param wfBundle
-	 *            the workflow bundle to write
-	 * @param output
-	 *            the stream to write the workflow bundle to
-	 * @param mediaType
-	 *            the media type to write workflow bundle in. A
-	 *            <code>WorkflowBundleWriter</code> must exist for this media
-	 *            type
-	 * @throws WriterException
-	 *             if there is an error writing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error writing to the stream
-	 * @throws IllegalArgumentException
-	 *             if a <code>WorkflowBundleWriter</code> cannot be found for
-	 *             the media type
-	 */
-	public void writeBundle(WorkflowBundle wfBundle, OutputStream output,
-			String mediaType) throws WriterException, IOException {
-		WorkflowBundleWriter writer = getWriterForMediaType(mediaType);
-		if (writer == null)
-			throw new IllegalArgumentException(
-					"Could not find writer for media type " + mediaType);
-		scufl2Tools.setParents(wfBundle);
-		writer.writeBundle(wfBundle, output, mediaType);
-	}
-
-	/**
-	 * Create a new WorkflowBundle with a default workflow and profile.
-	 * <p>
-	 * Unlike the {@link WorkflowBundle} constructor, this method will also make
-	 * a {@link WorkflowBundle#getMainWorkflow()} and
-	 * {@link WorkflowBundle#getMainProfile()}, simplifying construction of
-	 * workflow bundles from scratch.
-	 * <p>
-	 * Each of the bundle, workflow and profile will also have a revision set
-	 * using {@link Revisioned#newRevision()} and their names set to short
-	 * default values.
-	 * 
-	 * @return A template {@link WorkflowBundle} which has a main workflow and
-	 *         main profile
-	 */
-	public WorkflowBundle createBundle() {
-		WorkflowBundle wb = new WorkflowBundle();
-		wb.setName("bundle1");
-
-		Workflow workflow = new Workflow();
-		workflow.setName("workflow1");
-		workflow.setParent(wb);
-		workflow.newRevision();
-
-		Profile profile = new Profile();
-		profile.setName("profile1");
-		profile.setParent(wb);
-		profile.newRevision();
-
-		wb.setMainWorkflow(workflow);
-		wb.setMainProfile(profile);
-		wb.newRevision();
-		return wb;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleReader.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleReader.java
deleted file mode 100644
index 889ca43..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleReader.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-
-/**
- * A reader for {@link WorkflowBundle}s.
- * 
- * Implementations specify workflow bundle formats (media types/mime types) that
- * they can read.
- */
-public interface WorkflowBundleReader {
-	/**
-	 * Return the media types that this reader can read.
-	 * <p>
-	 * Returned media types are must be valid <code>mediaType</code> arguments
-	 * to {@link #readBundle(File, String)} and/or
-	 * {@link #readBundle(InputStream, String)} for this reader.
-	 * <p>
-	 * It is recommended, but not required, that the reader can also recognise
-	 * those media types from {@link #guessMediaTypeForSignature(byte[])}.
-	 * <p>
-	 * If the returned set is empty, the reader should should be able to
-	 * Recognise at least one media type from
-	 * {@link #guessMediaTypeForSignature(byte[])}.
-	 * 
-	 * @return the media types that this reader can read, or an empty set if
-	 *         this reader can't read any bundle formats.
-	 */
-	Set<String> getMediaTypes();
-
-	/**
-	 * Read a file containing a workflow bundle in the specified media type and
-	 * return a <code>WorkflowBundle</code>.
-	 * 
-	 * @param bundleFile
-	 *            the file containing the workflow bundle
-	 * @param mediaType
-	 *            the media type of the workflow bundle
-	 * @return the <code>WorkflowBundle</code> read from the file
-	 * @throws ReaderException
-	 *             if there is an error parsing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error reading the file
-	 */
-	WorkflowBundle readBundle(File bundleFile, String mediaType)
-			throws ReaderException, IOException;
-
-	/**
-	 * Read a stream containing a workflow bundle in the specified media type
-	 * and return a <code>WorkflowBundle</code>.
-	 * 
-	 * @param inputStream
-	 *            the stream containing the workflow bundle
-	 * @param mediaType
-	 *            the media type of the workflow bundle
-	 * @return the <code>WorkflowBundle</code> read from the stream
-	 * @throws ReaderException
-	 *             if there is an error parsing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error reading from the stream
-	 */
-	WorkflowBundle readBundle(InputStream inputStream, String mediaType)
-			throws ReaderException, IOException;
-
-	/**
-	 * Attempt to guess the media type for a stream or file that starts with
-	 * these bytes.
-	 * <p>
-	 * Return <code>null</code> if ambiguous (more than one possibility) or
-	 * unknown.
-	 * <p>
-	 * Typically a WorkflowBundleReader should be able to recognise the same
-	 * types as those listed in {@link #getMediaTypes()}, but this is no
-	 * requirement. A WorkflowBundleReader could also recognise types not listed
-	 * in its {@link #getMediaTypes()}.
-	 * 
-	 * @param firstBytes
-	 *            The initial bytes, at least 512 bytes long unless the resource
-	 *            is smaller.
-	 * @return The recognised media type, or <code>null</code> if the bytes were
-	 *         ambiguous or unknown.
-	 */
-	String guessMediaTypeForSignature(byte[] firstBytes);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleWriter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleWriter.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleWriter.java
deleted file mode 100644
index a74127f..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WorkflowBundleWriter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-
-/**
- * A writer for {@link WorkflowBundle}s.
- * 
- * Implementations specify workflow bundle formats (media types) that they can
- * write.
- */
-public interface WorkflowBundleWriter {
-	/**
-	 * Returns the media types that this writer can handle.
-	 * 
-	 * @return the media types that this writer can handle
-	 */
-	Set<String> getMediaTypes();
-
-	/**
-	 * Writes a <code>WorkflowBundle</code> to a file with specified media type.
-	 * 
-	 * @param wfBundle
-	 *            the workflow bundle to write
-	 * @param destination
-	 *            the file to write the workflow bundle to
-	 * @param mediaType
-	 *            the media type to write workflow bundle in
-	 * @throws WriterException
-	 *             if there is an error writing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error writing the file
-	 */
-	void writeBundle(WorkflowBundle wfBundle, File destination, String mediaType)
-			throws WriterException, IOException;
-
-	/**
-	 * Writes a <code>WorkflowBundle</code> to a stream with specified media
-	 * type.
-	 * 
-	 * @param wfBundle
-	 *            the workflow bundle to write
-	 * @param output
-	 *            the stream to write the workflow bundle to
-	 * @param mediaType
-	 *            the media type to write workflow bundle in
-	 * @throws WriterException
-	 *             if there is an error writing the workflow bundle
-	 * @throws IOException
-	 *             if there is an error writing to the stream
-	 */
-	void writeBundle(WorkflowBundle wfBundle, OutputStream output,
-			String mediaType) throws WriterException, IOException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WriterException.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WriterException.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WriterException.java
deleted file mode 100644
index f316a43..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/WriterException.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.apache.taverna.scufl2.api.io;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-
-/**
- * Thrown when there is a problem writing a {@link WorkflowBundle}
- * 
- * @see WorkflowBundleIO#writeBundle(WorkflowBundle, java.io.File, String)
- * @see WorkflowBundleIO#writeBundle(WorkflowBundle, java.io.OutputStream,
- *      String)
- * @see WorkflowBundleWriter#writeBundle(WorkflowBundle, java.io.File, String)
- * @see WorkflowBundleWriter#writeBundle(WorkflowBundle, java.io.OutputStream,
- *      String)
- */
-@SuppressWarnings("serial")
-public class WriterException extends Exception {
-
-	/**
-	 * Constructs an exception with no message or cause.
-	 */
-	public WriterException() {
-	}
-
-	/**
-	 * Constructs an exception with the specified message and no cause.
-	 * 
-	 * @param message
-	 *            details about the exception. Can be <code>null</code>
-	 */
-	public WriterException(String message) {
-		super(message);
-	}
-
-	/**
-	 * Constructs an exception with the specified message and cause.
-	 * 
-	 * @param message
-	 *            details about the exception. Can be <code>null</code>
-	 * @param cause
-	 *            the cause of the exception. Can be <code>null</code>
-	 */
-	public WriterException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * Constructs an exception with the specified cause and and the same message
-	 * as the cause (if the cause is not null).
-	 * 
-	 * @param cause
-	 *            the cause of the exception. Can be <code>null</code>
-	 */
-	public WriterException(Throwable cause) {
-		super(cause);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureReader.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureReader.java
deleted file mode 100644
index c19444b..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureReader.java
+++ /dev/null
@@ -1,452 +0,0 @@
-package org.apache.taverna.scufl2.api.io.structure;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.lang.System.arraycopy;
-import static java.util.Collections.singleton;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.util.Scanner;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * A <code>WorkflowBundleReader</code> that reads a {@link WorkflowBundle} in
- * Scufl2 Structure format.
- */
-public class StructureReader implements WorkflowBundleReader {
-	public enum Level {
-		WorkflowBundle, Workflow, Processor, Activity, Links, Profile, Configuration, ProcessorBinding, OutputPortBindings, InputPortBindings, JSON, Controls
-	}
-
-	private static final String ACTIVITY_SLASH = "activity/";
-	public static final String TEXT_VND_TAVERNA_SCUFL2_STRUCTURE = "text/vnd.taverna.scufl2.structure";
-
-	private WorkflowBundle wb;
-	private Level level;
-	private String mainWorkflow;
-	private Workflow workflow;
-	private Processor processor;
-	private Activity activity;
-	Pattern linkPattern = Pattern
-			.compile("'(.*[^\\\\])'\\s->\\s'(.*[^\\\\\\\\])'");
-	Pattern blockPattern = Pattern
-			.compile("\\s*block\\s+'(.*[^\\\\])'\\s+until\\s+'(.*[^\\\\\\\\])'\\s+finish");
-	private String mainProfile;
-	private Profile profile;
-	private Configuration configuration;
-	private ProcessorBinding processorBinding;
-    protected Scanner scanner;
-
-	@Override
-	public Set<String> getMediaTypes() {
-		return singleton(TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-	}
-
-	// synchronized because we share wb/scanner fields across the instance
-	protected synchronized WorkflowBundle parse(InputStream is)
-			throws ReaderException {
-		scanner = new Scanner(is);
-		try {
-			wb = new WorkflowBundle();
-			while (scanner.hasNextLine())
-				parseLine(scanner.nextLine());
-			return wb;
-		} finally {
-			scanner.close();
-		}
-	}
-
-	protected void parseLine(final String nextLine) throws ReaderException {
-		try (Scanner scanner = new Scanner(nextLine.trim())) {
-			// In case it is the last line
-			if (!scanner.hasNext())
-				return;
-			// allow any whitespace
-			String next = scanner.next();
-
-			if (next.isEmpty())
-				return;
-			switch (next) {
-			case "WorkflowBundle":
-				parseWorkflowBundle(scanner);
-				return;
-			case "MainWorkflow":
-				mainWorkflow = parseName(scanner);
-				return;
-			case "Workflow":
-				parseWorkflow(scanner);
-				return;
-			case "In":
-			case "Out":
-				parsePort(scanner, next);
-				return;
-			case "Links":
-				level = Level.Links;
-				processor = null;
-				return;
-			case "Controls":
-				level = Level.Controls;
-				return;
-			case "MainProfile":
-				mainProfile = parseName(scanner);
-				return;
-			case "Profile":
-				parseProfile(scanner);
-				return;
-			case "Type":
-				parseType(nextLine);
-				return;
-			case "ProcessorBinding":
-				parseProcessorBinding(scanner);
-				return;
-			case "InputPortBindings":
-				level = Level.InputPortBindings;
-				return;
-			case "OutputPortBindings":
-				level = Level.OutputPortBindings;
-				return;
-			case "Configuration":
-				parseConfiguration(scanner);
-				return;
-			case "Configures":
-				parseConfigures(scanner);
-				return;
-			case "Activity":
-				switch (level) {
-				case Profile:
-				case Activity:
-					level = Level.Activity;
-					activity = new Activity();
-					activity.setName(parseName(scanner));
-					profile.getActivities().add(activity);
-					return;
-				case ProcessorBinding:
-					Activity boundActivity = profile.getActivities().getByName(
-							parseName(scanner));
-					processorBinding.setBoundActivity(boundActivity);
-					return;
-				default:
-					break;
-				}
-				break;
-			case "Processor":
-				switch (level) {
-				case Workflow:
-				case Processor:
-					level = Level.Processor;
-					processor = new Processor();
-					processor.setName(parseName(scanner));
-					processor.setParent(workflow);
-					workflow.getProcessors().add(processor);
-					return;
-				case ProcessorBinding:
-					String[] wfProcName = parseName(scanner).split(":");
-					Workflow wf = wb.getWorkflows().getByName(wfProcName[0]);
-					Processor boundProcessor = wf.getProcessors().getByName(
-							wfProcName[1]);
-					processorBinding.setBoundProcessor(boundProcessor);
-					return;
-				default:
-					break;
-				}
-				break;
-			}
-
-			if (next.equals("block")) {
-				Matcher blockMatcher = blockPattern.matcher(nextLine);
-				blockMatcher.find();
-				String block = blockMatcher.group(1);
-				String untilFinish = blockMatcher.group(2);
-
-				Processor blockProc = workflow.getProcessors().getByName(block);
-				Processor untilFinishedProc = workflow.getProcessors()
-						.getByName(untilFinish);
-				new BlockingControlLink(blockProc, untilFinishedProc);
-			}
-			if (next.startsWith("'") && level.equals(Level.Links)) {
-				Matcher linkMatcher = linkPattern.matcher(nextLine);
-				linkMatcher.find();
-				String firstLink = linkMatcher.group(1);
-				String secondLink = linkMatcher.group(2);
-
-				SenderPort senderPort;
-				if (firstLink.contains(":")) {
-					String[] procPort = firstLink.split(":");
-					Processor proc = workflow.getProcessors().getByName(
-							procPort[0]);
-					senderPort = proc.getOutputPorts().getByName(procPort[1]);
-				} else
-					senderPort = workflow.getInputPorts().getByName(firstLink);
-
-				ReceiverPort receiverPort;
-				if (secondLink.contains(":")) {
-					String[] procPort = secondLink.split(":");
-					Processor proc = workflow.getProcessors().getByName(
-							procPort[0]);
-					receiverPort = proc.getInputPorts().getByName(procPort[1]);
-				} else
-					receiverPort = workflow.getOutputPorts().getByName(
-							secondLink);
-
-				new DataLink(workflow, senderPort, receiverPort);
-				return;
-			}
-
-			if (next.startsWith("'")
-					&& (level == Level.InputPortBindings || level == Level.OutputPortBindings)) {
-				Matcher linkMatcher = linkPattern.matcher(nextLine);
-				linkMatcher.find();
-				String firstLink = linkMatcher.group(1);
-				String secondLink = linkMatcher.group(2);
-				if (level == Level.InputPortBindings) {
-					InputProcessorPort processorPort = processorBinding
-							.getBoundProcessor().getInputPorts()
-							.getByName(firstLink);
-					InputActivityPort activityPort = processorBinding
-							.getBoundActivity().getInputPorts()
-							.getByName(secondLink);
-					new ProcessorInputPortBinding(processorBinding,
-							processorPort, activityPort);
-				} else {
-					OutputActivityPort activityPort = processorBinding
-							.getBoundActivity().getOutputPorts()
-							.getByName(firstLink);
-					OutputProcessorPort processorPort = processorBinding
-							.getBoundProcessor().getOutputPorts()
-							.getByName(secondLink);
-					new ProcessorOutputPortBinding(processorBinding,
-							activityPort, processorPort);
-				}
-				return;
-			}
-			if (level == Level.JSON) {
-				/*
-				 * A silly reader that feeds (no more than) a single line at a
-				 * time from our parent scanner, starting with the current line
-				 */
-				Reader reader = new Reader() {
-					char[] line = nextLine.toCharArray();
-					int pos = 0;
-
-					@Override
-					public int read(char[] cbuf, int off, int len)
-							throws IOException {
-						if (pos >= line.length) {
-							// Need to read next line to fill buffer
-							if (!StructureReader.this.scanner.hasNextLine())
-								return -1;
-							String newLine = StructureReader.this.scanner
-									.nextLine();
-							pos = 0;
-							line = newLine.toCharArray();
-							// System.out.println("Read new line: " + newLine);
-						}
-						int length = Math.min(len, line.length - pos);
-						if (length <= 0)
-							return 0;
-						arraycopy(line, pos, cbuf, off, length);
-						pos += length;
-						return length;
-					}
-
-					@Override
-					public void close() throws IOException {
-						line = null;
-					}
-				};            
-
-				ObjectMapper mapper = new ObjectMapper();
-				try {
-					JsonParser parser = mapper.getFactory()
-							.createParser(reader);
-					JsonNode jsonNode = parser.readValueAs(JsonNode.class);
-					// System.out.println("Parsed " + jsonNode);
-					configuration.setJson(jsonNode);
-				} catch (IOException e) {
-					throw new ReaderException("Can't parse json", e);
-				}
-				level = Level.Configuration;
-				return;
-			}
-		}
-    }
-
-	private void parseWorkflowBundle(Scanner scanner) {
-		level = Level.WorkflowBundle;
-		String name = parseName(scanner);
-		wb.setName(name);
-	}
-
-	private void parseWorkflow(Scanner scanner) {
-		level = Level.Workflow;
-		workflow = new Workflow();
-		String workflowName = parseName(scanner);
-		workflow.setName(workflowName);
-		wb.getWorkflows().add(workflow);
-		if (workflowName.equals(mainWorkflow))
-			wb.setMainWorkflow(workflow);
-	}
-
-	private void parsePort(Scanner scanner, String next) throws ReaderException {
-		boolean in = next.equals("In");
-		String portName = parseName(scanner);
-		switch (level) {
-		case Workflow:
-			if (in)
-				new InputWorkflowPort(workflow, portName);
-			else
-				new OutputWorkflowPort(workflow, portName);
-			break;
-		case Processor:
-			if (in)
-				new InputProcessorPort(processor, portName);
-			else
-				new OutputProcessorPort(processor, portName);
-			break;
-		case Activity:
-			if (in)
-				new InputActivityPort(activity, portName);
-			else
-				new OutputActivityPort(activity, portName);
-			break;
-		default:
-			throw new ReaderException("Unexpected " + next + " at level "
-					+ level);
-		}
-	}
-
-	private void parseProfile(Scanner scanner) {
-		level = Level.Profile;
-		profile = new Profile();
-		String profileName = parseName(scanner);
-		profile.setName(profileName);
-		wb.getProfiles().add(profile);
-		if (profileName.equals(mainProfile))
-			wb.setMainProfile(profile);
-	}
-
-	private void parseType(String nextLine) {
-		URI uri = URI.create(nextLine.split("[<>]")[1]);
-		switch (level) {
-		case Activity:
-			activity.setType(uri);
-			break;
-		case Configuration:
-			configuration.setType(uri);
-			break;
-		default:
-			break;
-		}
-	}
-
-	private void parseProcessorBinding(Scanner scanner) {
-		level = Level.ProcessorBinding;
-		processorBinding = new ProcessorBinding();
-		String bindingName = parseName(scanner);
-		processorBinding.setName(bindingName);
-		profile.getProcessorBindings().add(processorBinding);
-	}
-
-	private void parseConfiguration(Scanner scanner) {
-		level = Level.Configuration;
-		configuration = new Configuration();
-		String configName = parseName(scanner);
-		configuration.setName(configName);
-		profile.getConfigurations().add(configuration);
-	}
-
-	private void parseConfigures(Scanner scanner) {
-		String configures = parseName(scanner);
-		if (!configures.startsWith(ACTIVITY_SLASH))
-			throw new UnsupportedOperationException("Unknown Configures "
-					+ configures);
-		activity = profile.getActivities().getByName(
-				configures.substring(ACTIVITY_SLASH.length(),
-						configures.length()));
-		configuration.setConfigures(activity);
-		level = Level.JSON;
-	}
-
-
-	private String parseName(Scanner scanner) {
-		String name = scanner.findInLine("'(.*[^\\\\])'");
-		return name.substring(1, name.length() - 1);
-	}
-
-	@Override
-	public WorkflowBundle readBundle(File bundleFile, String mediaType)
-			throws IOException, ReaderException {
-		try (BufferedInputStream is = new BufferedInputStream(
-				new FileInputStream(bundleFile))) {
-			return parse(is);
-		}
-	}
-
-	@Override
-	public WorkflowBundle readBundle(InputStream inputStream, String mediaType)
-			throws IOException, ReaderException {
-		return parse(inputStream);
-	}
-
-	@Override
-	public String guessMediaTypeForSignature(byte[] firstBytes) {
-		if (new String(firstBytes, Charset.forName("ISO-8859-1"))
-				.contains("WorkflowBundle '"))
-			return TEXT_VND_TAVERNA_SCUFL2_STRUCTURE;
-		return null;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureWriter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureWriter.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureWriter.java
deleted file mode 100644
index 50610b0..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/io/structure/StructureWriter.java
+++ /dev/null
@@ -1,314 +0,0 @@
-package org.apache.taverna.scufl2.api.io.structure;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.apache.taverna.scufl2.api.io.structure.StructureReader.TEXT_VND_TAVERNA_SCUFL2_STRUCTURE;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Named;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Ported;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.ControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleWriter;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.apache.taverna.scufl2.api.port.ProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-/**
- * A <code>WorkflowBundleWriter</code> that writes a {@link WorkflowBundle} in Scufl2 Structure
- * format.
- */
-public class StructureWriter implements WorkflowBundleWriter {
-	private StringBuilder sb;
-	private URITools uriTools = new URITools();
-
-	private void append(Named named) {
-		append(" '");
-		append(escapeName(named.getName()));
-		append("'");
-	}
-
-	private void append(String string) {
-		sb.append(string);
-	}
-
-	private void append(URI uri) {
-		sb.append(" <");
-		sb.append(uri.toASCIIString());
-		sb.append(">");
-	}
-
-	private void appendPorts(int indent, Ported wf) {
-		for (Port in : sorted(wf.getInputPorts())) {
-			newLine(indent);
-			append("In");
-			append(in);
-		}
-		for (Port out : sorted(wf.getOutputPorts())) {
-			newLine(indent);
-			append("Out");
-			append(out);
-		}
-	}
-
-	/**
-	 * Create a string representation of a workflow bundle. Note that this
-	 * method is not thread-safe; call only via the public methods which have
-	 * the right locking.
-	 */
-	@SuppressWarnings("unchecked")
-	protected String bundleString(WorkflowBundle wb) {
-		sb = new StringBuilder();
-		append("WorkflowBundle");
-		append(wb);
-
-		if (wb.getMainWorkflow() != null) {
-			newLine(1);
-			append("MainWorkflow");
-			append(wb.getMainWorkflow());
-		}
-		for (Workflow wf : sorted(wb.getWorkflows())) {
-			newLine(1);
-			append("Workflow");
-			append(wf);
-			appendPorts(2, wf);
-			for (Processor p : sorted(wf.getProcessors())) {
-				newLine(2);
-				append("Processor");
-				append(p);
-				appendPorts(3, p);
-			}
-
-			// LINKS
-			// We'll need to sort them afterwards
-			List<String> links = new ArrayList<>();
-			for (DataLink dl : wf.getDataLinks())
-				links.add(datalink(dl.getReceivesFrom()) + " -> " + datalink(dl.getSendsTo()));
-			Collections.sort(links);
-			if (!links.isEmpty()) {
-				newLine(2);
-				append("Links");
-			}
-			for (String link : links) {
-				newLine(3);
-				append(link);
-			}
-
-			if (!wf.getControlLinks().isEmpty()) {
-				newLine(2);
-				append("Controls");
-				List<ControlLink> controlLinks = new ArrayList<>(wf.getControlLinks());
-				Collections.sort(controlLinks);
-				for (ControlLink controlLink : controlLinks) {
-					if (!(controlLink instanceof BlockingControlLink))
-						// TODO
-						continue;
-					BlockingControlLink blockingControlLink = (BlockingControlLink) controlLink;
-					newLine(3);
-					append("block");
-					append(blockingControlLink.getBlock());
-					append(" until");
-					append(blockingControlLink.getUntilFinished());
-					append(" finish");
-				}
-			}
-		}
-
-		if (wb.getMainProfile() != null) {
-			newLine(1);
-			append("MainProfile");
-			append(wb.getMainProfile());
-		}
-
-		for (Profile p : sorted(wb.getProfiles())) {
-			newLine(1);
-			append("Profile");
-			append(p);
-			for (Activity a : sorted(p.getActivities())) {
-				newLine(2);
-				append("Activity");
-				append(a);
-				newLine(3);
-				append("Type");
-				append(a.getType());
-				appendPorts(3, a);
-			}
-			for (ProcessorBinding pb : p.getProcessorBindings()) {
-				newLine(2);
-				append("ProcessorBinding");
-				append(pb);
-				newLine(3);
-				append("Activity");
-				append(pb.getBoundActivity());
-				newLine(3);
-				append("Processor");
-				String name = " '" + escapeName(pb.getBoundProcessor().getParent().getName());
-				name = name + ":" + escapeName(pb.getBoundProcessor().getName()) + "'";
-				append(name);
-
-				List<String> links = new ArrayList<String>();
-				for (ProcessorInputPortBinding ip : pb.getInputPortBindings())
-					links.add("'" + escapeName(ip.getBoundProcessorPort().getName()) + "' -> '"
-							+ escapeName(ip.getBoundActivityPort().getName()) + "'");
-				Collections.sort(links);
-				if (!links.isEmpty()) {
-					newLine(3);
-					append("InputPortBindings");
-				}
-				for (String link : links) {
-					newLine(4);
-					append(link);
-				}
-
-				links.clear();
-				for (ProcessorOutputPortBinding ip : pb.getOutputPortBindings())
-					// Note: opposite direction as for ProcessorInputPortBinding
-					links.add("'" + escapeName(ip.getBoundActivityPort().getName()) + "' -> '"
-							+ escapeName(ip.getBoundProcessorPort().getName()) + "'");
-				Collections.sort(links);
-				if (!links.isEmpty()) {
-					newLine(3);
-					append("OutputPortBindings");
-				}
-				for (String link : links) {
-					newLine(4);
-					append(link);
-				}
-			}
-
-			for (Configuration config : p.getConfigurations()) {
-				newLine(2);
-				append("Configuration");
-				append(config);
-
-				newLine(3);
-				if (config.getType() != null) {
-					append("Type");
-					append(config.getType());
-				}
-				newLine(3);
-				append("Configures");
-				if (config.getConfigures() instanceof Named) {				
-					Named c = (Named) config.getConfigures();					
-					String cName = "'" + escapeName(c.getClass().getSimpleName().toLowerCase());
-					cName = cName + "/" + escapeName(c.getName()) + "'";
-					append(" " + cName);
-				} else {
-					URI configuredURI = uriTools.relativeUriForBean(config.getConfigures(), p);
-					append(" '" + configuredURI.toASCIIString() + "'");
-				}
-
-				newLine(4);
-				append(config.getJson().toString());
-			}
-
-		}
-		append("\n");
-		//System.out.println(sb);
-		return sb.toString();
-	}
-
-	private String datalink(Port port) {
-		StringBuilder s = new StringBuilder();
-		s.append("'");
-		if (port instanceof ProcessorPort) {
-			ProcessorPort processorPort = (ProcessorPort) port;
-			s.append(escapeName(processorPort.getParent().getName()));
-			s.append(":");
-		}
-		s.append(escapeName(port.getName()));
-		s.append("'");
-		return s.toString();
-	}
-
-	private String escapeName(String name) {
-		return name.replace("\\", "\\\\").replace("'", "\\'")
-				.replace(":", "\\:").replace("/", "\\/");
-	}
-
-	@Override
-	public Set<String> getMediaTypes() {
-		return Collections.singleton(TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-	}
-
-	private void newLine(int indentLevel) {
-		sb.append("\n");
-		for (int i = 0; i < indentLevel; i++)
-			sb.append("  ");
-	}
-
-	private <T extends Named> List<T> sorted(NamedSet<T> namedSet) {
-		List<T> sorted = new ArrayList<>();
-		sorted.addAll(namedSet);
-		Collections.sort(sorted, new Comparator<T>() {
-			@Override
-			public int compare(T o1, T o2) {
-				return o1.getName().compareTo(o2.getName());
-			}
-		});
-		return sorted;
-	}
-
-	@Override
-	public synchronized void writeBundle(WorkflowBundle wb, File destination,
-			String mediaType) throws IOException {
-		destination.createNewFile();
-		try (BufferedOutputStream outputStream = new BufferedOutputStream(
-				new FileOutputStream(destination))) {
-			writeBundle(wb, outputStream, mediaType);
-		}
-	}
-
-	@Override
-	public void writeBundle(WorkflowBundle wfBundle, OutputStream output,
-			String mediaType) throws IOException {
-		OutputStreamWriter writer = new OutputStreamWriter(output, "utf-8");
-		try {
-			writer.write(bundleString(wfBundle));
-		} finally {
-			writer.close();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/CrossProduct.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/CrossProduct.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/CrossProduct.java
deleted file mode 100644
index 58895f0..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/CrossProduct.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-
-
-/**
- * @author Stian Soiland-Reyes
- */
-@SuppressWarnings("serial")
-public class CrossProduct extends ArrayList<IterationStrategyNode> implements
-		IterationStrategyTopNode {
-	private IterationStrategyParent parent;
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this))
-			for (IterationStrategyNode strategy : this)
-				if (!strategy.accept(visitor))
-					break;
-		return visitor.visitLeave(this);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return o instanceof CrossProduct && super.equals(o);
-	}
-
-	@Override
-	public IterationStrategyParent getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(IterationStrategyParent newParent) {
-		if (parent == newParent)
-			return;
-
-		if (parent != null) {
-			// Remove from old parent
-			if (parent instanceof IterationStrategyStack) {
-				IterationStrategyStack stack = (IterationStrategyStack) parent;
-				stack.remove(this);
-			} else if (parent instanceof DotProduct
-					|| parent instanceof CrossProduct) {
-				@SuppressWarnings("unchecked")
-				List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-				parentList.remove(this);
-			} else
-				throw new IllegalArgumentException(
-						"Old parent must be a IterationStrategy, DotProduct or CrossProduct: "
-								+ parent);
-		}
-
-		parent = newParent;
-
-		if (parent instanceof IterationStrategyStack) {
-			IterationStrategyStack stack = (IterationStrategyStack) parent;
-			if (!stack.contains(this))
-				stack.add(this);
-		} else if (parent instanceof DotProduct
-				|| parent instanceof CrossProduct) {
-			@SuppressWarnings("unchecked")
-			List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-			if (!parentList.contains(this))
-				parentList.add(this);
-		} else
-			throw new IllegalArgumentException(
-					"Parent must be a IterationStrategy, DotProduct or CrossProduct: "
-							+ parent);
-	}
-
-	@Override
-	public WorkflowBean clone() {
-		return AbstractCloneable.cloneWorkflowBean(this);
-	}
-
-	@Override
-	public String toString() {
-		return getClass().getSimpleName() + super.toString();
-	}
-}


[25/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/defaultActivitiesTaverna2.2.t2flow
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/defaultActivitiesTaverna2.2.t2flow b/taverna-scufl2-examples/src/test/resources/workflows/t2flow/defaultActivitiesTaverna2.2.t2flow
deleted file mode 100644
index 6ca7586..0000000
--- a/taverna-scufl2-examples/src/test/resources/workflows/t2flow/defaultActivitiesTaverna2.2.t2flow
+++ /dev/null
@@ -1,888 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="dc227a10-e8f6-44b0-88c5-c946a15ff669" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>Beanshell</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
-  <script>the
-script;</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies>
-    <string>a.jar</string>
-    <string>b.jar</string>
-  </localDependencies>
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>in1</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>in2</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>text/plain</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out1</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>out2</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Nested_workflow</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>dataflow-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</class><inputMap /><outputMap /><configBean encoding="dataflow"><dataflow ref="a838d861-e4b8-4e7f-839c-e0fc748749b9" /></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>
 net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Rshell</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>rshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.rshell.RshellActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean xmlns="">
-  <rVersion>false</rVersion>
-  <script>rshell
-script</script>
-  <connectionSettings>
-    <host>localhost</host>
-    <port>6311</port>
-    <username>user</username>
-    <password>passwd</password>
-    <keepSessionAlive>true</keepSessionAlive>
-    <newRVersion>false</newRVersion>
-  </connectionSettings>
-  <inputSymanticTypes>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>in1</name>
-      <symanticType>STRING</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>in2</name>
-      <symanticType>DOUBLE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>in3</name>
-      <symanticType>INTEGER_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-  </inputSymanticTypes>
-  <outputSymanticTypes>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out1</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out2</name>
-      <symanticType>PNG_FILE</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out3</name>
-      <symanticType>STRING_LIST</symanticType>
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-    <net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-      <name>out4</name>
-      <symanticType reference="../../../inputSymanticTypes/net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean[2]/symanticType" />
-    </net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean>
-  </outputSymanticTypes>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>in1</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>in2</name>
-      <depth>0</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>in3</name>
-      <depth>1</depth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out1</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out2</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>out3</name>
-      <depth>1</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>out4</name>
-      <depth>0</depth>
-      <mimeTypes />
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>SpreadsheetImport</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>spreadsheet-import-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration xmlns="">
-  <columnRange>
-    <start>0</start>
-    <end>2</end>
-    <excludes />
-  </columnRange>
-  <rowRange>
-    <start>1</start>
-    <end>-1</end>
-    <excludes />
-  </rowRange>
-  <emptyCellValue>empty</emptyCellValue>
-  <columnNames>
-    <entry>
-      <string>A</string>
-      <string>fish</string>
-    </entry>
-    <entry>
-      <string>B</string>
-      <string>soup</string>
-    </entry>
-  </columnNames>
-  <allRows>true</allRows>
-  <excludeFirstRow>true</excludeFirstRow>
-  <ignoreBlankRows>true</ignoreBlankRows>
-  <emptyCellPolicy>USER_DEFINED</emptyCellPolicy>
-  <outputFormat>PORT_PER_COLUMN</outputFormat>
-  <csvDelimiter>,</csvDelimiter>
-</net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.2&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;script&gt;sdsdsd&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies&gt;&#xD;
-    &lt;string&gt;a.jar&lt;/string&gt;&#xD;
-  &lt;/localDependencies&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;handledReferenceSchemes /&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-      &lt;name&gt;in1&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;mimeTypes&gt;&#xD;
-        &lt;string&gt;text/plain&lt;/string&gt;&#xD;
-      &lt;/mimeTypes&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-      &lt;name&gt;out1&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-      &lt;mimeTypes /&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="comparison" value="custom" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>String_constant</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>string</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>14</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.2&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;script&gt;loop = "" + ! value.equals("ssdsd"); &#xD;
-if ("true".matches(loop)) {&#xD;
-   Thread.sleep(500);&#xD;
-}&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies /&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-      &lt;name&gt;value&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-      &lt;name&gt;loop&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="compareValue" value="ssdsd" />
-    <property name="delay" value="0.5" />
-    <property name="comparePort" value="value" />
-    <property name="isFeedBack" value="true" />
-    <property name="comparison" value="EqualTo" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>150</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>5</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>localWorker_bytearray</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.EncodeBase64</localworkerName>
-  <script>import org.apache.commons.codec.binary.Base64;
-
-base64 = new String(Base64.encodeBase64(bytes));</script>
-  <dependencies class="java.util.Collections$SingletonList">
-    <element class="string">commons-codec:commons-codec:1.3</element>
-  </dependencies>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>1.3</version>
-      <hashCode>1635363350</hashCode>
-      <string>commons-codec:commons-codec:1.3</string>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-  </artifactDependencies>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>bytes</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'application/octet-stream'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>base64</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>localWorker</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.FlattenList</localworkerName>
-  <script>flatten(inputs, outputs, depth) {
-	for (i = inputs.iterator(); i.hasNext();) {
-	    element = i.next();
-		if (element instanceof Collection &amp;&amp; depth &gt; 0) {
-			flatten(element, outputs, depth - 1);
-		} else {
-			outputs.add(element);
-		}
-	}
-}
-
-outputlist = new ArrayList();
-
-flatten(inputlist, outputlist, 1);</script>
-  <dependencies />
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>[B</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>inputlist</name>
-      <depth>2</depth>
-      <mimeTypes>
-        <string>l(l(''))</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>1</granularDepth>
-      <name>outputlist</name>
-      <depth>1</depth>
-      <mimeTypes>
-        <string>l('')</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>mobyObject</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>biomoby-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean xmlns="">
-  <mobyEndpoint>http://moby.ucalgary.ca/moby/MOBY-Central.pl</mobyEndpoint>
-  <serviceName>AlleleAssociation</serviceName>
-  <authorityName>cegen.upf.es</authorityName>
-</net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>mobyService</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>biomoby-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.biomoby.BiomobyActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean xmlns="">
-  <mobyEndpoint>http://moby.ucalgary.ca/moby/MOBY-Central.pl</mobyEndpoint>
-  <serviceName>getTmhmmPrediction</serviceName>
-  <authorityName>mips.gsf.de</authorityName>
-  <category />
-  <serviceType />
-  <secondaries />
-</net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>soaplab</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>soaplab-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.soaplab.SoaplabActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean xmlns="">
-  <endpoint>http://www.ebi.ac.uk/soaplab/services/feature_tables.coderet</endpoint>
-  <pollingInterval>4</pollingInterval>
-  <pollingBackoff>1.1</pollingBackoff>
-  <pollingIntervalMax>5</pollingIntervalMax>
-</net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>wsdl_document</name><inputPorts /><outputPorts><port><name>queryStatusOutput</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap /><outputMap><map from="queryStatusOutput" to="queryStatusOutput" /></outputMap><configBean encoding="xstream
 "><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://webservices.genouest.org/typedservices/InterProScan.wsdl</wsdl>
-  <operation>queryStatus</operation>
-  <securityProfile>HTTPBasicAuthNPlainTextPassword</securityProfile>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>xmlSplitter</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitte
 r.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="queryStatusOutput" name="queryStatusOutput" qname="{http://nbcr.sdsc.edu/opal/types}queryStatusOutput"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="int" name="code" qname="StatusOutputType&amp;gt;code" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="message" qname="StatusOutputType&amp;gt;message" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="anyURI" name="baseURL" qname="StatusOutputType&amp;gt;baseURL" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>code</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>message</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>baseURL</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>wsdl_rpc</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://soap.genome.jp/KEGG.wsdl</wsdl>
-  <operation>get_compounds_by_enzyme</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>wsdl_secured</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://soap.genome.jp/KEGG.wsdl</wsdl>
-  <operation>get_genes_by_organism</operation>
-  <securityProfile>WSSecurityTimestampUsernameTokenPlainTextPassword</securityProfile>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>biomart</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>biomart-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.biomart.BiomartActivity</class><inputMap /><outputMap /><configBean encoding="jdomxml"><MartQuery xmlns=""><MartService location="http://www.biomart.org/biomart/martservice" /><MartDataset displayName="Drosophila melanogaster features (BDGP5.13)" nam
 e="dmelanogaster_feature_set" type="TableSet" initialBatchSize="200" maximumBatchSize="50000" visible="false" interface="default" modified="2010-06-07 11:08:23"><MartURLLocation database="functional_genomics_mart_58" default="0" displayName="ENSEMBL FUNCTIONAL GENOMICS 58 (SANGER UK)" host="www.biomart.org" includeDatasets="" martUser="" name="functional_genomics" path="/biomart/martservice" port="80" serverVirtualSchema="default" virtualSchema="default" visible="1" redirect="0" /></MartDataset><Query virtualSchemaName="default" count="0" uniqueRows="0" softwareVersion="0.6" requestId="taverna"><Dataset name="dmelanogaster_feature_set"><Attribute name="cell_type_display_label_1048" /><Attribute name="name_1011" /><Attribute name="display_label_1049" /><Filter name="chromosome_name" value="2L" /><Filter name="end" value="10000000" /><Filter name="start" value="1" /></Dataset></Query></MartQuery></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><
 group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Send_an_Email</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
-  <localworkerName>org.embl.ebi.escience.scuflworkers.java.SendEmail</localworkerName>
-  <script>import javax.mail.Message;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.InternetAddress;
-
-if (subject == void) {
-	subject = "No subject";
-}
-if (body == void) {
-	throw new Exception("No body specified for message");
-}
-
-Properties mailProps = System.getProperties();
-if (smtpserver != void) {
-	mailProps.put("mail.smtp.host", smtpserver);
-}
-
-Session session = Session.getDefaultInstance(mailProps, null);
-MimeMessage message = new MimeMessage(session);
-message.setFrom(new InternetAddress(from));
-message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
-message.setSubject(subject);
-message.setText(body);
-Transport.send(message);
-</script>
-  <dependencies>
-    <string>javax.mail:mail:1.4</string>
-    <string>javax.activation:activation:1.1</string>
-  </dependencies>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>javax.mail</groupId>
-      <artifactId>mail</artifactId>
-      <version>1.4</version>
-      <hashCode>789035249</hashCode>
-      <string>javax.mail:mail:1.4</string>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-    <net.sf.taverna.raven.repository.BasicArtifact>
-      <groupId>javax.activation</groupId>
-      <artifactId>activation</artifactId>
-      <version>1.1</version>
-      <hashCode>518094512</hashCode>
-      <string>javax.activation:activation:1.1</string>
-    </net.sf.taverna.raven.repository.BasicArtifact>
-  </artifactDependencies>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>to</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>from</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>subject</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>body</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>true</allowsLiteralValues>
-      <name>smtpserver</name>
-      <depth>0</depth>
-      <mimeTypes>
-        <string>'text/plain'</string>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs />
-</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>TavernaResearchObject</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>apiconsumer-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean xmlns="">
-  <apiConsumerName>No name</apiConsumerName>
-  <apiConsumerDescription>No description</apiConsumerDescription>
-  <description />
-  <className>uk.org.taverna.scufl2.api.container.TavernaResearchObject</className>
-  <methodName>TavernaResearchObject</methodName>
-  <parameterNames />
-  <parameterDimensions />
-  <parameterTypes />
-  <returnType>uk.org.taverna.scufl2.api.container.TavernaResearchObject</returnType>
-  <returnDimension>0</returnDimension>
-  <isMethodStatic>false</isMethodStatic>
-  <isMethodConstructor>true</isMethodConstructor>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies />
-  <artifactDependencies />
-  <inputs />
-  <outputs />
-</net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>setWorkflows</name><inputPorts /><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>apiconsumer-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivity</class><inputMap /><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean xmlns="">
-  <apiConsumerName>No name</apiConsumerName>
-  <apiConsumerDescription>No description</apiConsumerDescription>
-  <description />
-  <className>uk.org.taverna.scufl2.api.container.TavernaResearchObject</className>
-  <methodName>setWorkflows</methodName>
-  <parameterNames>
-    <string>workflows</string>
-  </parameterNames>
-  <parameterDimensions>
-    <int>0</int>
-  </parameterDimensions>
-  <parameterTypes>
-    <string>java.util.Set</string>
-  </parameterTypes>
-  <returnType>void</returnType>
-  <returnDimension>0</returnDimension>
-  <isMethodStatic>false</isMethodStatic>
-  <isMethodConstructor>false</isMethodConstructor>
-  <classLoaderSharing>workflow</classLoaderSharing>
-  <localDependencies>
-    <string>a.jar</string>
-  </localDependencies>
-  <artifactDependencies />
-  <inputs />
-  <outputs />
-</net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>run</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="parameters" to="parameters" /></inputMap><outputMap>
 <map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.ebi.ac.uk/Tools/services/soap/wublast?wsdl</wsdl>
-  <operation>run</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>run_input</name><inputPorts /><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap /><outputMap><map from="output" to="outp
 ut" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="run" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}run"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="email" qname="&amp;gt;run&amp;gt;email" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="title" qname="&amp;gt;run&amp;gt;title" /&gt;&lt;s:complextype optional="false" unbounded="false" typename="InputParameters" name="parameters" qname="&amp;gt;run&amp;gt;parameters"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="program" qname="InputParameters&amp;gt;program" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="exp" qname="InputParameters&amp;gt;exp" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="int" name="alignments" qname="InputParameters&amp;gt
 ;alignments" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="int" name="scores" qname="InputParameters&amp;gt;scores" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="int" name="align" qname="InputParameters&amp;gt;align" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="matrix" qname="InputParameters&amp;gt;matrix" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="stats" qname="InputParameters&amp;gt;stats" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sensitivity" qname="InputParameters&amp;gt;sensitivity" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="topcombon" qname="InputParameters&amp;gt;topcombon" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="boolean" name="viewfilter" qname="InputParameters&amp;gt;viewfilter" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="filter" qname="InputPar
 ameters&amp;gt;filter" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="strand" qname="InputParameters&amp;gt;strand" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sort" qname="InputParameters&amp;gt;sort" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="stype" qname="InputParameters&amp;gt;stype" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sequence" qname="InputParameters&amp;gt;sequence" /&gt;&lt;s:arraytype optional="false" unbounded="false" wrapped="true" typename="ArrayOfString" name="database" qname="InputParameters&amp;gt;database"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>email</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>title</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>parameters</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>run_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter
 .XMLSplitterConfigurationBean xmlns="">
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="runResponse" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}runResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="jobId" qname="&amp;gt;runResponse&amp;gt;jobId" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <granularDepth>0</granularDepth>
-      <name>jobId</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>xmlSplitter</processor><port>input</port></sink><source type="processor"><processor>wsdl_document</processor><port>queryStatusOutput</port></source></datalink><datalink><sink type="processor"><processor>run</processor><port>parameters</port></sink><source type="processor"><processor>run_input</processor><port>output</port></source></datalink><datalink><sink typ
 e="processor"><processor>run_output</processor><po

<TRUNCATED>

[03/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/LICENSE-odfdom.txt
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/LICENSE-odfdom.txt b/taverna-scufl2-ucfpackage/LICENSE-odfdom.txt
deleted file mode 100644
index 29f81d8..0000000
--- a/taverna-scufl2-ucfpackage/LICENSE-odfdom.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/pom.xml b/taverna-scufl2-ucfpackage/pom.xml
deleted file mode 100644
index 5411dc0..0000000
--- a/taverna-scufl2-ucfpackage/pom.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-scufl2-ucfpackage</artifactId>
-	<packaging>bundle</packaging>
-	<name>Apache Taverna Scufl 2 UCF Package</name>
-	<description>Adobe UCF compatible Package API, making a structured ZIP file with manifest</description>
-	<dependencies>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-      <version>${commons.io.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-      <groupId>org.jdom</groupId>
-      <artifactId>com.springsource.org.jdom</artifactId>
-      <version>${jdom.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jaxen</groupId>
-			<artifactId>com.springsource.org.jaxen</artifactId>
-      <version>${jaxen.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-	<licenses>
-		<license>
-			<name>Apache 2</name>
-			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-			<comments>The package uk.org.taverna.scul2.ucfpackage.impl.odfdom
-				contains a patched subset of ODFDOM 0.8.6 -
-				http://odftoolkit.org/projects/odfdom/pages/Home
-				Copyright 2008, 2010 Oracle and/or its affiliates.
-				All rights reserved. Copyright 2009 IBM. All rights reserved.</comments>
-		</license>
-	</licenses>
-
-	<build>
-		<plugins>
-      <!--
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>jaxb2-maven-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>jaxb</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>xjc</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-      -->
-            <plugin>
-                <groupId>org.jvnet.jaxb2.maven2</groupId>
-                <artifactId>maven-jaxb2-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>generate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-	            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.7</source>
-                    <target>1.7</target>
-                </configuration>
-            </plugin>
-                <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-                  </plugins>
-            </build>
-	<!-- -->
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java b/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java
deleted file mode 100644
index b806ffe..0000000
--- a/taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/UCFPackage.java
+++ /dev/null
@@ -1,664 +0,0 @@
-package org.apache.taverna.scufl2.ucfpackage;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.io.File.createTempFile;
-import static java.util.logging.Level.INFO;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.OdfPackage;
-import org.apache.taverna.scufl2.ucfpackage.impl.odfdom.pkg.manifest.OdfFileEntry;
-import org.oasis_open.names.tc.opendocument.xmlns.container.Container;
-import org.oasis_open.names.tc.opendocument.xmlns.container.Container.RootFiles;
-import org.oasis_open.names.tc.opendocument.xmlns.container.ObjectFactory;
-import org.oasis_open.names.tc.opendocument.xmlns.container.RootFile;
-import org.w3c.dom.Document;
-
-
-public class UCFPackage implements Cloneable {
-	private static Logger logger = Logger.getLogger(UCFPackage.class.getName());
-	private static final String CONTAINER_XML = "META-INF/container.xml";
-	private static final Charset UTF_8 = Charset.forName("utf-8");
-	public static final String MIME_BINARY = "application/octet-stream";
-	public static final String MIME_TEXT_PLAIN = "text/plain";
-	public static final String MIME_TEXT_XML = "text/xml";
-	public static final String MIME_RDF = "application/rdf+xml";
-	public static final String MIME_EPUB = "application/epub+zip";
-	public static final String MIME_WORKFLOW_BUNDLE = "application/vnd.taverna.workflow-bundle";
-	public static final String MIME_DATA_BUNDLE = "application/vnd.taverna.data-bundle";
-	public static final String MIME_WORKFLOW_RUN_BUNDLE = "application/vnd.taverna.workflow-run-bundle";
-	public static final String MIME_SERVICE_BUNDLE = "application/vnd.taverna.service-bundle";
-
-	private static Charset ASCII = Charset.forName("ascii");
-	private OdfPackage odfPackage;
-	private static JAXBContext jaxbContext;
-	private JAXBElement<Container> containerXml;
-	private boolean createdContainerXml = false;
-	private static ObjectFactory containerFactory = new ObjectFactory();
-
-	public UCFPackage() throws IOException {
-		try {
-			odfPackage = OdfPackage.create();
-			parseContainerXML();
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not create empty UCF Package", e);
-		}
-		// odfPackage.setMediaType(MIME_EPUB);
-	}
-
-	public UCFPackage(File containerFile) throws IOException {
-		open(containerFile);
-	}
-
-	protected void open(File containerFile) throws IOException {
-		try (BufferedInputStream stream = new BufferedInputStream(
-				new FileInputStream(containerFile))) {
-			open(stream);
-		}
-	}
-
-	public UCFPackage(InputStream inputStream) throws IOException {
-		open(inputStream);
-	}
-
-	protected void open(InputStream inputStream) throws IOException {
-		try {
-			odfPackage = OdfPackage.loadPackage(inputStream);
-			parseContainerXML();
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException(
-					"Could not load UCF Package from input stream", e);
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	protected void parseContainerXML() throws IOException {
-		createdContainerXml = false;
-		InputStream containerStream = getResourceAsInputStream(CONTAINER_XML);
-		if (containerStream == null) {
-			// Make an empty containerXml
-			Container container = containerFactory.createContainer();
-			containerXml = containerFactory.createContainer(container);
-			createdContainerXml = true;
-			return;
-		}
-		try {
-			Unmarshaller unMarshaller = createUnMarshaller();
-			containerXml = (JAXBElement<Container>) unMarshaller
-					.unmarshal(containerStream);
-		} catch (JAXBException e) {
-			throw new IOException("Could not parse " + CONTAINER_XML, e);
-		}
-	}
-
-	public String getPackageMediaType() {
-		return odfPackage.getMediaType();
-	}
-
-	public void setPackageMediaType(String mediaType) {
-		if (mediaType == null || !mediaType.contains("/"))
-			throw new IllegalArgumentException("Invalid media type "
-					+ mediaType);
-		if (!ASCII.newEncoder().canEncode(mediaType))
-			throw new IllegalArgumentException("Media type must be ASCII: "
-					+ mediaType);
-		odfPackage.setMediaType(mediaType);
-	}
-
-	public void save(File packageFile) throws IOException {
-		File tempFile = createTempFile("." + packageFile.getName(), ".tmp",
-				packageFile.getCanonicalFile().getParentFile());
-		prepareAndSave(tempFile);
-		boolean renamed = tempFile.renameTo(packageFile);
-		if (!renamed && packageFile.exists() && tempFile.exists()) {
-			// Could happen on Windows
-			if (!packageFile.delete())
-				// Could have been permission problem
-				throw new IOException("Could not delete existing "
-						+ packageFile);
-			renamed = tempFile.renameTo(packageFile);
-		}
-		if (!renamed)
-			throw new IOException("Could not rename temp file " + tempFile
-					+ " to " + packageFile);
-	}
-
-	protected void prepareAndSave(File tempFile) throws IOException {
-		if (getPackageMediaType() == null)
-			throw new IllegalStateException("Package media type must be set");
-
-		// Write using temp file, and do rename in the end
-
-		try {
-			prepareContainerXML();
-			odfPackage.save(tempFile);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not save bundle to " + tempFile, e);
-		} finally {
-			odfPackage.close();
-		}
-
-		try {
-			open(tempFile);
-		} catch (Exception e) {
-			throw new IOException("Could not reload package from " + tempFile,
-					e);
-		}
-	}
-
-	protected void prepareContainerXML() throws IOException {
-		if (containerXml == null || createdContainerXml
-				&& containerXml.getValue().getRootFilesOrAny() == null)
-			return;
-
-		/* Check if we should prune <rootFiles> */
-		Iterator<Object> iterator = containerXml.getValue().getRootFilesOrAny()
-				.iterator();
-		boolean foundAlready = false;
-		while (iterator.hasNext()) {
-			Object anyOrRoot = iterator.next();
-			if (!(anyOrRoot instanceof JAXBElement))
-				continue;
-			@SuppressWarnings("rawtypes")
-			JAXBElement elem = (JAXBElement) anyOrRoot;
-			if (!elem.getDeclaredType().equals(RootFiles.class))
-				continue;
-			RootFiles rootFiles = (RootFiles) elem.getValue();
-			if (foundAlready
-					|| (rootFiles.getOtherAttributes().isEmpty() && rootFiles
-							.getAnyOrRootFile().isEmpty())) {
-				// Delete it!
-				System.err.println("Deleting unneccessary <rootFiles>");
-				iterator.remove();
-			}
-			foundAlready = true;
-		}
-
-		Marshaller marshaller;
-		try {
-			marshaller = createMarshaller();
-			// XMLStreamWriter xmlStreamWriter = XMLOutputFactory
-			// .newInstance().createXMLStreamWriter(outStream);
-			// xmlStreamWriter.setDefaultNamespace(containerElem.getName()
-			// .getNamespaceURI());
-			//
-			// xmlStreamWriter.setPrefix("dsig",
-			// "http://www.w3.org/2000/09/xmldsig#");
-			// xmlStreamWriter.setPrefix("xmlenc",
-			// "http://www.w3.org/2001/04/xmlenc#");
-			try (OutputStream outStream = odfPackage
-					.insertOutputStream(CONTAINER_XML)) {
-				// FIXME: Set namespace prefixes and default namespace
-				marshaller.setProperty("jaxb.formatted.output", true);
-				// TODO: Ensure using default namespace
-				marshaller.marshal(containerXml, outStream);
-			}
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not parse " + CONTAINER_XML, e);
-		}
-	}
-
-	protected static synchronized Marshaller createMarshaller()
-			throws JAXBException {
-		return getJaxbContext().createMarshaller();
-	}
-
-	protected static synchronized Unmarshaller createUnMarshaller()
-			throws JAXBException {
-		return getJaxbContext().createUnmarshaller();
-	}
-
-	protected static synchronized JAXBContext getJaxbContext()
-			throws JAXBException {
-		if (jaxbContext == null)
-			jaxbContext = JAXBContext
-					.newInstance(
-							org.oasis_open.names.tc.opendocument.xmlns.container.ObjectFactory.class,
-							org.w3._2000._09.xmldsig_.ObjectFactory.class,
-							org.w3._2001._04.xmlenc_.ObjectFactory.class);
-		return jaxbContext;
-	}
-
-	public void addResource(String stringValue, String path, String mediaType)
-			throws IOException {
-		try {
-			odfPackage.insert(stringValue.getBytes(UTF_8), path, mediaType);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not add " + path, e);
-		}
-		parseContainerXML();
-	}
-
-	public void addResource(byte[] bytesValue, String path, String mediaType)
-			throws IOException {
-		try {
-			odfPackage.insert(bytesValue, path, mediaType);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not add " + path, e);
-		}
-		if (path.equals(CONTAINER_XML))
-			parseContainerXML();
-	}
-
-	public void addResource(Document document, String path, String mediaType)
-			throws IOException {
-		try {
-			odfPackage.insert(document, path, mediaType);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not add " + path, e);
-		}
-		if (path.equals(CONTAINER_XML))
-			parseContainerXML();
-	}
-
-	public void addResource(InputStream inputStream, String path,
-			String mediaType) throws IOException {
-		try {
-			odfPackage.insert(inputStream, path, mediaType);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not add " + path, e);
-		}
-		if (path.equals(CONTAINER_XML))
-			parseContainerXML();
-	}
-
-	public void addResource(URI uri, String path, String mediaType)
-			throws IOException {
-		try {
-			odfPackage.insert(uri, path, mediaType);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not add " + path, e);
-		}
-
-		if (path.equals(CONTAINER_XML))
-			parseContainerXML();
-	}
-
-	public String getResourceAsString(String path) throws IOException {
-		try {
-			return new String(odfPackage.getBytes(path), UTF_8);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not get " + path, e);
-		}
-	}
-
-	public byte[] getResourceAsBytes(String path) throws IOException {
-		try {
-			return odfPackage.getBytes(path);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not get " + path, e);
-		}
-	}
-
-	public InputStream getResourceAsInputStream(String path) throws IOException {
-		try {
-			return odfPackage.getInputStream(path);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not get " + path, e);
-		}
-	}
-
-	public Map<String, ResourceEntry> listResources() {
-		return listResources("", false);
-	}
-
-	public Map<String, ResourceEntry> listResources(String folderPath) {
-		return listResources(folderPath, false);
-	}
-
-	protected Map<String, ResourceEntry> listResources(String folderPath,
-			boolean recursive) {
-		if (!folderPath.isEmpty() && !folderPath.endsWith("/"))
-			folderPath = folderPath + "/";
-		HashMap<String, ResourceEntry> content = new HashMap<>();
-
-		for (Entry<String, OdfFileEntry> entry : odfPackage
-				.getManifestEntries().entrySet()) {
-			String entryPath = entry.getKey();
-			if (!entryPath.startsWith(folderPath))
-				continue;
-			String subPath = entryPath.substring(folderPath.length(),
-					entryPath.length());
-			if (subPath.isEmpty())
-				// The folder itself
-				continue;
-			int firstSlash = subPath.indexOf("/");
-			if (!recursive && firstSlash > -1
-					&& firstSlash < subPath.length() - 1)
-				/*
-				 * Children of a folder (note that we'll include the folder
-				 * itself which ends in /)
-				 */
-				continue;
-			content.put(subPath, new ResourceEntry(entry.getValue()));
-		}
-		return content;
-	}
-
-	public void removeResource(String path) {
-		if (!odfPackage.contains(path))
-			return;
-		if (path.endsWith("/"))
-			for (ResourceEntry childEntry : listResources(path).values())
-				removeResource(childEntry.getPath());
-		odfPackage.remove(path);
-	}
-
-	public class ResourceEntry {
-		private final String path;
-		private final long size;
-		private String mediaType;
-		private String version;
-
-		protected ResourceEntry(OdfFileEntry odfEntry) {
-			path = odfEntry.getPath();
-			size = odfEntry.getSize();
-			mediaType = odfEntry.getMediaType();
-			version = odfEntry.getVersion();
-		}
-
-		public String getPath() {
-			return path;
-		}
-
-		public long getSize() {
-			return size;
-		}
-
-		public String getMediaType() {
-			return mediaType;
-		}
-
-		public boolean isFolder() {
-			return path.endsWith("/");
-		}
-
-		public UCFPackage getUcfPackage() {
-			return UCFPackage.this;
-		}
-
-		@Override
-		public boolean equals(Object obj) {
-			if (!(obj instanceof ResourceEntry))
-				return false;
-			ResourceEntry other = (ResourceEntry) obj;
-
-			if (!getUcfPackage().equals(other.getUcfPackage()))
-				return false;
-			return getPath().equals(other.getPath());
-		}
-
-		@Override
-		public int hashCode() {
-			final int prime = 31;
-			int result = 1;
-			result = prime * result + getUcfPackage().hashCode();
-			result = prime * result + ((path == null) ? 0 : path.hashCode());
-			return result;
-		}
-
-		public String getVersion() {
-			return version;
-		}
-	}
-
-	public Map<String, ResourceEntry> listAllResources() {
-		return listResources("", true);
-	}
-
-	public void setRootFile(String path) {
-		setRootFile(path, null);
-	}
-
-	@SuppressWarnings("rawtypes")
-	public void setRootFile(String path, String version) {
-		ResourceEntry rootFile = getResourceEntry(path);
-		if (rootFile == null)
-			throw new IllegalArgumentException("Unknown resource: " + path);
-		odfPackage.getManifestEntries().get(path).setVersion(version);
-
-		Container container = containerXml.getValue();
-
-		RootFiles rootFiles = getRootFiles(container);
-		String mediaType = rootFile.getMediaType();
-		boolean foundExisting = false;
-		// Check any existing files for matching path/mime type
-		Iterator<Object> anyOrRootIt = rootFiles.getAnyOrRootFile().iterator();
-		while (anyOrRootIt.hasNext()) {
-			Object anyOrRoot = anyOrRootIt.next();
-			if (anyOrRoot instanceof JAXBElement)
-				anyOrRoot = ((JAXBElement) anyOrRoot).getValue();
-			if (!(anyOrRoot instanceof RootFile))
-				continue;
-			RootFile rootFileElem = (RootFile) anyOrRoot;
-			if (!rootFileElem.getFullPath().equals(path)
-					&& !rootFileElem.getMediaType().equals(mediaType))
-				// Different path and media type - ignore
-				continue;
-			if (foundExisting) {
-				// Duplicate path/media type, we'll remove it
-				anyOrRootIt.remove();
-				continue;
-			}
-			rootFileElem.setFullPath(rootFile.getPath());
-			if (mediaType != null)
-				rootFileElem.setMediaType(mediaType);
-
-			foundExisting = true;
-		}
-		if (!foundExisting) {
-			RootFile rootFileElem = containerFactory.createRootFile();
-			rootFileElem.setFullPath(rootFile.getPath());
-			rootFileElem.setMediaType(mediaType);
-			rootFiles.getAnyOrRootFile().add(
-					containerFactory
-							.createContainerRootFilesRootFile(rootFileElem));
-			// rootFiles.getAnyOrRootFile().add(rootFileElem);
-		}
-	}
-
-	protected RootFiles getRootFiles(Container container) {
-		for (Object o : container.getRootFilesOrAny()) {
-			if (o instanceof JAXBElement) {
-				@SuppressWarnings("rawtypes")
-				JAXBElement jaxbElement = (JAXBElement) o;
-				o = jaxbElement.getValue();
-			}
-			if (o instanceof RootFiles)
-				return (RootFiles) o;
-		}
-		// Not found - add it
-		RootFiles rootFiles = containerFactory.createContainerRootFiles();
-		container.getRootFilesOrAny().add(
-				containerFactory.createContainerRootFiles(rootFiles));
-		return rootFiles;
-	}
-
-	@SuppressWarnings("rawtypes")
-	public List<ResourceEntry> getRootFiles() {
-		ArrayList<UCFPackage.ResourceEntry> rootFiles = new ArrayList<>();
-		if (containerXml == null)
-			return rootFiles;
-
-		RootFiles rootFilesElem = getRootFiles(containerXml.getValue());
-		for (Object anyOrRoot : rootFilesElem.getAnyOrRootFile()) {
-			if (anyOrRoot instanceof JAXBElement)
-				anyOrRoot = ((JAXBElement) anyOrRoot).getValue();
-			if (!(anyOrRoot instanceof RootFile))
-				continue;
-			RootFile rf = (RootFile) anyOrRoot;
-			ResourceEntry entry = getResourceEntry(rf.getFullPath());
-			if (rf.getMediaType() != null
-					&& rf.getMediaType() != entry.mediaType)
-				// Override the mime type in the returned entry
-				entry.mediaType = rf.getMediaType();
-			rootFiles.add(entry);
-		}
-		return rootFiles;
-	}
-
-	public ResourceEntry getResourceEntry(String path) {
-		OdfFileEntry odfFileEntry = odfPackage.getManifestEntries().get(path);
-		if (odfFileEntry == null)
-			return null;
-		return new ResourceEntry(odfFileEntry);
-	}
-
-	@SuppressWarnings("rawtypes")
-	public void unsetRootFile(String path) {
-		Container container = containerXml.getValue();
-		RootFiles rootFiles = getRootFiles(container);
-		Iterator<Object> anyOrRootIt = rootFiles.getAnyOrRootFile().iterator();
-		while (anyOrRootIt.hasNext()) {
-			Object anyOrRoot = anyOrRootIt.next();
-			if (anyOrRoot instanceof JAXBElement)
-				anyOrRoot = ((JAXBElement) anyOrRoot).getValue();
-			if (!(anyOrRoot instanceof RootFile))
-				continue;
-			RootFile rootFileElem = (RootFile) anyOrRoot;
-			if (rootFileElem.getFullPath().equals(path))
-				anyOrRootIt.remove();
-		}
-	}
-
-	protected JAXBElement<Container> getContainerXML() {
-		return containerXml;
-	}
-
-	public void save(OutputStream output) throws IOException {
-		File tempFile = createTempFile("ucfpackage", ".tmp");
-		prepareAndSave(tempFile);
-
-		// Copy file to the output
-
-		// Note - Should use IOUtils, but we're trying to avoid external dependencies
-		try (InputStream inStream = new FileInputStream(tempFile)) {
-			byte[] buffer = new byte[8192];
-			int n = 0;
-			do {
-				output.write(buffer, 0, n);
-				n = inStream.read(buffer);
-			} while (n > -1);
-		} finally {
-			tempFile.delete();
-		}
-	}
-
-	public OutputStream addResourceUsingOutputStream(String path,
-			String mediaType) throws IOException {
-		if (path.equals(CONTAINER_XML))
-			// as we need to parse it after insertion, this must fail
-			throw new IllegalArgumentException("Can't add " + CONTAINER_XML
-					+ " using OutputStream");
-		try {
-			return odfPackage.insertOutputStream(path, mediaType);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException("Could not add " + path, e);
-		}
-	}
-
-	@Override
-	public UCFPackage clone() {
-		final PipedOutputStream outputStream = new PipedOutputStream();
-		try {
-			try (PipedInputStream inputStream = copyToOutputStream(outputStream)) {
-				return new UCFPackage(inputStream);
-			}
-		} catch (IOException e) {
-			throw new RuntimeException("Could not clone UCFPackage", e);
-		}
-	}
-
-	private PipedInputStream copyToOutputStream(
-			final PipedOutputStream outputStream) throws IOException {
-		PipedInputStream inputStream = new PipedInputStream(outputStream);
-		new Thread("Cloning " + this) {
-			@Override
-			public void run() {
-				try {
-					try {
-						save(outputStream);
-					} finally {
-						outputStream.close();
-					}
-				} catch (IOException e) {
-					logger.log(INFO,
-							"Could not save/close UCF package while cloning", e);
-				}
-			}
-		}.start();
-		return inputStream;
-	}
-
-	public String getRootFileVersion(String rootFile) {
-		return getResourceEntry(rootFile).getVersion();
-	}
-}


[17/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader b/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
deleted file mode 100644
index a37156a..0000000
--- a/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.scufl2.translator.scufl.ScuflReader
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.scufl.ScuflExtensionParser
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.scufl.ScuflExtensionParser b/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.scufl.ScuflExtensionParser
deleted file mode 100644
index 32b7279..0000000
--- a/taverna-scufl2-scufl/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.scufl.ScuflExtensionParser
+++ /dev/null
@@ -1,10 +0,0 @@
-org.apache.taverna.scufl2.translator.scufl.processorelement.AbstractProcessorExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.ApiConsumerExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.BeanshellExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.BiomartExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.BiomobyExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.LocalExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.RshellExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.SoaplabExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.StringConstantExtensionParser
-org.apache.taverna.scufl2.translator.scufl.processorelement.WsdlExtensionParser

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-abstract.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-abstract.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-abstract.xsd
deleted file mode 100644
index ba3bea7..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-abstract.xsd
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-            jaxb:version="1.0">
-
-
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="inputPortType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      <xsd:attribute name="syntacticType" type="xsd:string" form="qualified"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="inputPortListType">
-  <xsd:sequence>
-    <xsd:element ref="inputPort" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="outputPortType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      <xsd:attribute name="syntacticType" type="xsd:string" form="qualified"/>
-     </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="outputPortListType">
-  <xsd:sequence>
-    <xsd:element ref="outputPort" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="abstractprocessorType" mixed="true">
-  <xsd:sequence>
-    <xsd:element ref="inputPortList"/>
-    <xsd:element ref="outputPortList"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-
-<xsd:element name="inputPort" type="scufl:inputPortType"/>
-
-<xsd:element name="inputPortList" type="scufl:inputPortListType"/>
-
-
-<xsd:element name="outputPort" type="scufl:outputPortType"/>
-
-<xsd:element name="outputPortList" type="scufl:outputPortListType"/>
-
-<xsd:element name="abstractprocessor" type="scufl:abstractprocessorType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-apiconsumer.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-apiconsumer.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-apiconsumer.xsd
deleted file mode 100644
index 1a198a4..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-apiconsumer.xsd
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-            jaxb:version="1.0">
-
-
-<xsd:include schemaLocation="scufl.xsd" />
-<xsd:include schemaLocation="scufl-dependency.xsd" />
-
-<xsd:complexType name="apiconsumerType">
-      <xsd:sequence>
-      <xsd:element ref="class" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="method" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="description" maxOccurs="1" minOccurs="1"/>
-      <xsd:sequence>
-        <xsd:element ref="parameter" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:element ref="dependencies" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="repositories" maxOccurs="1" minOccurs="1"/>
-      </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="classType">
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="methodType">
-  <xsd:attribute name="name" type="xsd:string"/>
-  <xsd:attribute name="static" type="xsd:boolean"/>
-  <xsd:attribute name="constructor" type="xsd:boolean"/>
-  <xsd:attribute name="type" type="xsd:string"/>
-  <xsd:attribute name="dimension" type="xsd:nonNegativeInteger"/>
-</xsd:complexType>
-
-<xsd:complexType name="parameterType">
-  	<xsd:annotation>
-         <xsd:appinfo>
-            <jaxb:class name="ApiConsumerParameterType"/>
-         </xsd:appinfo>
-      </xsd:annotation>
-  <xsd:attribute name="name" type="xsd:string"/>
-  <xsd:attribute name="type" type="xsd:string"/>
-  <xsd:attribute name="dimension" type="xsd:nonNegativeInteger"/>
-</xsd:complexType>
-
-<xsd:element name="parameter" type="scufl:parameterType">
- 	<xsd:annotation>
-         <xsd:appinfo>
-            <jaxb:class name="ApiConsumerParameter"/>
-         </xsd:appinfo>
-      </xsd:annotation>
-</xsd:element>
-
-<xsd:element name="class" type="scufl:classType"/>
-
-<xsd:element name="method" type="scufl:methodType"/>
-
-<xsd:element name="apiconsumer" type="scufl:apiconsumerType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-beanshell.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-beanshell.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-beanshell.xsd
deleted file mode 100644
index 7a9665f..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-beanshell.xsd
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-
-<xsd:include schemaLocation="scufl.xsd" />
-<xsd:include schemaLocation="scufl-dependency.xsd" />
-
-<xsd:complexType name="beanshellType">
-      <xsd:sequence>
-      <xsd:element ref="scriptvalue" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="beanshellinputlist" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="beanshelloutputlist" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="dependencies" maxOccurs="1" minOccurs="1"/>
-      <xsd:element ref="repositories" maxOccurs="1" minOccurs="1"/>      
-      </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="scriptvalueType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="beanshellinputType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute name="syntactictype" type="xsd:string" form="qualified"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="beanshellinputlistType">
-  <xsd:sequence>
-    <xsd:element ref="beanshellinput" maxOccurs="unbounded" minOccurs="0"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="beanshelloutputType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute name="syntactictype" type="xsd:string" form="qualified"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="beanshelloutputlistType">
-  <xsd:sequence>
-    <xsd:element ref="beanshelloutput" maxOccurs="unbounded" minOccurs="0"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:element name="beanshelloutput" type="scufl:beanshelloutputType"/>
-
-<xsd:element name="beanshelloutputlist" type="scufl:beanshelloutputlistType"/>
-
-<xsd:element name="beanshellinput" type="scufl:beanshellinputType"/>
-
-<xsd:element name="beanshellinputlist" type="scufl:beanshellinputlistType"/>
-
-<xsd:element name="scriptvalue" type="scufl:scriptvalueType"/>
-
-<xsd:element name="beanshell" type="scufl:beanshellType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomart.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomart.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomart.xsd
deleted file mode 100644
index ffa99af..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomart.xsd
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="biomartType">
-  <xsd:sequence>
-  <xsd:any/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:element name="biomart" type="scufl:biomartType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomoby.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomoby.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomoby.xsd
deleted file mode 100644
index 46cf697..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-biomoby.xsd
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-            jaxb:version="1.0">
-
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="biomobywsdlType">
-  <xsd:sequence>
-    <xsd:element ref="mobyEndpoint"/>
-    <xsd:element ref="serviceName"/>
-    <xsd:element ref="authorityName"/>
-    <xsd:element ref="Parameter" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="mobyEndpointType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="serviceNameType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="authorityNameType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="ParameterType">
-	<xsd:annotation>
-         <xsd:appinfo>
-            <jaxb:class name="BiomobyParameterType"/>
-         </xsd:appinfo>
-      </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      <xsd:attribute name="name" type="xsd:string"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="endpointType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="articleNameType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="datatypeType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-
-
-<xsd:complexType name="biomobyparserType">
-  <xsd:sequence>
-    <xsd:element ref="endpoint"/>
-    <xsd:element ref="datatype"/>
-    <xsd:element ref="articleName"/>
-    <xsd:element ref="description"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:element name="Parameter" type="ParameterType">
-	<xsd:annotation>
-         <xsd:appinfo>
-            <jaxb:class name="BiomobyParameter"/>
-         </xsd:appinfo>
-      </xsd:annotation>
-</xsd:element>
-
-<xsd:complexType name="biomobyobjectType">
-  <xsd:sequence>
-    <xsd:element ref="mobyEndpoint"/>
-    <xsd:element ref="serviceName"/>
-    <xsd:element ref="authorityName"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-
-<xsd:element name="articleName" type="articleNameType"/>
-
-<xsd:element name="datatype" type="datatypeType"/>
-
-<xsd:element name="endpoint" type="endpointType"/>
-
-<xsd:element name="mobyEndpoint" type="mobyEndpointType"/>
-
-<xsd:element name="serviceName" type="serviceNameType"/>
-
-<xsd:element name="authorityName" type="authorityNameType"/>
-
-<xsd:element name="biomobywsdl" type="scufl:biomobywsdlType" substitutionGroup="processorElement"/>
-
-<xsd:element name="biomobyparser" type="scufl:biomobyparserType" substitutionGroup="processorElement"/>
-
-<xsd:element name="biomobyobject" type="scufl:biomobyobjectType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-dependency.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-dependency.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-dependency.xsd
deleted file mode 100644
index 2abaeeb..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-dependency.xsd
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-            
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="dependenciesType">
-      <xsd:sequence>
-      <xsd:element ref="jarfile" maxOccurs="unbounded" minOccurs="0"/>     
-      <xsd:element ref="artifact" maxOccurs="unbounded" minOccurs="0"/>     
-      </xsd:sequence>
-      <xsd:attribute name="classloader" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="jarfileType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="artifactType">
-  <xsd:attribute name="groupId" type="xsd:string"/>
-  <xsd:attribute name="artifact" type="xsd:string"/>
-  <xsd:attribute name="version" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="repositoriesType">
-      <xsd:sequence>
-      <xsd:element ref="repository" maxOccurs="unbounded" minOccurs="0"/>         
-      </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="repositoryType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:element name="artifact" type="artifactType"/>
-
-
-<xsd:element name="jarfile" type="jarfileType"/>
-
-<xsd:element name="dependencies" type="scufl:dependenciesType"/>
-
-<xsd:element name="repositories" type="scufl:repositoriesType"/>
-<xsd:element name="repository" type="scufl:repositoryType"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-inferno.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-inferno.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-inferno.xsd
deleted file mode 100644
index 20c002d..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-inferno.xsd
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-            jaxb:version="1.0">
-
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="hostType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="portType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:nonNegativeInteger">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="serviceType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="infernoType">
-  <xsd:sequence>
-    <xsd:element ref="host"/>
-    <xsd:element ref="port"/>
-    <xsd:element ref="service"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:element name="host" type="scufl:hostType"/>
-
-<xsd:element name="port" type="scufl:portType"/>
-
-<xsd:element name="service" type="scufl:serviceType"/>
-
-<xsd:element name="inferno" type="scufl:infernoType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-local.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-local.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-local.xsd
deleted file mode 100644
index 79d26fc..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-local.xsd
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-            
-<xsd:include schemaLocation="scufl.xsd" />
-<xsd:include schemaLocation="scufl-wsdl.xsd" />
-
-<xsd:complexType name="flattenlistType">
-  <xsd:attribute name="depth" type="xsd:nonNegativeInteger"/>
-</xsd:complexType>
-            
-<xsd:complexType name="slicelistType">
-  <xsd:attribute name="depth" type="xsd:nonNegativeInteger"/>
-</xsd:complexType>
-            
-<xsd:complexType name="extensionsType">
-	<xsd:choice>
-        <xsd:element ref="complextype"/>
-        <xsd:element ref="arraytype"/>
-        <xsd:element ref="flattenlist"/>
-        <xsd:element ref="slicelist"/>
-      </xsd:choice>
-</xsd:complexType>
-
-<xsd:complexType name="localType" mixed="true">
-      <xsd:sequence>
-      <xsd:element ref="extensions" maxOccurs="1" minOccurs="0"/>
-      </xsd:sequence>
-     <xsd:attributeGroup ref="scufl:processorElementAttributes"/>
-</xsd:complexType>
-
-<xsd:element name="slicelist" type="scufl:slicelistType"/>
-
-<xsd:element name="flattenlist" type="scufl:flattenlistType"/>
-
-<xsd:element name="extensions" type="scufl:extensionsType"/>
-
-<xsd:element name="local" type="scufl:localType" substitutionGroup="processorElement">
-</xsd:element>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-notification.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-notification.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-notification.xsd
deleted file mode 100644
index 9f24db1..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-notification.xsd
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-            
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="notificationType">
-</xsd:complexType>
-
-<xsd:element name="notification" type="scufl:notificationType" substitutionGroup="processorElement">
-</xsd:element>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-rshell.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-rshell.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-rshell.xsd
deleted file mode 100644
index 6eb3710..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-rshell.xsd
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
-            jaxb:version="1.0">
-
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="rshellInputPortType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      <xsd:attribute name="syntacticType" type="xsd:string" form="qualified"/>
-      <xsd:attribute name="symanticType" type="xsd:string" form="qualified"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="rshellInputPortListType">
-  <xsd:sequence>
-    <xsd:element ref="rshellInputPort" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="rshellOutputPortType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      <xsd:attribute name="syntacticType" type="xsd:string" form="qualified"/>
-       <xsd:attribute name="symanticType" type="xsd:string" form="qualified"/>
-     </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="rshellOutputPortListType">
-  <xsd:sequence>
-    <xsd:element ref="rshellOutputPort" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="rshellType" mixed="true">
-  <xsd:sequence>
-    <xsd:element ref="rshellInputPortList"/>
-    <xsd:element ref="rshellOutputPortList"/>
-  </xsd:sequence>
-  <xsd:attribute name="hostname" type="xsd:string" form="qualified"/>
-  <xsd:attribute name="port" type="xsd:nonNegativeInteger" form="qualified"/>
-  <xsd:attribute name="username" type="xsd:string" form="qualified"/>
-  <xsd:attribute name="password" type="xsd:string" form="qualified"/>
-  <xsd:attribute name="keepSessionAlive" type="xsd:boolean" form="qualified"/>
-</xsd:complexType>
-
-
-<xsd:element name="rshellInputPort" type="scufl:rshellInputPortType"/>
-
-<xsd:element name="rshellInputPortList" type="scufl:rshellInputPortListType"/>
-
-
-<xsd:element name="rshellOutputPort" type="scufl:rshellOutputPortType"/>
-
-<xsd:element name="rshellOutputPortList" type="scufl:rshellOutputPortListType"/>
-
-<xsd:element name="rshell" type="scufl:rshellType" substitutionGroup="processorElement"/>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-soaplab.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-soaplab.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-soaplab.xsd
deleted file mode 100644
index 7c4c893..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-soaplab.xsd
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-            
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="soaplabwsdlType">
- <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-    <xsd:attribute name="interval" type="xsd:nonNegativeInteger"/>
-    <xsd:attribute name="backoff" type="xsd:double"/>
-    <xsd:attribute name="maxinterval" type="xsd:nonNegativeInteger"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-    
-<xsd:element name="soaplabwsdl" type="scufl:soaplabwsdlType" substitutionGroup="processorElement">
-</xsd:element>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-stringconstant.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-stringconstant.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-stringconstant.xsd
deleted file mode 100644
index f0a2ce6..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-stringconstant.xsd
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-            
-<xsd:include schemaLocation="scufl.xsd" />
-
-<xsd:complexType name="stringconstantType">
- <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-    
-<xsd:element name="stringconstant" type="scufl:stringconstantType" substitutionGroup="processorElement">
-</xsd:element>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-wsdl.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-wsdl.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-wsdl.xsd
deleted file mode 100644
index 27b8ba6..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl-wsdl.xsd
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-            
-<xsd:include schemaLocation="scufl.xsd" />
-<xsd:include schemaLocation="scufl-local.xsd" />
-
-<xsd:attributeGroup name="xmlElementAttributes">
-  <xsd:attribute name="optional" type="xsd:boolean"/>
-  <xsd:attribute name="unbounded" type="xsd:boolean"/>
-  <xsd:attribute name="wrapped" type="xsd:boolean"/>
-  <xsd:attribute name="typename" type="xsd:string"/>
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:attributeGroup>
-
-<xsd:complexType name="elementtypeType">
-  <xsd:choice>
-    <xsd:element ref="complextype"/>
-    <xsd:element ref="arraytype"/>
-    <xsd:element ref="basetype"/>
-  </xsd:choice>
-</xsd:complexType>
-
-<xsd:complexType name="basetypeType">
-    <xsd:attribute name="qname" type="xsd:string"/>
-    <xsd:attributeGroup ref="scufl:xmlElementAttributes"/>
-</xsd:complexType>
-
-<xsd:complexType name="elementsType">
-    <xsd:sequence>
-      <xsd:choice maxOccurs="unbounded" minOccurs="0">
-        <xsd:element ref="complextype"/>
-        <xsd:element ref="arraytype"/>
-        <xsd:element ref="basetype"/>
-      </xsd:choice>
-    </xsd:sequence>
-</xsd:complexType>
-            
-<xsd:complexType name="complextypeType">
-    <xsd:sequence>
-     <xsd:element ref="elements" maxOccurs="1" minOccurs="0"/>
-     </xsd:sequence>
-    <xsd:attribute name="qname" type="xsd:string"/>
-    <xsd:attribute name="id" type="xsd:string"/>
-    <xsd:attributeGroup ref="scufl:xmlElementAttributes"/>
-</xsd:complexType>
-
-<xsd:complexType name="arraytypeType">
-    <xsd:sequence>
-      <xsd:element ref="elementtype"/>
-    </xsd:sequence>
-    <xsd:attribute name="qname" type="xsd:string"/>
-    <xsd:attribute name="id" type="xsd:string"/>
-    <xsd:attributeGroup ref="scufl:xmlElementAttributes"/>
-</xsd:complexType>
-
-
-<xsd:complexType name="wsdlType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="operationType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="arbitraryWsdlType">
- 			<xsd:sequence>
-			  <xsd:element ref="wsdl" minOccurs="1" maxOccurs="1"/>
-			  <xsd:element ref="operation" minOccurs="1" maxOccurs="1"/>
-			</xsd:sequence>
-     <xsd:attributeGroup ref="scufl:processorElementAttributes"/>
-</xsd:complexType>
-
-<xsd:element name="elementtype" type="scufl:elementtypeType"/>
-
-<xsd:element name="basetype" type="scufl:basetypeType"/>
-
-<xsd:element name="elements" type="scufl:elementsType"/>
-
-<xsd:element name="complextype" type="scufl:complextypeType"/>
-
-<xsd:element name="arraytype" type="scufl:arraytypeType"/>
-
-<xsd:element name="wsdl" type="scufl:wsdlType"/>
-
-<xsd:element name="operation" type="scufl:operationType"/>
-    
-<xsd:element name="arbitrarywsdl" type="scufl:arbitraryWsdlType" substitutionGroup="processorElement">
-</xsd:element>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl.xsd b/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl.xsd
deleted file mode 100644
index 423fc69..0000000
--- a/taverna-scufl2-scufl/src/main/resources/org/apache/taverna/scufl2/translator/scufl/xsd/scufl.xsd
+++ /dev/null
@@ -1,354 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            xmlns="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            targetNamespace="http://org.embl.ebi.escience/xscufl/0.1alpha"
-            xmlns:scufl="http://org.embl.ebi.escience/xscufl/0.1alpha">
-
-
-<xsd:complexType name="workflowDescriptionType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute name="lsid" type="xsd:string"/>
-        <xsd:attribute name="author" type="xsd:string"/>
-        <xsd:attribute name="title" type="xsd:string"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="descriptionType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="defaultType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute name="name" type="xsd:string"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="defaultsType">
-  <xsd:sequence>
-    <xsd:element ref="default" maxOccurs="unbounded" minOccurs="0"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:attributeGroup name="processorElementAttributes">
-  <xsd:attribute name="maxretries" type="xsd:positiveInteger"/>
-  <xsd:attribute name="retrydelay" type="xsd:positiveInteger"/>
-  <xsd:attribute name="retrybackoff" type="xsd:double"/>
-  <xsd:attribute name="critical" type="xsd:boolean"/>
-  <xsd:attribute name="breakpoint" type="xsd:boolean"/>
-</xsd:attributeGroup>
-
-<xsd:complexType name="mergemodeType">
-  <xsd:attribute name="input" type="xsd:string"/>
-  <xsd:attribute name="mode" fixed="merge" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="iteratorType">
-  <xsd:sequence/>
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="iterationstrategyType">
-  <xsd:choice>
-    <xsd:element ref="iterator"/>
-    <xsd:element ref="dot"/>
-    <xsd:element ref="cross"/>
-  </xsd:choice>
-</xsd:complexType>
-
-<xsd:complexType name="dotType">
-  <xsd:sequence>
-  <xsd:choice>
-    <xsd:element ref="iterator"/>
-    <xsd:element ref="dot"/>
-    <xsd:element ref="cross"/>
-  </xsd:choice>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="crossType">
-  <xsd:sequence>
-  <xsd:choice>
-    <xsd:element ref="iterator"/> 
-    <xsd:element ref="dot"/>
-    <xsd:element ref="cross"/>
-  </xsd:choice>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="templateLiteralType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="templatePortReferenceType">
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="mapType">
-  <xsd:attribute name="key" type="xsd:string"/>
-  <xsd:attribute name="value" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="templateType">
-  <xsd:sequence>
-    <xsd:choice maxOccurs="unbounded" minOccurs="1">
-      <xsd:element ref="templateLiteral"/>
-      <xsd:element ref="templatePortReference"/>
-    </xsd:choice>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="processorType">
-  <xsd:sequence>
-    <xsd:element ref="description" maxOccurs="1" minOccurs="0"/>
-    <xsd:element ref="defaults" maxOccurs="1" minOccurs="0"/>
-    <xsd:element ref="processorElement" maxOccurs="1" minOccurs="1"/>
-    <xsd:element ref="mergemode" maxOccurs="unbounded" minOccurs="0"/>
-    <xsd:element ref="iterationstrategy" maxOccurs="1" minOccurs="0"/>
-    <xsd:element ref="alternate" maxOccurs="unbounded" minOccurs="0"/>
-    <xsd:element ref="template"/>
-  </xsd:sequence>
-  <xsd:attribute name="name" type="xsd:string"/>
-  <xsd:attribute name="workers" type="xsd:positiveInteger"/>
-  <xsd:attribute name="boring" type="xsd:boolean"/>
-  <xsd:attribute name="log" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="alternateType">
-  <xsd:complexContent>
-    <xsd:extension base="scufl:processorType">
-      <xsd:sequence>
-        <xsd:element ref="inputmap" maxOccurs="unbounded" minOccurs="0"/>
-       <xsd:element ref="outputmap" maxOccurs="unbounded" minOccurs="0"/>
-      </xsd:sequence>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-<xsd:complexType name="nodeType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="linkType">
-  <xsd:sequence>
-    <xsd:element ref="input"/>
-    <xsd:element ref="output"/>
-  </xsd:sequence>
-  <xsd:attribute name="source" type="xsd:string"/>
-  <xsd:attribute name="sink" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="mimeTypeType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="semanticTypeType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="metadataType">
-  <xsd:sequence>
-    <xsd:element ref="mimeTypes"/>
-    <xsd:element ref="description"/>
-    <xsd:element ref="semanticType"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="sourceType">
-  <xsd:sequence>
-    <xsd:element ref="metadata"/>
-  </xsd:sequence>
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="sinkType">
-  <xsd:sequence>
-   <xsd:element ref="metadata"/>
-  </xsd:sequence>
-  <xsd:attribute name="mode" type="xsd:string"/>
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="conditionStateType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="targetType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-
-<xsd:complexType name="conditionType">
-  <xsd:sequence>
-    <xsd:element ref="state" minOccurs="1" maxOccurs="1"/>
-     <xsd:element ref="target" minOccurs="1" maxOccurs="1"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="statusCodeType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-      </xsd:extension>
-    </xsd:simpleContent>
-</xsd:complexType>
-
-<xsd:complexType name="statechangeType">
-  <xsd:sequence>
-    <xsd:element ref="from" minOccurs="1" maxOccurs="1"/>
-     <xsd:element ref="to" minOccurs="1" maxOccurs="1"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-
-<xsd:complexType name="actionType">
-  <xsd:sequence>
-    <xsd:element ref="target" minOccurs="1" maxOccurs="1"/>
-    <xsd:element ref="statechange" minOccurs="1" maxOccurs="1"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="coordinationType">
-  <xsd:sequence>
-    <xsd:element ref="condition" minOccurs="1" maxOccurs="1"/>
-    <xsd:element ref="action" minOccurs="1" maxOccurs="1"/>
-  </xsd:sequence>
-  <xsd:attribute name="name" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="scuflType">
-  <xsd:sequence>
-    <xsd:element ref="workflowdescription" minOccurs="1" maxOccurs="1"/>
-    <xsd:element ref="processor" minOccurs="0" maxOccurs="unbounded"/>
-    <xsd:element ref="link" minOccurs="0" maxOccurs="unbounded"/>
-    <xsd:element ref="source" minOccurs="0" maxOccurs="unbounded"/>
-    <xsd:element ref="sink" minOccurs="0" maxOccurs="unbounded"/>
-    <xsd:element ref="coordination" minOccurs ="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-  <xsd:attribute name="version" type="xsd:string"/>
-  <xsd:attribute name="log" type="xsd:nonNegativeInteger"/>
-</xsd:complexType>
-
-
-<xsd:element name="action" type="scufl:actionType"/>
-
-<xsd:element name="alternate" type="scufl:alternateType"/>
-    
-<xsd:element name="condition" type="scufl:conditionType"/>
-
-<xsd:element name="coordination" type="scufl:coordinationType"/>
-
-<xsd:element name="cross" type="scufl:crossType"/>
-
-<xsd:element name="default" type="scufl:defaultType"/>
-
-<xsd:element name="defaults" type="scufl:defaultsType"/>
-
-<xsd:element name="description" type="scufl:descriptionType"/>
-
-<xsd:element name="dot" type="scufl:dotType"/>
-
-<xsd:element name="from" type="scufl:statusCodeType"/>
-
-<xsd:element name="input" type="scufl:nodeType"/>
-
-<xsd:element name="inputmap" type="scufl:mapType"/>
-
-<xsd:element name="iterationstrategy" type="scufl:iterationstrategyType"/>
- 
-
-<xsd:element name="iterator" type="scufl:iteratorType"/>
-
-<xsd:element name="link" type="scufl:linkType"/>
-
-<xsd:element name="mergemode" type="scufl:mergemodeType"/>
-
-<xsd:element name="metadata" type="scufl:metadataType"/>
-
-<xsd:element name="mimeType" type="scufl:mimeTypeType"/>
-
-<xsd:element name="mimeTypes">
-      <xsd:complexType>
-      <xsd:sequence>
-      <xsd:element ref="mimeType"/>
-      </xsd:sequence>
-      </xsd:complexType>
-</xsd:element>
-
-<xsd:element name="output" type="scufl:nodeType"/>
-
-<xsd:element name="outputmap" type="scufl:mapType"/>
-
-<xsd:element name="processor" type="scufl:processorType"/>
-
-<xsd:element name="processorElement" abstract="true"/>
-
-<xsd:element name="scufl" type="scufl:scuflType"/>
-
-<xsd:element name="semanticType" type="scufl:semanticTypeType"/>
-
-<xsd:element name="sink" type="scufl:sinkType"/>
-
-<xsd:element name="source" type="scufl:sourceType"/>
-
-<xsd:element name="state" type="scufl:conditionStateType"/>
-
-<xsd:element name="statechange" type="scufl:statechangeType"/>
-
-
-<xsd:element name="target" type="scufl:targetType"/>
-
-<xsd:element name="template" type="scufl:templateType"/>
-
-<xsd:element name="templateLiteral" type="scufl:templateLiteralType"/>
-
-<xsd:element name="templatePortReference"
-                   type="scufl:templatePortReferenceType"/>
-                   
-<xsd:element name="to" type="scufl:statusCodeType"/>
-
-<xsd:element name="workflowdescription" type="scufl:workflowDescriptionType"/>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestScuflReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestScuflReader.java b/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestScuflReader.java
deleted file mode 100644
index 97daa69..0000000
--- a/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestScuflReader.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.apache.taverna.scufl2.translator.scufl2;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.scufl.ScuflReader.APPLICATION_VND_TAVERNA_SCUFL_XML;
-import static org.junit.Assert.assertEquals;
-
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.junit.Test;
-
-
-public class TestScuflReader {
-
-	private static final String WORKFLOW10_XML = "/workflow10.xml";
-	WorkflowBundleIO io = new WorkflowBundleIO();
-
-	@Test
-	public void guessMediaType() throws Exception {
-		byte[] firstBytes = new byte[1024];
-		getClass().getResourceAsStream(WORKFLOW10_XML).read(firstBytes);
-		assertEquals(APPLICATION_VND_TAVERNA_SCUFL_XML,
-				io.guessMediaTypeForSignature(firstBytes));
-		// Mess up the namespace
-		firstBytes[70] = 32;
-		assertEquals(null, io.guessMediaTypeForSignature(firstBytes));
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestStarterPack.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestStarterPack.java b/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestStarterPack.java
deleted file mode 100644
index 5890bf8..0000000
--- a/taverna-scufl2-scufl/src/test/java/org/apache/taverna/scufl2/translator/scufl2/TestStarterPack.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.translator.scufl2;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-/**
- * @author alanrw
- *
- */
-public class TestStarterPack {
-
-}


[12/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow.xsd
deleted file mode 100644
index d4c23c0..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow.xsd
+++ /dev/null
@@ -1,923 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<schema targetNamespace="http://taverna.sf.net/2008/xml/t2flow"
-	elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema"
-	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xml:lang="en">
-
-	<annotation>
-		<documentation>
-			<p xmlns='http://www.w3.org/1999/xhtml'>
-				This is a descriptive, informative XML Schema
-				describing
-				the serialisation format of Taverna 2 workflows, as of
-				Taverna 2.0.
-				Such workflows are commonly served with the extension
-				.t2flow and
-				served using the content-type
-				application/vnd.taverna.t2flow+xml
-			</p>
			<p xmlns='http://www.w3.org/1999/xhtml'>
				Stable as of 2009-09-11 by Stian Soiland-Reyes, should correctly
				describe workflows as saved from Taverna 2.0, 2.1 b1 and 2.1 b2, but
				as this schema has been made in retrospect no guarantees are made.
				To test the schema against the examples, try xmllint:
				<code>xmllint --noout --schema t2flow.xsd examples/*t2flow</code>
			</p>
		</documentation>
	</annotation>
-	<element name="workflow" type="tav:Workflow">
-		<annotation>
-			<documentation>The container element for a .t2flow workflow
-				definition. Future versions of Taverna may support other kinds of
-				flows, like control flows, but currently only Dataflows are
-				supported. The Dataflow with role="top" is the main workflows.
			</documentation>
-		</annotation>
-	</element>
-
-	<complexType name="Workflow">
-		<annotation>
-			<documentation>
-				The container of a workflow definition. This schema
-				specifies workflow definitions where version="1" (as
-				used by Taverna
-				2.0) - although this schema also permits
-				any future minor versions
-				like "1.1".
-
-				At least one dataflow must be present, and it must have
-				role="top". Other dataflows would typically be
-				referenced by their id
-				from the nested workflow
-				activity.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="dataflow" type="tav:Dataflow" maxOccurs="unbounded"
-				minOccurs="1">
-			</element>
-		</sequence>
-		<attribute use="required" name="version" type="tav:Version1">
-
-		</attribute>
-		<attribute name="producedBy" type="string" use="optional">
-			<annotation>
-				<documentation>Application that produced (ie. saved/serialised) this
-					workflow.
-
-					Example: taverna-2.1-beta-1
-
-					Introduced in Taverna 2.1 Beta
-					1 - if the value is missing it's safe to
-					assume 'taverna-2.0' -
-					although it might also be a workflow saved
-					through another
-					application using the pre 2.1 APIs, such as the
-					Taverna Platform.
-				</documentation>
-			</annotation>
-		</attribute>
-	</complexType>
-
-	<complexType name="Dataflow">
-		<annotation>
-			<documentation>A dataflow, that is a workflow that is data-driven.
-				When running a dataflow, data is pushed onto the inputPorts, leading
-				through the datalinks to the input ports of processors. The output
-				ports of these processors again have datalinks to other processors,
-				and to outputPorts, which are the results of the workflow.
-				Additional control links can be listed under 'conditions', and
-				annotations (descriptions) about the Dataflow under 'annotations'.
-				The "role" attribute should be "top" for the main dataflow, and
-				"nested" for nested dataflows. The uuid-s in "id" can be referenced
-				from a nested dataflow activity.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="name" type="string">
-				<annotation>
-					<documentation></documentation>
-				</annotation>
-			</element>
-			<element name="inputPorts" type="tav:AnnotatedGranularDepthPorts">
-				<annotation>
-					<documentation>List of dataflow input ports. Input ports are the
-						"parameters" or inputs to running a workflow and must be described
-						with depth and granular depth.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="outputPorts" type="tav:AnnotatedPorts">
-				<annotation>
-					<documentation>List of output ports of the dataflows. Results are
-						delivered to the output ports, the depth of the output port is
-						calculated at runtime.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="processors" type="tav:Processors">
-				<annotation>
-					<documentation>List of processors. Processors receive, process and
-						produce data and are linked with each other using datalinks.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="conditions" type="tav:Conditions">
-				<annotation>
-					<documentation>List of conditional control link. A control link
-						between processor A and B means that processor B will not run
-						until processor A has finished all it's iterations.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="datalinks" type="tav:Datalinks">
-				<annotation>
-					<documentation>List of datalinks. A datalink goes between ports,
-						for instance from a processor output port to a processor input
-						port. The "source" end of the link can also come from a dataflow
-						input port, and the "sink" end can go to a dataflow output port. A
-						processor output port and a dataflow input port can have several
-						links to different ports, but a processor input port or a dataflow
-						output port can't have several incoming links. However, a
-						processor input port can have several incoming links through a
-						'merge', which will wrap the inputs into an ordered list.
					</documentation>
-				</annotation>
-			</element>
-			<element name="annotations" type="tav:Annotations" maxOccurs="1"
-				minOccurs="0">
-				<annotation>
-					<documentation>List of annotations, ie. descriptions and metadata
-						about the dataflow such as "title" and "author".
-					</documentation>
-				</annotation>
-			</element>
-		</sequence>
-		<attribute name="id" type="tav:uuid" use="required">
-			<annotation>
-				<documentation>A unique identifier for this dataflow (UUID). This id
-					should change whenever a structural change has been done to the
-					dataflow.
-				</documentation>
-			</annotation>
-		</attribute>
-		<attribute name="role" type="tav:role" use="required">
-			<annotation>
-				<documentation>The role of this Dataflow within the Workflow
-					container. The "top" dataflow is the main one, while "nested"
-					dataflows might be referenced by id from activities.
-				</documentation>
-			</annotation>
-		</attribute>
-	</complexType>
-
-	<simpleType name="uuid">
-		<annotation>
-			<documentation>A hex-formatted UUID. (Universial Unique IDentifier).
-				UUIDs should be generated using a random algorithm so that they
-				can't identify the machine who saved the dataflow.
-			</documentation>
-		</annotation>
-		<restriction base="string">
-			<pattern
-				value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}">
-			</pattern>
-		</restriction>
-	</simpleType>
-
-	<simpleType name="role">
-		<annotation>
-			<documentation>The role of a dataflow within a workflow.
-			</documentation>
-		</annotation>
-		<restriction base="string">
-			<enumeration value="top"></enumeration>
-			<enumeration value="nested"></enumeration>
-		</restriction>
-	</simpleType>
-
-	<complexType name="Ports">
-		<annotation>
-			<documentation>List of ports.</documentation>
-		</annotation>
-		<sequence>
-			<element name="port" type="tav:Port" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Processors">
-		<annotation>
-			<documentation>List of processors.</documentation>
-		</annotation>
-		<sequence>
-			<element name="processor" type="tav:Processor" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Conditions">
-		<annotation>
-			<documentation>List of conditional control links.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="condition" type="tav:Condition" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Datalinks">
-		<annotation>
-			<documentation>List of datalinks between dataflow ports and
-				processors in a workflow.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="datalink" type="tav:DataLink" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Port">
-		<sequence>
-			<element name="name" type="tav:PortName"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Processor">
-		<annotation>
-			<documentation>A processor of a dataflow. A processor is a dataflow
-				unit that receives input to its input ports, iterates over it using
-				the iteration strategy stack, and pushes it down the dispatch stack
-				to reach the activities that invokes the actual services. The
-				outputs from the services buble up through the dispatch stack and is
-				pushed out on the output ports, indexed according to the iteration
-				strategy.
			</documentation>
-		</annotation>
-		<sequence>
-			<element name="name" type="tav:ProcessorName">
-				<annotation>
-					<documentation>Name of processor within the dataflow. This name is
-						used to describe datalinks. The name of a processor must be
-						locally unique within a dataflow. (However the name can be reused
-						in a nested dataflow)
-					</documentation>
-				</annotation>
-			</element>
-			<element name="inputPorts" type="tav:DepthPorts">
-				<annotation>
-					<documentation>List of processor input ports. Inputs are described
-						with depth. Inputs served at a lower depth will be wrapped, if it
-						is served at a higher depth the iteration strategy stack will be
-						involved to do the iteration over the input. "Depth" means the
-						granularity of data, single strings are depth 0, a list of strings
-						are depth 1, lists of such lists are depth 2, etc.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="outputPorts" type="tav:GranularDepthPorts">
-				<annotation>
-					<documentation>List of processor output ports. Output ports must be
-						described with both depth and granular depth, although in most
-						cases the two are equal. The "depth" describes the granularity of
-						the final output produced by a data port (assuming no iteration,
-						the additional depth from this is added at runtime). If a
-						processor (and its activity) produces intermediate outputs at
-						lower granularity than the granularDepth can be set to describe at
-						which level the intermediate outputs will be produced. (Note that
-						such a processor would still need to produce the final list of the
-						defined depth in the end).
-					</documentation>
-				</annotation>
-			</element>
-			<element name="annotations" type="tav:Annotations" maxOccurs="1"
-				minOccurs="0">
-				<annotation>
-					<documentation>List of processor annotations, describing this
-						processor. For instance a description could say what is the role
-						of this processor in the dataflow.
-					</documentation>
-				</annotation>
-			</element>
-
-			<element name="activities" type="tav:Activities">
-				<annotation>
-					<documentation>List of activities that is to be invoked by this
-						processor. It is down to the dispatch stack to do the activity
-						selection (typically by the Failover layer) so that in the bottom
-						a single activity is invoked at a time. The activities must have
-						output mapping to be able to populate all of this processors
-						outputPorts, and can have input mapping to use one or more of the
-						input ports. Note that the depth of the mapped activity ports must
-						match the defined depths in the Processor ports.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="dispatchStack" type="tav:DispatchStack">
-				<annotation>
-					<documentation>The dispatch stack. The stack is made out of layers
-						that send jobs down and receive job results (or failure) from
-						below. The typical stack takes care of parallelizing, retries on
-						failure, failover to alternative activities, and handling errors.
-						The elements of the stack can be reordered and replaced for
-						individual processors, for instance if one wants to do failover
-						before retries, or do a customized layer that does service
-						selection at runtime by doing a lookup in a service repository
-						like BioCatalogue.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="iterationStrategyStack" type="tav:IterationStrategyStack">
-				<annotation>
-					<documentation>The stack of iteration strategies. The iteration
-						strategies takes care of iterating when a processor is served with
-						inputs of higher granularity than what it expects. The typical
-						usecase is a single iteration strategy in the stack, and by
-						default a single cross product of all the input ports (meaning
-						all-to-all iteration).
-					</documentation>
-				</annotation>
-			</element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Annotations">
-		<annotation>
-			<documentation>List of annotation chains</documentation>
-		</annotation>
-		<choice maxOccurs="unbounded" minOccurs="0">
-			<element name="annotation_chain" type="tav:AnnotationChain">
-			</element>
-			<element name="annotation_chain_2_2" type="tav:AnnotationChain">
-			</element>
-		</choice>
-	</complexType>
-
-	<complexType name="Activities">
-		<annotation>
-			<documentation>List of activities. The list can be empty, used for
-				"abstract" processors, placeholders until a matching activity is
-				found.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="activity" type="tav:Activity" maxOccurs="unbounded"
-				minOccurs="0" />
-		</sequence>
-	</complexType>
-
-	<complexType name="Activity">
-		<annotation>
-			<documentation>An activity is the link between a processor and the
-				actual service. Typical activities can be the WSDL activity that
-				knows how to communicate with WSDL-services, the Beanshell activity
-				that knows how to locally execute a Beanshell script, or a Dataflow
-				activity that knows how to execute a nested dataflow. (Typically
-				included as another dataflow element within this Workflow
-				description).
			</documentation>
-		</annotation>
-		<sequence>
-			<element name="raven" type="tav:Raven" maxOccurs="1"
-				minOccurs="0">
-				<annotation>
-					<documentation>Raven artifact from which the activity
-						implementation class is to be loaded. The version of this artifact
-						is mainly informational, as the currently loaded artifact is
-						preferred.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="class" type="string">
-				<annotation>
-					<documentation>Fully qualified Java class name defining this
-						activity implementation. An instance of this class will be
-						constructed and then configured with the deserialised configBean.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="inputMap" type="tav:Map">
-				<annotation>
-					<documentation>Mapping from the processor's input ports to this
-						activity's input ports (determined at run-time after
-						configuration). Not all processor inputs need to be mapped, and
-						neither does all the activity input ports need a mapping. Notice
-						that this mapping is processorPort -> activityPort , while the
-						order is opposite for outputMap. Each activity have their own
-						mapping, which means that you can have alternative activities with
-						different port names (but same depths). If one of the activities
-						requires additional input ports this can be arrange by having
-						additional processor ports, and only map them in that activity.
-						(If the other activity is invoked those inputs are ignored - but
-						note that they would still be iterated over according ot the
-						iteration strategy).
-					</documentation>
-				</annotation>
-			</element>
-			<element name="outputMap" type="tav:Map">
-				<annotation>
-					<documentation>Mapping from the activity's output ports (determined
-						at run-time after configuration) to the processor's output ports.
-						Not all of the activity's output ports need to be mapped, but all
-						of the processor output ports need to have a mapping. Notice that
-						this mapping is activityPort -> processorPort, while the order is
-						opposite for inputMap.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="configBean" type="tav:ConfigBean">
-				<annotation>
-					<documentation>Serialised configuration bean. After constructing
-						the activity instance of the defined class, this configuration
-						bean is passed as configuration to the activity. The activity
-						input and output ports will be defined at runtime after this
-						configuration. (For some activities the configuration bean
-						includes this port definition, while other calculate the ports by
-						parsing service descriptions, etc).
-					</documentation>
-				</annotation>
-			</element>
-			<element name="annotations" type="tav:Annotations" maxOccurs="1"
-				minOccurs="0">
-				<annotation>
-					<documentation>List of annotations describing this activity.
-					</documentation>
-				</annotation>
-			</element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Raven">
-		<annotation>
-			<documentation>Raven artifact described using typical Maven groupId,
-				artifactId and version. When loading a dataflow this artifact must
-				have already been loaded from one of the plugins.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="group" type="string" />
-			<element name="artifact" type="string" />
-			<element name="version" type="string" />
-		</sequence>
-	</complexType>
-
-	<complexType name="Mapping">
-		<annotation>
-			<documentation>A mapping of port names. For instance in an inputMap,
-				where a processor input port "database" is to be mapped to the
-				activity input port "db", an inputMap would be made with
-				from="database" to="db".
-			</documentation>
-		</annotation>
-		<attribute use="required" name="from" type="tav:PortName" />
-		<attribute use="required" name="to" type="tav:PortName" />
-	</complexType>
-
-	<element name="abstractConfigBean" abstract="true"
-		type="tav:AbstractConfigBean" />
-
-	<complexType name="AbstractConfigBean" />
-
-	<complexType name="ConfigBean">
-		<annotation>
-			<documentation>A serialised configuration bean to configure a
-				dispatch layer or activity. Typically the serialisation is done
-				using a Java XML serialisation from libraries such as xstream, and
-				the serialisation is therefore also dependent on the plugin defining
-				the activity or dispatch layer. The alternative schema
-				t2flow-extended.xsd adds descriptions of the most typical activities
-				and dispatch layers.
-			</documentation>
-		</annotation>
-		<sequence>
-			<any namespace="##any" processContents="lax" />
-		</sequence>
-		<attribute name="encoding" type="string" use="required" />
-	</complexType>
-
-	<complexType name="DispatchStack">
-		<annotation>
-			<documentation>List of dispatch layers. This would typically contain
-				at least the Invoke layer to perform the actual invocation of the
-				activity.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="dispatchLayer" type="tav:DispatchLayer"
-				maxOccurs="unbounded" minOccurs="0" />
-		</sequence>
-	</complexType>
-
-	<complexType name="DispatchLayer">
-		<annotation>
-			<documentation>A dispatch layer, identified by Java class name.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="raven" type="tav:Raven" maxOccurs="1"
-				minOccurs="0">
-				<annotation>
-					<documentation>Raven artifact from which the layer class is to be
-						loaded. The version of this artifact is mainly informational, as
-						the currently loaded artifact is preferred.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="class" type="string">
-				<annotation>
-					<documentation>Fully qualified Java class name defining this
-						dispatch layer. An instance of this class will be constructed and
-						then configured with the deserialised configBean.
-					</documentation>
-				</annotation>
-			</element>
-			<element name="configBean" type="tav:ConfigBean">
-				<annotation>
-					<documentation>A serialised configuration for the dispatch layer.
-						The deserialised version of this bean will be passed to the layer
-						instance after initialisation.
-					</documentation>
-				</annotation>
-			</element>
-		</sequence>
-	</complexType>
-
-	<complexType name="IterationStrategyStack">
-		<sequence>
-			<element name="iteration" type="tav:Iteration"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Iteration">
-		<sequence>
-			<element name="strategy" type="tav:TopIterationNode"
-				minOccurs="0" maxOccurs="unbounded" />
-		</sequence>
-	</complexType>
-
-	<complexType name="TopIterationNode">
-		<choice maxOccurs="1" minOccurs="0">
-			<element name="cross" type="tav:CrossProduct" />
-			<element name="dot" type="tav:DotProduct" />
-		</choice>
-	</complexType>
-
-	<complexType name="IterationNode">
-	</complexType>
-
-
-	<complexType name="IterationNodeParent">
-		<complexContent>
-			<extension base="tav:IterationNode">
-				<choice maxOccurs="unbounded" minOccurs="0">
-					<element name="cross" type="tav:CrossProduct" />
-					<element name="dot" type="tav:DotProduct" />
-					<element name="port" type="tav:PortProduct" />
-				</choice>
-			</extension>
-		</complexContent>
-	</complexType>
-
-	<complexType name="CrossProduct">
-		<complexContent>
-			<extension base="tav:IterationNodeParent" />
-		</complexContent>
-	</complexType>
-
-	<complexType name="DotProduct">
-		<complexContent>
-			<extension base="tav:IterationNodeParent" />
-		</complexContent>
-	</complexType>
-
-
-	<complexType name="DepthPort">
-		<complexContent>
-			<extension base="tav:Port">
-				<sequence>
-					<element name="depth" type="nonNegativeInteger"></element>
-				</sequence>
-			</extension>
-		</complexContent>
-	</complexType>
-
-	<complexType name="GranularDepthPort">
-		<complexContent>
-			<extension base="tav:DepthPort">
-				<sequence>
-					<element name="granularDepth" type="nonNegativeInteger">
-					</element>
-				</sequence>
-			</extension>
-		</complexContent>
-	</complexType>
-
-
-
-	<complexType name="GranularDepthPorts">
-		<annotation>
-			<documentation>List of ports that have both depth and granular depth.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="port" type="tav:GranularDepthPort" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-
-	<complexType name="AnnotatedGranularDepthPort">
-		<complexContent>
-			<extension base="tav:GranularDepthPort">
-				<sequence>
-					<element name="annotations" type="tav:Annotations"
-						maxOccurs="1" minOccurs="0">
-						<annotation>
-							<documentation>
-								List of annotations, describing this port. For
-								instance a description could say what type of data the port
-								expects, and an example annotation could say an example value
-							</documentation>
-						</annotation>
-					</element>
-				</sequence>
-			</extension>
-		</complexContent>
-	</complexType>
-	<complexType name="AnnotatedGranularDepthPorts">
-		<annotation>
-			<documentation>List of annotated ports that have both depth and
-				granular depth.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="port" type="tav:AnnotatedGranularDepthPort"
-				maxOccurs="unbounded" minOccurs="0"></element>
-		</sequence>
-	</complexType>
-	
-	<complexType name="LastPredictedDepthPort">
-			<complexContent>
-			<extension base="tav:Port">
-				<sequence>
-					<element name="lastPredictedDepth" type="integer" minOccurs="0">
-					</element>
-				</sequence>
-			</extension>
-		</complexContent>
-	</complexType>
-
-	<complexType name="AnnotatedPort">
-		<complexContent>
-			<extension base="tav:LastPredictedDepthPort">
-				<sequence>
-					<element name="annotations" type="tav:Annotations"
-						maxOccurs="1" minOccurs="0">
-						<annotation>
-							<documentation>
-								List of annotations, describing this port. For
-								instance a description could say what type of data the port
-								expects, and an example annotation could say an example value
-							</documentation>
-						</annotation>
-					</element>
-				</sequence>
-			</extension>
-		</complexContent>
-	</complexType>
-	<complexType name="AnnotatedPorts">
-		<annotation>
-			<documentation>List of annotated ports.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="port" type="tav:AnnotatedPort" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-
-
-	<complexType name="Map">
-		<annotation>
-			<documentation>0 or more mappings.</documentation>
-		</annotation>
-		<sequence>
-			<element name="map" type="tav:Mapping" maxOccurs="unbounded"
-				minOccurs="0"></element>
-		</sequence>
-	</complexType>
-
-	<complexType name="DataLink">
-		<annotation>
-			<documentation>A link between two dataflow units, from source to
-				link.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="sink" type="tav:Link">
-				<annotation>
-					<documentation>The sink of the link - where the data will be
-						flowing to. This must be either a processor input port or a
-						dataflow output port.
-					</documentation>
-				</annotation>
-			</element>
-
-			<element name="source" type="tav:Link">
-				<annotation>
-					<documentation>The source of the link - where the data will be
-						flowing from. This must be a dataflow input port or a processor
-						output port.
-					</documentation>
-				</annotation>
-			</element>
-		</sequence>
-	</complexType>
-
-	<complexType name="Link">
-		<annotation>
-			<documentation>One end of the links in the Datalink. A link goes
-				from/to a port, either a dataflow port or a processor port. If the
-				type is "dataflow", then the "processor" element must not be
-				present, and the port defines a dataflow input (if this link is a
-				source) or output port (if this link is a sink). The must not be
-				more than one DataLink with a sink to the same dataflow output port.
-				If the type is "processor", then the "processor" element must be
-				present, and name a processor in the same dataflow. The port must
-				name a defined processor input port (if this link is a sink) or
-				processor output port (if this link is a source). There must not be
-				more than one DataLink with a sink to the same processor input port.
-				If the type is "merge", this link must be used as a source (merge
-				can't be used with a sink), and is similar to the type of
-				"processor", except that more than one link to the processor is
-				allowed. A "merge" element will be inserted in front of the defined
-				processor input port, and the incoming links will be added to the
-				merge in the order they have been defined in the dataflow.
			</documentation>
-		</annotation>
-		<sequence>
-			<element name="processor" type="tav:ProcessorName" maxOccurs="1"
-				minOccurs="0">
-				<annotation>
-					<documentation>If the type is "processor" or "merge" this element
-						must be present and describe the processor name of this link. If
-						the type is "dataflow" this element must not be present.
					</documentation>
-				</annotation>
-			</element>
-			<element name="port" type="tav:PortName">
-				<annotation>
-					<documentation>If type is "processor" or "merge" this describes a
-						processor input port (if this link is a sink) or output port (if
-						this link is a source).
-					</documentation>
-				</annotation>
-			</element>
-		</sequence>
-
-		<attribute use="required" name="type" type="tav:LinkType"></attribute>
-	</complexType>
-
-	<simpleType name="LinkType">
-		<restriction base="string">
-			<enumeration value="dataflow"></enumeration>
-			<enumeration value="processor"></enumeration>
-			<enumeration value="merge"></enumeration>
-		</restriction>
-	</simpleType>
-
-
-	<complexType name="DepthPorts">
-		<annotation>
-			<documentation>List of ports that have depths.</documentation>
-		</annotation>
-		<sequence>
-			<element name="port" type="tav:DepthPort" maxOccurs="unbounded"
-				minOccurs="0">
-			</element>
-		</sequence>
-	</complexType>
-
-	<complexType name="PortProduct">
-
-		<complexContent>
-			<extension base="tav:IterationNode">
-				<attribute use="required" name="name" type="tav:PortName"></attribute>
-				<attribute use="required" name="depth" type="nonNegativeInteger"></attribute>
-			</extension>
-		</complexContent>
-	</complexType>
-
-	<complexType name="AnnotationChain">
-		<annotation>
-			<documentation>Chain of annotations. Annotations are serialised Java
-				objects, similar to the ConfigBeans.
-			</documentation>
-		</annotation>
-		<sequence>
-			<element name="net.sf.taverna.t2.annotation.AnnotationChainImpl"
-				form="unqualified">
-				<complexType>
-					<sequence>
-						<element name="annotationAssertions" form="unqualified"
-							type="tav:AnnotationAssertionImpl">
-
-						</element>
-					</sequence>
-				</complexType>
-			</element>
-		</sequence>
-		<attribute use="required" name="encoding" type="string"></attribute>
-	</complexType>
-
-	<complexType name="AnnotationAssertionImpl">
-		<sequence>
-			<element name="net.sf.taverna.t2.annotation.AnnotationAssertionImpl"
-				form="unqualified">
-				<complexType>
-					<sequence>
-						<element name="annotationBean" form="unqualified" type="tav:AnnotationBean" />										
-						<element name="date" form="unqualified" type="tav:datetime" />
-						<element name="creators" form="unqualified" />
-						<element name="curationEventList" form="unqualified" />
-					</sequence>
-				</complexType>
-			</element>
-
-		</sequence>
-	</complexType>
-	
-	<complexType name="AnnotationBean">
-		<sequence>
-			<any minOccurs="0" maxOccurs="unbounded" processContents="lax"  />
-		</sequence>
-		<attribute name="class" form="unqualified" />
-	</complexType>
-
-	<simpleType name="datetime">
-		<annotation>
-			<documentation>ISO 8601 datetime with spaces and letter time zones; YYYY-mm-dd hh:mm:ss.nnn TTT
-			</documentation>
-		</annotation>
-		<restriction base="string">
-			<pattern value="\d{4}-\d\d-\d\d \d\d:\d\d:\d\d\.?\d* .*"></pattern>
-		</restriction>
-	</simpleType>
-
-	<simpleType name="Version1">
-		<annotation>
-			<documentation>Version of workflow element covered by this schema -
-				restricted to "1" or "1.x" - for instance "1.2" would be allowed.
-			</documentation>
-		</annotation>
-		<restriction base="string">
-			<pattern value="1(|\..*)"></pattern>
-		</restriction>
-	</simpleType>
-
-	<complexType name="Condition">
-		<annotation>
-			<documentation>A conditional link. The processor named in "target"
-				will not be invoked before the processor named in "control" has
-				finished all its iterations. (Note that the target processor will
-				also wait for any required input data before invoking).
-			</documentation>
-		</annotation>
-		<attribute use="required" name="control" type="tav:ProcessorName"></attribute>
-		<attribute use="required" name="target" type="tav:ProcessorName"></attribute>
-	</complexType>
-
-	<simpleType name="ProcessorName">
-		<annotation>
-			<documentation>Name of a processor within a dataflow. Each processor
-				in the same dataflow need a unique processor name. It is not
-				required, but recommended, to avoid 'special' characters like space,
-				", -, ', \, etc.
-			</documentation>
-		</annotation>
-		<restriction base="string"></restriction>
-	</simpleType>
-
-	<simpleType name="PortName">
-		<annotation>
-			<documentation>Name of a port, either a dataflow input/output port,
-				processor input/output port or a activity input/output port. Port
-				names must be unique for a given grouping of ports. For instance you
-				can't have two input ports on a dataflow with the same name, but you
-				can have two separate dataflows, both having an input port with the
-				same name, or an output port with the same name. In the same way a
-				processor or an activity can have an input port and an output port
-				with the same name (but they are separate ports), but not two input
-				ports or output ports with the same name. It is not required, but
-				recommended, to avoid 'special' characters like space, ", -, ', \,
-				etc.
			</documentation>
-		</annotation>
-		<restriction base="string"></restriction>
-	</simpleType>
-</schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2layers.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2layers.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2layers.xsd
deleted file mode 100644
index f66604e..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2layers.xsd
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema targetNamespace="http://taverna.sf.net/2008/xml/t2layers"
-	xmlns:layers="http://taverna.sf.net/2008/xml/t2layers" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
-	elementFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-	<xsd:complexType name="RetryConfig">
-		<xsd:annotation>
-			<xsd:documentation>Defines parameters of retries for when an
-				activity fails.
</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="backoffFactor" type="xsd:double">
-				<xsd:annotation>
-					<xsd:documentation>A multiplication factor applied to the previous
-						delay on concurrent delays. Typically this number is quite close
-						to 1.0. A value of 1.0 means to always use the same delay, while a
-						factor of 2.0 means a doubling of delay for each retry. The delay
-						will however never be larger than the specified maxDelay.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="initialDelay" type="xsd:long">
-				<xsd:annotation>
-					<xsd:documentation>
-						Initial delay in milliseconds before the first
-						retry will be performed.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="maxDelay" type="xsd:long">
-				<xsd:annotation>
-					<xsd:documentation>Maximum delay in milliseconds after
-						applying the backoffFactor.</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="maxRetries" type="xsd:nonNegativeInteger">
-				<xsd:annotation>
-					<xsd:documentation>
-						Maximum number of retries. A number of 0 means
-						no retries will be performed.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ParallelizeConfig">
-		<xsd:annotation>
-			<xsd:documentation>Defines maximum number of jobs to run
-				concurrently.</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="maxJobs" type="xsd:nonNegativeInteger"></xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="LoopConfig">
-		<xsd:annotation>
-			<xsd:documentation>Configuration of the loop layer,
-				which can call an activity again on a given condition. The outputs
-				of the activity in the processor that has this layer in it's
-				dispatch stack will be passed to a special conditional activity,
-				described by conditionXML. This conditional activity will determine
-				if the main activity is to be called again, by returning "true" or
-				"false" on it's "loop" output port. If this is the case, the
-				original job will be sent down again in the dispatch stack, possibly
-				with any modified input parameters (if other output ports from the
-				conditional activity matches the original input port names).
			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="conditionXML" type="xsd:string">
-				<xsd:annotation>
-					<xsd:documentation>
-						Activity to invoke to do the conditional
-						checking as escaped XML of the format
-						tav:Activity, typically a Beanshell script. Must
-						have an output port of depth 0 called "loop" -
-						which string value will be checked as a boolean
-						- if it is equal to "true" then the main
-						activity will be invoked again.
-
-						Additional input ports can be defined - if they
-						match any processor input ports then they will
-						receive the processor inputs. If they match any
-						processor output ports they will receive outputs
-						from last invoking the activity.
-
-						Similarly, if output ports are defined, and they
-						match the processor input port, the output from
-						the conditional will replace the original
-						processor input on the next invocation of the
-						real activity. If they match the processor
-						output they will replace the output from the
-						activity.
-        			</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="runFirst" type="xsd:boolean">
-				<xsd:annotation>
-					<xsd:documentation>If true, then the conditional activity will be
-						invoked before calling the "real" activity for the first time,
-						otherwise the real activity will always be called at least once.
-						It is generally not recommended to use runFirst=true unless the
-						conditional activity is able to produce values for all the
-						processor output ports. Also in this case one must be careful with
-						conditional activity input ports that are to be received from
-						calling the activity - they will be null on the first call.
					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="properties" type="layers:Properties">
-				<xsd:annotation>
-					<xsd:documentation>Properties saved by the UI for any
-						auto-generated conditonalXML. Note that these properties are
-						ignored when running the workflow and are only saved for the UI to
-						remember the properties used to generate the conditional activity.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-
-
-    <xsd:complexType name="Properties">
-    	<xsd:sequence>
-    		<xsd:element name="property" type="layers:Property"
-    			maxOccurs="unbounded" minOccurs="0">
-    		</xsd:element>
-    	</xsd:sequence>
-    </xsd:complexType>
-
-    <xsd:complexType name="Property">
-    	<xsd:attribute name="name" type="xsd:string" use="required"></xsd:attribute>
-    	<xsd:attribute name="value" type="xsd:string" use="required"></xsd:attribute>
-    </xsd:complexType>
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/xpathactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/xpathactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/xpathactivity.xsd
deleted file mode 100644
index 3f2a875..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/xpathactivity.xsd
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-
-	xmlns:tool="http://taverna.sf.net/2011/xml/activity/xpath" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.rest.jaxb"
-				/> </jxb:schemaBindings> -->
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-
-	<xsd:element
-		name="net.sf.taverna.t2.activities.xpath.XPathActivityConfigurationBean"
-		type="XPathConfig" substitutionGroup="tav:abstractConfigBean" />
-
-	<xsd:complexType name="XPathConfig">
-		<xsd:complexContent>
-			<xsd:extension base="tav:AbstractConfigBean">
-				<xsd:sequence>
-					<xsd:element name="xmlDocument" type="xsd:string" />
-					<xsd:element name="xpathExpression" type="xsd:string" minOccurs="0" />
-					<xsd:element name="xpathNamespaceMap" type="XPathNamespaceMap" />
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<xsd:complexType name="XPathNamespaceMap">
-		<xsd:sequence>
-                        <xsd:element name="entry" minOccurs="0" maxOccurs="unbounded">
-                                <xsd:complexType>
-					<xsd:sequence>
-						<xsd:element name="string" type="xsd:string" />
-						<xsd:element name="string" type="xsd:string" />
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/MergeParsingTest.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/MergeParsingTest.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/MergeParsingTest.java
deleted file mode 100644
index bc8298c..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/MergeParsingTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-public class MergeParsingTest {
-
-	private static final String MERGE_FUN = "/merge_fun.t2flow";
-	private static final String MERGE_THEN_DATAFLOW = "/merge_then_dataflow_link.t2flow";
-	private static final String DATAFLOW_THEN_MERGE = "/dataflow_link_then_merge.t2flow";
-	private static final String MISSING_MERGE = "/missing_merge.t2flow";
-
-	@Test
-	public void mergeFun() throws Exception {
-		URL wfResource = getClass().getResource(MERGE_FUN);
-		assertNotNull("Could not find workflow " + MERGE_FUN, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		@SuppressWarnings("unused")
-		WorkflowBundle researchObj = parser.parseT2Flow(wfResource.openStream());		
-	}
-	
-	@Test(expected=ReaderException.class)
-	public void mergeThenDataflow() throws Exception {
-		URL wfResource = getClass().getResource(MERGE_THEN_DATAFLOW);
-		assertNotNull("Could not find workflow " + MERGE_THEN_DATAFLOW, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		parser.parseT2Flow(wfResource.openStream());
-	}
-	
-	@Test(expected=ReaderException.class)
-	public void dataflowThenMerge() throws Exception {
-		URL wfResource = getClass().getResource(DATAFLOW_THEN_MERGE);
-		assertNotNull("Could not find workflow " + DATAFLOW_THEN_MERGE, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		parser.parseT2Flow(wfResource.openStream());
-	}
-	
-	@Test(expected=ReaderException.class)
-	public void missingMerge() throws Exception {
-		URL wfResource = getClass().getResource(MISSING_MERGE);
-		assertNotNull("Could not find workflow " + MISSING_MERGE, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		parser.parseT2Flow(wfResource.openStream());
-	}
-	
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsing.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsing.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsing.java
deleted file mode 100644
index 68dbf41..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsing.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-@SuppressWarnings("unused")
-public class TestActivityParsing {
-
-    private static final String WF_ALL_ACTIVITIES = "/defaultActivitiesTaverna2.2.t2flow";
-	private static final String WF_AS = "/as.t2flow";
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-    @Test
-    public void readSimpleWorkflow() throws Exception {
-        URL wfResource = getClass().getResource(WF_ALL_ACTIVITIES);
-        assertNotNull("Could not find workflow " + WF_ALL_ACTIVITIES,
-                wfResource);
-        T2FlowParser parser = new T2FlowParser();
-        parser.setValidating(true);
-        // parser.setStrict(true);
-        WorkflowBundle wfBundle = parser
-                .parseT2Flow(wfResource.openStream());
-		NamedSet<Configuration> cfgs = wfBundle.getProfiles().iterator().next()
-				.getConfigurations();
-        // System.out.println(cfgs);
-
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsingRshell.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsingRshell.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsingRshell.java
deleted file mode 100644
index 4fff401..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestActivityParsingRshell.java
+++ /dev/null
@@ -1,334 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.api.common.Scufl2Tools.PORT_DEFINITION;
-import static org.apache.taverna.scufl2.translator.t2flow.defaultactivities.RshellActivityParser.ACTIVITY_URI;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Before;
-import org.junit.Test;
-
-
-@SuppressWarnings("unused")
-public class TestActivityParsingRshell {
-
-	private static final String WF_RSHELL_2_2 = "/rshell-2-2.t2flow";
-	private static final String WF_RSHELL_2_3 = "/rshell-2-3.t2flow";
-	private static final String WF_RSHELL_SIMPLE_2_3 = "/rshell-simple-2-3.t2flow";
-
-	private static final String WF_ALL_ACTIVITIES = "/defaultActivitiesTaverna2.2.t2flow";
-	
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private static URITools uriTools = new URITools();
-	private T2FlowParser parser;
-
-	@Before
-	public void makeParser() throws JAXBException {
-		parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		
-	}
-	
-	@Test
-	public void parseRShell22WithReferences() throws Exception {
-		URL wfResource = getClass().getResource(WF_RSHELL_2_2);
-		assertNotNull("Could not find workflow " + WF_RSHELL_2_2, wfResource);
-		WorkflowBundle bundle = parser
-				.parseT2Flow(wfResource.openStream());
-		Profile profile = bundle.getMainProfile();
-		Processor proc = bundle.getMainWorkflow().getProcessors()
-				.getByName("Rshell");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-		// TODO: Check data types defined (semantic types)
-		
-	}
-	
-	/** FIXME: Update tests for JSON config
-
-	@Test
-	public void parseRShell23() throws Exception {
-		URL wfResource = getClass().getResource(WF_RSHELL_2_3);
-		assertNotNull("Could not find workflow " + WF_RSHELL_2_3, wfResource);
-		WorkflowBundle bundle = parser
-				.parseT2Flow(wfResource.openStream());
-		Profile profile = bundle.getMainProfile();
-		Processor proc = bundle.getMainWorkflow().getProcessors()
-				.getByName("Rshell");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-
-		Activity activity = (Activity) config.getConfigures();
-
-//		System.out.println(activity.getInputPorts().getNames());
-//		System.out.println(activity.getOutputPorts().getNames());
-
-		
-		assertEquals(ACTIVITY_URI.resolve("#BOOL_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("logVec"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		
-		assertEquals(ACTIVITY_URI.resolve("#R_EXP"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("regxp"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#STRING"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("str"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#STRING"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("str2"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-
-		assertEquals(ACTIVITY_URI.resolve("#INTEGER"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("int"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#INTEGER_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("intVector"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#BOOL"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("log"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#BOOL_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("logicVector"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-
-		assertEquals(ACTIVITY_URI.resolve("#DOUBLE"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("num"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#DOUBLE_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("numVector"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-
-		assertEquals(ACTIVITY_URI.resolve("#PNG_FILE"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("png"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#R_EXP"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("rexpr"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-
-		
-		assertEquals(ACTIVITY_URI.resolve("#STRING"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("str"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#STRING_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("strVector"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-
-		assertEquals(ACTIVITY_URI.resolve("#TEXT_FILE"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("txt"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		
-	}
-	
-
-
-	@Test
-	public void parseRShellAllActiv() throws Exception {
-		URL wfResource = getClass().getResource(WF_ALL_ACTIVITIES);
-		assertNotNull("Could not find workflow " + WF_ALL_ACTIVITIES, wfResource);
-		parser.setStrict(false); // Ignore other broken activities
-		WorkflowBundle bundle = parser
-				.parseT2Flow(wfResource.openStream());
-		Profile profile = bundle.getMainProfile();
-		Processor proc = bundle.getMainWorkflow().getProcessors()
-				.getByName("Rshell");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-		
-	}
-		
-	@Test
-	public void parseSimpleRShellScript() throws Exception {
-		URL wfResource = getClass().getResource(WF_RSHELL_SIMPLE_2_3);
-		assertNotNull("Could not find workflow " + WF_RSHELL_SIMPLE_2_3, wfResource);
-		WorkflowBundle bundle = parser
-				.parseT2Flow(wfResource.openStream());
-		Profile profile = bundle.getMainProfile();
-		Processor proc = bundle.getMainWorkflow().getProcessors()
-				.getByName("Rshell");
-		assertNotNull(proc);
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile);
-		assertNotNull(config);
-				
-		Activity activity = (Activity) config.getConfigures();
-		assertEquals(ACTIVITY_URI,
-				activity.getType());
-		assertEquals(ACTIVITY_URI.resolve("#Config"), config
-				.getJson().getTypeURI());
-		String script = config.getJson().getPropertyAsString(
-				ACTIVITY_URI.resolve("#script"));
-		assertEquals("too\nsimple", script);
-
-		Set<String> expectedInputs = new HashSet<String>(Arrays.asList(
-				"in1", "in2", "in3"));
-		assertEquals(expectedInputs, activity.getInputPorts().getNames());
-		InputActivityPort in1 = activity.getInputPorts().getByName("in1");
-		assertEquals(0, in1.getDepth().intValue());
-		InputActivityPort in2 = activity.getInputPorts().getByName("in2");
-		assertEquals(0, in2.getDepth().intValue());
-		InputActivityPort in3 = activity.getInputPorts().getByName("in3");
-		assertEquals(0, in3.getDepth().intValue());
-
-		Set<PropertyResource> inputDef = config.getJson()
-				.getPropertiesAsResources(
-						PORT_DEFINITION.resolve("#inputPortDefinition"));
-		assertEquals(3, inputDef.size());
-
-		Set<URI> expectedPortUris = new HashSet<URI>();
-		for (InputActivityPort inPort : activity.getInputPorts()) {
-			expectedPortUris.add(uriTools.relativeUriForBean(inPort,
-					config));
-			PropertyResource portDef = scufl2Tools.portDefinitionFor(inPort, profile);
-			assertNotNull("Could not find port definition for port " + inPort, portDef);
-		}
-		assertEquals(3, expectedPortUris.size());
-		assertEquals(3, inputDef.size());
-		
-		Map<URI, URI> dataTypes = new HashMap<URI, URI>();
-		
-		for (PropertyResource portDef : inputDef) {
-			assertEquals(PORT_DEFINITION.resolve("#InputPortDefinition"),
-					portDef.getTypeURI());
-			assertNull(portDef.getResourceURI());
-			URI portURI = portDef.getPropertyAsResourceURI(PORT_DEFINITION
-					.resolve("#definesInputPort"));
-			assertTrue("Unknown port " + portURI,
-					expectedPortUris.contains(portURI));
-			
-			URI dataType = portDef.getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType"));
-			assertEquals(ACTIVITY_URI.resolve("#samePrefix"), dataType.resolve("#samePrefix"));			
-			// For instance http://ns.taverna.org.uk/2010/activity/rshell#BOOL_LIST
-			dataTypes.put(portURI, dataType);
-			
-			
-		}
-
-
-		Set<String> expectedOutputs = new HashSet<String>(
-				Arrays.asList("out1", "out2", "out3"));
-		assertEquals(expectedOutputs, activity.getOutputPorts().getNames());
-		OutputActivityPort out1 = activity.getOutputPorts().getByName("out1");
-		assertEquals(0, out1.getDepth().intValue());
-		OutputActivityPort out2 = activity.getOutputPorts().getByName("out2");
-		assertEquals(1, out2.getDepth().intValue());
-		OutputActivityPort out3 = activity.getOutputPorts().getByName("out3");
-		assertEquals(1, out3.getDepth().intValue());
-
-		expectedPortUris.clear();
-		for (OutputActivityPort outPort : activity.getOutputPorts()) {
-	
-			expectedPortUris.add(uriTools.relativeUriForBean(outPort,
-					config));
-			PropertyResource portDef = scufl2Tools.portDefinitionFor(outPort, profile);
-			assertNotNull("Could not find port definition for port " + outPort, portDef);
-
-		}
-		
-		Set<PropertyResource> outputDef = config.getJson()
-				.getPropertiesAsResources(
-						PORT_DEFINITION.resolve("#outputPortDefinition"));
-		assertEquals(3, outputDef.size());
-		for (PropertyResource portDef : outputDef) {
-			assertEquals(PORT_DEFINITION.resolve("#OutputPortDefinition"),
-					portDef.getTypeURI());
-			assertNull(portDef.getResourceURI());
-			URI portURI = portDef.getPropertyAsResourceURI(PORT_DEFINITION
-					.resolve("#definesOutputPort"));
-			assertTrue("Unknown port " + portURI,
-					expectedPortUris.contains(portURI));
-			
-			URI dataType = portDef.getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType"));
-			assertEquals(ACTIVITY_URI.resolve("#samePrefix"), dataType.resolve("#samePrefix"));			
-			// For instance http://ns.taverna.org.uk/2010/activity/rshell#BOOL_LIST
-			dataTypes.put(portURI, dataType);
-			
-		}
-
-
-		//System.out.println(dataTypes);
-		
-		assertEquals(ACTIVITY_URI.resolve("#STRING"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("in1"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		
-		assertEquals(ACTIVITY_URI.resolve("#DOUBLE"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("in2"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#STRING"), 
-				scufl2Tools.portDefinitionFor(activity.getInputPorts().getByName("in3"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#STRING"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("out1"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#BOOL_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("out2"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		assertEquals(ACTIVITY_URI.resolve("#STRING_LIST"), 
-				scufl2Tools.portDefinitionFor(activity.getOutputPorts().getByName("out3"), profile).
-				getPropertyAsResourceURI(PORT_DEFINITION.resolve("#dataType")));
-		
-
-		PropertyResource connection = config.getJson().getPropertyAsResource(ACTIVITY_URI.resolve("#connection"));
-		assertEquals(ACTIVITY_URI.resolve("#Connection"), connection.getTypeURI());
-
-		assertEquals("localhost", connection.getPropertyAsString(ACTIVITY_URI.resolve("#hostname")));
-		
-		PropertyLiteral portLiteral = connection.getPropertyAsLiteral(ACTIVITY_URI.resolve("#port"));
-		assertEquals(6311, portLiteral.getLiteralValueAsInt());
-		assertEquals(PropertyLiteral.XSD_UNSIGNEDSHORT, portLiteral.getLiteralType());
-
-		assertEquals(false, connection.getPropertyAsLiteral(ACTIVITY_URI.resolve("#keepSessionAlive")).getLiteralValueAsBoolean());
-	}
-
-	*/
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestAnnotationParsing.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestAnnotationParsing.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestAnnotationParsing.java
deleted file mode 100644
index 2a936f3..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestAnnotationParsing.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-public class TestAnnotationParsing {
-
-	private static final String WF_T3_1226 = "/T3-1226-annotations-with-quotes.t2flow";
-
-	private static final String WF_ANNOTATION_WITH_BACKSLASH_T2FLOW = "/annotation_with_backslash.t2flow";
-
-	private static final String WF_RANDOM = "/random.t2flow";
-	
-	private static final String WF_ANNOTATED = "/annotated2.2.t2flow";
-	private static final String SEMANTIC_ANNOTATIONS = "/semantic_annotations__eclipse.t2flow";
-	
-	
-	private static URITools uriTools = new URITools();
-
-	@Test
-	public void readSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(WF_ANNOTATED);
-		assertNotNull("Could not find workflow " + WF_ANNOTATED, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		List<String> expectedRevisions = Arrays.asList(
-				"9e1f7ffd-3bf9-4ba8-9c63-03b79b1858ad",
-				"bb902d82-b0e4-46fc-bed5-950a3b38bb98");
-
-		List<String> foundRevisions = new ArrayList<String>();
-
-		Revision revision = wfBundle.getMainWorkflow().getCurrentRevision();
-		while (revision != null) {
-			URI revisionUri = revision.getIdentifier();
-			String revisionUUID = uriTools
-					.relativePath(Workflow.WORKFLOW_ROOT, revisionUri)
-					.toASCIIString().replace("/", "");
-			foundRevisions.add(revisionUUID);
-			revision = revision.getPreviousRevision();
-		}
-		assertEquals(expectedRevisions, foundRevisions);
-
-	}
-
-	@Test
-	public void readWorkflowWithEscapes() throws Exception {
-		URL wfResource = getClass().getResource(WF_ANNOTATION_WITH_BACKSLASH_T2FLOW);
-		assertNotNull("Could not find workflow " + WF_ANNOTATION_WITH_BACKSLASH_T2FLOW, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Annotation ann = wfBundle.getAnnotations().iterator().next();		
-		String annStr  = wfBundle.getResources().getResourceAsString(ann.getBody().toString());
-		System.out.println(annStr);
-		// """c:\\Program Files\\"""
-		assertTrue(annStr.contains("\"\"\"c:\\\\Program Files\\\\\"\"\""));
-	}
-	
-	@Test
-	public void readWorkflowWithQuotesInAnnotations() throws Exception {
-		URL wfResource = getClass().getResource(WF_T3_1226);
-		assertNotNull("Could not find workflow " + WF_T3_1226, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Workflow wf = wfBundle.getMainWorkflow();
-		Collection<Annotation> wfAnnotations = wf.getAnnotations();
-		assertEquals(3, wfAnnotations.size());
-		for (Annotation ann : wfAnnotations) {
-			String content = ann.getRDFContent();
-			System.out.println(content);
-			if (content.contains("dc/terms/title")) {
-				assertTrue("Single 'quote' should not be escaped", content.contains("with 'single quote'"));
-			} else if (content.contains("dc/terms/description")) {
-				assertTrue("Triple quotes inside should be escaped", content.contains("contains \\\"\\\"\\\"triple quotes\\\"\\\"\\\" inside"));
-			} else if (content.contains("elements/1.1/creator")) {
-				assertTrue("Unexpected escaping", content.contains("\"\"\"Stian Soiland-Reyes\"\"\""));
-			} else {
-				fail("Unexpected annotation content: " + content);
-			}
-		}
-		
-		
-		Collection<Annotation> portAnnotations = wf.getInputPorts().getByName("a").getAnnotations();
-		assertEquals(2, portAnnotations.size());
-		for (Annotation ann : portAnnotations) {
-			String content = ann.getRDFContent();
-			System.out.println(content);
-			if (content.contains("dc/terms/description")) {
-				assertTrue("Quote at start was not escaped", content.contains("description> \"\"\"\\\"quote at the start"));
-			} else if (content.contains("attribute/exampleData")) {
-				assertTrue("Quote at end was not escaped", content.contains("quote at the end\\\"\"\"\" ."));
-			} else {
-				fail("Unexpected annotation content: " + content);
-			}
-		}
-		
-	}
-	
-
-	@Test
-	public void readSemanticAnnotations() throws Exception {
-		URL wfResource = getClass().getResource(SEMANTIC_ANNOTATIONS);
-		assertNotNull("Could not find workflow " + SEMANTIC_ANNOTATIONS, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(false);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		assertEquals(4, wfBundle.getAnnotations().size());
-		for (Annotation x : wfBundle.getAnnotations()) {
-			System.out.println(x.getTarget());
-//			System.out.println(x.getBodyStatements().get(0));
-		}
-		File f = File.createTempFile("annotation", ".wfbundle");
-		System.err.println(f);
-		new WorkflowBundleIO().writeBundle(wfBundle, f, "application/vnd.taverna.scufl2.workflow-bundle");
-	}
-
-
-	@Test
-	public void workflowWithoutRevisions() throws Exception {
-		URL wfResource = getClass().getResource(WF_RANDOM);
-		assertNotNull("Could not find workflow " + WF_RANDOM, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		List<String> expectedRevisions = Arrays.asList(
-				"e87de19a-02c7-4106-ae81-0b8e28efb22c");
-
-		List<String> foundRevisions = new ArrayList<String>();
-
-		Revision revision = wfBundle.getMainWorkflow().getCurrentRevision();
-		while (revision != null) {
-			URI revisionUri = revision.getIdentifier();
-			String revisionUUID = uriTools
-					.relativePath(Workflow.WORKFLOW_ROOT, revisionUri)
-					.toASCIIString().replace("/", "");
-			foundRevisions.add(revisionUUID);
-			revision = revision.getPreviousRevision();
-		}
-		assertEquals(expectedRevisions, foundRevisions);
-
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestBeanshellActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestBeanshellActivityParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestBeanshellActivityParser.java
deleted file mode 100644
index 530b0ad..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestBeanshellActivityParser.java
+++ /dev/null
@@ -1,236 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BeanshellActivityParser.ACTIVITY_URI;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class TestBeanshellActivityParser {
-
-	private static final String WF_AS = "/as.t2flow";
-	private static final String WF_BEANSHELL_DEPS = "/beanshell-deps.t2flow";
-
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	@Test
-	public void parseBeanshellScript() throws Exception {
-		URL wfResource = getClass().getResource(WF_AS);
-		assertNotNull("Could not find workflow " + WF_AS, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle researchObj = parser
-				.parseT2Flow(wfResource.openStream());
-		// System.out.println(researchObj.getProfiles().iterator().next()
-		// .getConfigurations());
-		Profile profile = researchObj.getProfiles().getByName("taverna-2.1.0");
-		// Processors: [Workflow19, Echo_List, Concatenate_two_strings,
-		// Concatenate_two_strings_2, Concatenate_two_strings_3,
-		// Concatenate_two_strings_4, Create_Lots_Of_Strings, String_constant]
-		Processor concat = researchObj.getMainWorkflow().getProcessors()
-				.getByName("Concatenate_two_strings");
-
-		Configuration concatConfig = scufl2Tools
-				.configurationForActivityBoundToProcessor(concat, profile);		
-		Activity concatAct = (Activity) concatConfig.getConfigures();
-		assertEquals(ACTIVITY_URI,
-				concatAct.getType());
-
-		ObjectNode configResource = concatConfig.getJsonAsObjectNode();
-		assertEquals(ACTIVITY_URI.resolve("#Config"), concatConfig.getType());
-		
-		assertEquals("http://ns.taverna.org.uk/2010/activity/localworker/org.embl.ebi.escience.scuflworkers.java.StringConcat", 
-				configResource.get("derivedFrom").asText());
-		
-		String script = configResource.get("script").asText();
-		assertEquals("output = string1 + string2;", script);
-
-		assertFalse(configResource.has("classLoader"));
-		assertFalse(configResource.has("dependency"));
-
-		
-		Set<String> expectedInputs = new HashSet<String>(Arrays.asList(
-				"string1", "string2"));
-		assertEquals(expectedInputs, concatAct.getInputPorts().getNames());
-		InputActivityPort s1 = concatAct.getInputPorts().getByName("string1");
-		assertEquals(0, s1.getDepth().intValue());
-		InputActivityPort s2 = concatAct.getInputPorts().getByName("string2");
-		assertEquals(0, s2.getDepth().intValue());
-
-		/** TODO: Update tests
-		Set<PropertyResource> inputDef = configResource
-				.getPropertiesAsResources(
-						PORT_DEFINITION.resolve("#inputPortDefinition"));
-		assertEquals(2, inputDef.size());
-
-		Set<URI> expectedPortUris = new HashSet<URI>();
-		for (InputActivityPort inPort : concatAct.getInputPorts()) {
-			expectedPortUris.add(new URITools().relativeUriForBean(inPort,
-					concatConfig));
-		}
-		assertEquals(2, expectedPortUris.size());
-		assertEquals(2, inputDef.size());
-		for (PropertyResource portDef : inputDef) {
-			assertEquals(PORT_DEFINITION.resolve("#InputPortDefinition"),
-					portDef.getTypeURI());
-			assertNull(portDef.getResourceURI());
-			URI dataType = portDef.getPropertyAsResourceURI(PORT_DEFINITION
-					.resolve("#dataType"));
-
-			assertEquals("java", dataType.getScheme());
-			assertEquals("java.lang.String", dataType
-					.getSchemeSpecificPart());
-
-			URI portURI = portDef.getPropertyAsResourceURI(PORT_DEFINITION
-					.resolve("#definesInputPort"));
-			assertTrue("Unknown port " + portURI,
-					expectedPortUris.contains(portURI));
-			
-		}
-
-		// TODO: Is java class here OK? It's a beanshell script after all..
-
-		Set<String> expectedOutputs = new HashSet<String>(
-				Arrays.asList("output"));
-		assertEquals(expectedOutputs, concatAct.getOutputPorts().getNames());
-		OutputActivityPort out = concatAct.getOutputPorts().getByName("output");
-		assertEquals(0, out.getDepth().intValue());
-
-		Set<PropertyResource> outputDef = configResource
-				.getPropertiesAsResources(
-						PORT_DEFINITION.resolve("#outputPortDefinition"));
-		assertEquals(1, outputDef.size());
-		PropertyResource out1Def = outputDef.iterator().next();
-		assertEquals(PORT_DEFINITION.resolve("#OutputPortDefinition"),
-				out1Def.getTypeURI());
-
-		Set<URI> mimeTypes = out1Def.getPropertiesAsResourceURIs(PORT_DEFINITION
-				.resolve("#expectedMimeType"));
-		assertEquals(1, mimeTypes.size());
-
-		assertEquals(URI.create("http://purl.org/NET/mediatypes/text/plain"),
-				mimeTypes.iterator().next());
-
-		 */
-
-		Processor echoList = researchObj.getMainWorkflow().getProcessors()
-				.getByName("Echo_List");
-		Configuration echoConfig = scufl2Tools
-				.configurationForActivityBoundToProcessor(echoList, profile);
-		Activity echoAct = (Activity) echoConfig.getConfigures();
-
-		expectedInputs = new HashSet<String>(Arrays.asList("inputlist"));
-		assertEquals(expectedInputs, echoAct.getInputPorts().getNames());
-		InputActivityPort inputList = echoAct.getInputPorts().getByName(
-				"inputlist");
-		assertEquals(1, inputList.getDepth().intValue());
-		/* TODO: Update tests
-		expectedOutputs = new HashSet<String>(Arrays.asList("outputlist"));
-		assertEquals(expectedOutputs, echoAct.getOutputPorts().getNames());
-		OutputActivityPort outputList = echoAct.getOutputPorts().getByName(
-				"outputlist");
-		assertEquals(1, outputList.getDepth().intValue());
-		*/
-	}
-	
-
-	@Test
-	public void beanshellDependencies() throws Exception {
-		URL wfResource = getClass().getResource(WF_BEANSHELL_DEPS);
-		assertNotNull("Could not find workflow " + WF_BEANSHELL_DEPS, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser
-				.parseT2Flow(wfResource.openStream());
-
-		Profile profile = wfBundle.getMainProfile();
-		// Processors: [Workflow19, Echo_List, Concatenate_two_strings,
-		// Concatenate_two_strings_2, Concatenate_two_strings_3,
-		// Concatenate_two_strings_4, Create_Lots_Of_Strings, String_constant]
-		Processor a_c_workflow = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("A_C_workflow");
-		Configuration a_c_config = scufl2Tools
-				.configurationForActivityBoundToProcessor(a_c_workflow, profile);
-		assertNotNull(a_c_config);
-		Configuration c2 = a_c_workflow.getActivityConfiguration(profile);
-		assertEquals(a_c_config,c2);
-/* TODO: Update tests
-		PropertyResource a_c_configResource = a_c_config.getJson();
-		
-		assertFalse(a_c_configResource.hasProperty(ACTIVITY_URI.resolve("#derivedFrom")));
-		SortedSet<PropertyResource> deps = a_c_configResource.getPropertiesAsResources(DEPENDENCY_URI.resolve("#dependency"));
-		Set<String> jars = new HashSet<String>();
-		for (PropertyResource dep : deps) {
-			assertEquals(DEPENDENCY_URI.resolve("#LocalJarDependency"), dep.getTypeURI());
-			jars.add(dep.getPropertyAsString(DEPENDENCY_URI.resolve("#jarFile")));
-		}
-		assertEquals(new HashSet<String>(Arrays.asList("libraryA.jar", "libraryC.jar")),
-				jars);
-		assertFalse(a_c_configResource.hasProperty(DEPENDENCY_URI.resolve("#classLoader")));
-
-		
-		Processor b_system = wfBundle.getMainWorkflow().getProcessors()
-				.getByName("B_system");
-		Configuration b_config = scufl2Tools
-				.configurationForActivityBoundToProcessor(b_system, profile);		
-
-		PropertyResource b_configResource = b_config.getJson();
-		
-		deps = b_configResource.getPropertiesAsResources(DEPENDENCY_URI.resolve("#dependency"));
-		jars = new HashSet<String>();
-		for (PropertyResource dep : deps) {
-			assertEquals(DEPENDENCY_URI.resolve("#LocalJarDependency"), dep.getTypeURI());
-			jars.add(dep.getPropertyAsString(DEPENDENCY_URI.resolve("#jarFile")));
-		}
-		assertEquals(new HashSet<String>(Arrays.asList("libraryB.jar")),
-				jars);
-		assertTrue(b_configResource.hasProperty(DEPENDENCY_URI.resolve("#classLoader")));
-		assertEquals(DEPENDENCY_URI.resolve("#SystemClassLoader"), 
-				b_configResource.getPropertyAsResourceURI(DEPENDENCY_URI.resolve("#classLoader")));
-		
- */
-		
-	}
-	
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestComponentActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestComponentActivityParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestComponentActivityParser.java
deleted file mode 100644
index 25acb64..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestComponentActivityParser.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ComponentActivityParser.ACTIVITY_URI;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-import java.util.Iterator;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class TestComponentActivityParser {
-	private static final String WF_SIMPLE_COMPONENT = "/component_simple.t2flow";
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	private WorkflowBundle parseWorkflow(String wfPath) throws Exception {
-		URL wfResource = getClass().getResource(wfPath);
-		assertNotNull("could not find workflow " + wfPath, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle researchObj = parser
-				.parseT2Flow(wfResource.openStream());
-		return researchObj;
-	}
-
-	@Test
-	public void parseSimpleTell() throws Exception {
-		WorkflowBundle researchObj = parseWorkflow(WF_SIMPLE_COMPONENT);
-		Profile profile = researchObj.getMainProfile();
-		assertNotNull("could not find profile in bundle", profile);
-
-		Processor comp = researchObj.getMainWorkflow().getProcessors()
-				.getByName("combiner");
-		assertNotNull("could not find processor 'combiner'", comp);
-
-		Configuration config = scufl2Tools
-				.configurationForActivityBoundToProcessor(comp, profile);
-
-		Activity act = (Activity) config.getConfigures();
-		assertEquals(ACTIVITY_URI, act.getType());
-
-		ObjectNode resource = config.getJsonAsObjectNode();
-		assertEquals(ACTIVITY_URI.resolve("#Config"), config.getType());
-
-		int length = 0;
-		Iterator<?> i = resource.fieldNames();
-		while (i.hasNext()) {
-			i.next();
-			length++;
-		}
-		assertEquals("must be exactly 4 items in the translated component", 4,
-				length);
-
-		assertEquals("http://www.myexperiment.org", resource
-				.get("registryBase").textValue());
-		assertEquals("SCAPE Utility Components", resource.get("familyName")
-				.textValue());
-		assertEquals("MeasuresDocCombiner", resource.get("componentName")
-				.textValue());
-		assertEquals(1, resource.get("componentVersion").asInt());
-
-		assertEquals(2, comp.getInputPorts().size());
-		assertEquals(1, comp.getOutputPorts().size());
-	}
-}


[44/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/README.md
----------------------------------------------------------------------
diff --git a/taverna-robundle/README.md b/taverna-robundle/README.md
deleted file mode 100644
index d29b3c7..0000000
--- a/taverna-robundle/README.md
+++ /dev/null
@@ -1,180 +0,0 @@
-RO bundle API
-=============
-
-
-[![Build Status](https://travis-ci.org/wf4ever/robundle.svg)](https://travis-ci.org/wf4ever/robundle)
-[![DOI](https://zenodo.org/badge/doi/10.5072/zenodo.12703.png)](http://dx.doi.org/10.5072/zenodo.12703)
-
-
- 
-
-
-API for building researchobject.org RO bundles. 
-
-Complies with [RO bundle specification](https://w3id.org/bundle) version [1.0](https://w3id.org/bundle/2014-11-05/).
-
-This API is built on the Java 7 NIO Files and uses the 
-[Java 7 ZIP file provider](http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html) to generate the RO Bundle.
-
-The class 
-[org.apache.taverna.robundle.Bundles](src/main/java/org/purl/wf4ever/robundle/Bundles.java) complements the 
-Java 7 [java.nio.Files](http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html) API 
-with more specific helper methods to work with RO Bundles.
-
-This API is the basis for the [Taverna Data Bundles API](https://github.com/myGrid/databundles).
-
-
-Slides
-------
-
-[![Slides](http://image.slidesharecdn.com/2014-04-24-robundles-140424044958-phpapp01/95/slide-1-638.jpg?cb=1398333951)](http://www.slideshare.net/soilandreyes/diving-into-research-objects)
-
-[Slides 2014-04-24](https://onedrive.live.com/view.aspx?cid=37935FEEE4DF1087&resid=37935FEEE4DF1087%21679&app=PowerPoint&authkey=%21AI6c4YT_419J3zY&wdo=1)
-
-
-Usage
------
-
-If you use [Maven 3](http://maven.apache.org/), then add to your `pom.xml`:
-
-```xml
-<dependencies>
-    <dependency>
-       	<groupId>org.apache.taverna.robundle</groupId>
-        <artifactId>robundle</artifactId>
-        <version>0.5.0</version>
-    </dependency>
-</dependencies>
-<repositories>
-    <repository>
-        <id>mygrid-repository</id>
-        <name>myGrid Repository</name>
-        <url>http://www.mygrid.org.uk/maven/repository</url>
-        <releases />
-        <snapshots>
-            <enabled>false</enabled>
-        </snapshots>
-    </repository>
-</repositories>
-```
-
-To find the latest `<version>` (in case the above has not been updated), see the
-list of [robundle releases](https://github.com/wf4ever/robundle/releases). To download a precompiled
-binary JAR, see the [myGrid's Maven repository](http://www.mygrid.org.uk/maven/repository/org/purl/wf4ever/robundle/robundle/).
-
-Building
---------
-If you are building from source (this repository), then:
-
-```mvn clean install```
-
-should normally work, given a recent version of [Maven 3](http://maven.apache.org/download.cgi) and 
-[Java 7 SDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html).
-
-[myGrid's Jenkins installation](http://build.mygrid.org.uk/ci/) has automated builds of
-[robundle](http://build.mygrid.org.uk/ci/job/robundle/), which are deployed 
-to [myGrid's snapshot Maven repository](http://www.mygrid.org.uk/maven/snapshot-repository/org/purl/wf4ever/robundle/robundle/).
-
-To use a snapshot build, add this repository to `pom.xml`:
-
-```xml
-<repository>
-    <id>mygrid-snapshot-repository</id>
-    <name>myGrid Snapshot Repository</name>
-    <url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
-    <releases>
-        <enabled>false</enabled>
-    </releases>
-    <snapshots />
-</repository>
-```
-
-Then change your `<dependency>` to match the `-SNAPSHOT` version in this project's [pom.xml](pom.xml).
-
-
-Supported bundle formats
-------------------------
-
-* [RO bundle specification](https://w3id.org/bundle).
-* [Adobe UFC](https://wikidocs.adobe.com/wiki/display/PDFNAV/UCF+overview)
-* [ePub OCF](http://www.idpf.org/epub3/latest/ocf)
-* [Open Document package (ODF)](http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part3.html#__RefHeading__752807_826425813)
-* [COMBINE Archive (OMEX)](http://co.mbine.org/documents/archive)
-* [ZIP](http://www.pkware.com/documents/casestudies/APPNOTE.TXT)
-
-The `Bundles` API will load a bundle in any of the formats above, converging 
-them to a [Research Object Bundle](https://w3id.org/bundle), 
-while still maintaining the manifests of the other formats,
-if they exist within the bundle.
-
-Thus, if you open say a [COMBINE Archive](http://co.mbine.org/documents/archive) and add a couple of resources,
-indicating their mediatype using `bundle.getManifest().getAggregation(path).setMediaType("a/b")`, then 
-when closing this bundle, the API will generate both an RO Bundle manifest and a COMBINE manifest
-that reflect this.
-
-
-
-
-Example of use
---------------
-
-Example in full is at [org.apache.taverna.robundle.TestExample](src/test/java/org/purl/wf4ever/robundle/TestExample.java)
-
-```java
-		// Create a new (temporary) RO bundle
-		Bundle bundle = Bundles.createBundle();
-
-		// Get the inputs
-		Path inputs = bundle.getRoot().resolve("inputs");
-		Files.createDirectory(inputs);
-
-		// Get an input port:
-		Path in1 = inputs.resolve("in1");
-
-		// Setting a string value for the input port:
-		Bundles.setStringValue(in1, "Hello");
-
-		// And retrieving it
-		if (Bundles.isValue(in1)) {
-			System.out.println(Bundles.getStringValue(in1));
-		}
-
-		// Or just use the regular Files methods:
-		for (String line : Files.readAllLines(in1, Charset.forName("UTF-8"))) {
-			System.out.println(line);
-		}
-
-		// Binaries and large files are done through the Files API
-		try (OutputStream out = Files.newOutputStream(in1,
-				StandardOpenOption.APPEND)) {
-			out.write(32);
-		}
-		// Or Java 7 style
-		Path localFile = Files.createTempFile("", ".txt");
-		Files.copy(in1, localFile, StandardCopyOption.REPLACE_EXISTING);
-		System.out.println("Written to: " + localFile);
-
-		Files.copy(localFile, bundle.getRoot().resolve("out1"));
-
-		// Representing references
-		URI ref = URI.create("http://example.com/external.txt");
-		Path out3 = bundle.getRoot().resolve("out3");
-		System.out.println(Bundles.setReference(out3, ref));
-		if (Bundles.isReference(out3)) {
-			URI resolved = Bundles.getReference(out3);
-			System.out.println(resolved);
-		}
-
-		// Saving a bundle:
-		Path zip = Files.createTempFile("bundle", ".zip");
-		Bundles.closeAndSaveBundle(bundle, zip);
-		// NOTE: From now "bundle" and its Path's are CLOSED
-		// and can no longer be accessed
-
-		System.out.println("Saved to " + zip);
-
-		// Loading a bundle back from disk
-		try (Bundle bundle2 = Bundles.openBundle(zip)) {
-			assertEquals(zip, bundle2.getSource());
-		}
- ```

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-robundle/pom.xml b/taverna-robundle/pom.xml
deleted file mode 100644
index a1cfa7b..0000000
--- a/taverna-robundle/pom.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<packaging>bundle</packaging>
-	<parent>
-		<groupId>org.apache.taverna.language</groupId>
-		<artifactId>taverna-language</artifactId>
-		<version>0.16.1-incubating-SNAPSHOT</version>
-	</parent>
-	<artifactId>taverna-robundle</artifactId>
-	<name>Apache Taverna RO Bundle API</name>
-	<description>API for dealing with RO Bundles</description>
-	<dependencies>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-annotations</artifactId>
-			<version>${jackson.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.fasterxml.jackson.core</groupId>
-			<artifactId>jackson-databind</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.github.jsonld-java</groupId>
-			<artifactId>jsonld-java</artifactId>
-			<version>${jsonld.version}</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>commons-configuration</groupId>
-			<artifactId>commons-configuration</artifactId>
-			<version>1.9</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.jena</groupId>
-			<artifactId>jena-arq</artifactId>
-			<version>${jena.version}</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>httpclient</artifactId>
-					<groupId>org.apache.httpcomponents</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-<!--
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-impl</artifactId>
-			<version>2.2.7</version>
-		</dependency>
--->
-		<dependency>
-			<groupId>com.sun.xml.bind</groupId>
-			<artifactId>jaxb-osgi</artifactId>
-			<version>${jaxb.version}</version>
-		</dependency>
-<!-- for UUIDv5 SHA named
-		<dependency>
-			<groupId>com.fasterxml.uuid</groupId>
-			<artifactId>java-uuid-generator</artifactId>
-			<version>3.1.3</version>
-			<type>bundle</type>
-		</dependency>
--->
-	</dependencies>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.felix</groupId>
-				<artifactId>maven-bundle-plugin</artifactId>
-				<extensions>true</extensions>
-				<configuration>
-					<instructions>
-						<Embed-Dependency>*;groupId=com.github.jsonld-java</Embed-Dependency>
-						<Embed-Transitive>true</Embed-Transitive>
-					</instructions>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>jaxb2-maven-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>jaxb-xsd</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>xjc</goal>
-						</goals>
-						<configuration>
-							<!-- <packageName>oasis.names.tc.opendocument.xmlns.manifest</packageName>-->
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.rat</groupId>
-				<artifactId>apache-rat-plugin</artifactId>
-			</plugin>
-		</plugins>
-	</build>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundle.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundle.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundle.java
deleted file mode 100644
index df2d28a..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundle.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.apache.taverna.robundle;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.nio.file.Files.deleteIfExists;
-import static java.nio.file.Files.exists;
-import static java.nio.file.Files.newInputStream;
-import static org.apache.taverna.robundle.Bundles.getManifestPath;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.FileSystem;
-import java.nio.file.Path;
-
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.manifest.Manifest;
-import org.apache.taverna.robundle.manifest.RDFToManifest;
-import org.apache.taverna.robundle.manifest.combine.CombineManifest;
-import org.apache.taverna.robundle.manifest.odf.ODFManifest;
-
-public class Bundle implements Closeable {
-	private boolean deleteOnClose;
-	private Manifest manifest;
-	private final Path root;
-
-	public Bundle(Path root, boolean deleteOnClose) {
-		this.root = root;
-		this.setDeleteOnClose(deleteOnClose);
-	}
-
-	@Override
-	public void close() throws IOException {
-		close(isDeleteOnClose());
-	}
-
-	protected void close(boolean deleteOnClose) throws IOException {
-		if (!getFileSystem().isOpen())
-			return;
-
-		if (!deleteOnClose) {
-			// update manifest
-			getManifest().populateFromBundle();
-			getManifest().writeAsJsonLD();
-			if (ODFManifest.containsManifest(this))
-				getManifest().writeAsODFManifest();
-			if (CombineManifest.containsManifest(this))
-				getManifest().writeAsCombineManifest();
-		} else {
-			/*
-			 * FIXME: Enable this if closing temporary bundles is slow doing
-			 * closing (as those files are being compressed):
-			 * RecursiveDeleteVisitor.deleteRecursively(getRoot());
-			 */
-		}
-		getFileSystem().close();
-		if (deleteOnClose)
-			deleteIfExists(getSource());
-	}
-
-	public FileSystem getFileSystem() {
-		return getRoot().getFileSystem();
-	}
-
-	public Manifest getManifest() throws IOException {
-		if (manifest == null)
-			synchronized (this) {
-				if (manifest == null)
-					manifest = readOrPopulateManifest();
-			}
-		return manifest;
-	}
-
-	public Path getPath(String path) {
-		return getRoot().resolve(path);
-	}
-
-	public Path getRoot() {
-		return root;
-	}
-
-	public Path getSource() {
-		BundleFileSystem fs = (BundleFileSystem) getFileSystem();
-		return fs.getSource();
-	}
-
-	public boolean isDeleteOnClose() {
-		return deleteOnClose;
-	}
-
-	protected Manifest readOrPopulateManifest() throws IOException {
-		Manifest newManifest = new Manifest(this);
-		Path manifestPath = getManifestPath(this);
-		if (exists(manifestPath)) {
-			try (InputStream manifestStream = newInputStream(manifestPath)) {
-				new RDFToManifest().readTo(manifestStream, newManifest,
-						manifestPath.toUri());
-			}
-			// TODO: Also support reading manifest.rdf?
-		} else if (ODFManifest.containsManifest(this)) {
-			new ODFManifest(newManifest).readManifestXML();
-		} else if (CombineManifest.containsManifest(this)) {
-			new CombineManifest(newManifest).readCombineArchive();
-		} else {
-			// Fallback (might be a fresh or 3rd party bundle), populate from
-			// zip content
-			newManifest.populateFromBundle();
-		}
-		return newManifest;
-	}
-
-	public void setDeleteOnClose(boolean deleteOnClose) {
-		this.deleteOnClose = deleteOnClose;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundles.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundles.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundles.java
deleted file mode 100644
index eaf0359..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/Bundles.java
+++ /dev/null
@@ -1,401 +0,0 @@
-package org.apache.taverna.robundle;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static java.nio.file.Files.copy;
-import static java.nio.file.Files.createDirectories;
-import static java.nio.file.Files.createTempFile;
-import static java.nio.file.Files.deleteIfExists;
-import static java.nio.file.Files.exists;
-import static java.nio.file.Files.isDirectory;
-import static java.nio.file.Files.isRegularFile;
-import static java.nio.file.Files.move;
-import static java.nio.file.Files.newBufferedReader;
-import static java.nio.file.Files.newBufferedWriter;
-import static java.nio.file.Files.newDirectoryStream;
-import static java.nio.file.Files.readAllBytes;
-import static java.nio.file.Files.write;
-import static java.nio.file.StandardCopyOption.ATOMIC_MOVE;
-import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
-import static java.nio.file.StandardOpenOption.CREATE;
-import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
-import static org.apache.taverna.robundle.fs.BundleFileSystemProvider.APPLICATION_VND_WF4EVER_ROBUNDLE_ZIP;
-import static org.apache.taverna.robundle.fs.BundleFileSystemProvider.MIMETYPE_FILE;
-import static org.apache.taverna.robundle.fs.BundleFileSystemProvider.newFileSystemFromExisting;
-import static org.apache.taverna.robundle.fs.BundleFileSystemProvider.newFileSystemFromNew;
-import static org.apache.taverna.robundle.fs.BundleFileSystemProvider.newFileSystemFromTemporary;
-import static org.apache.taverna.robundle.utils.PathHelper.relativizeFromBase;
-import static org.apache.taverna.robundle.utils.TemporaryFiles.temporaryBundle;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.charset.Charset;
-import java.nio.file.AtomicMoveNotSupportedException;
-import java.nio.file.CopyOption;
-import java.nio.file.DirectoryNotEmptyException;
-import java.nio.file.DirectoryStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.text.MessageFormat;
-
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.HierarchicalINIConfiguration;
-import org.apache.taverna.robundle.fs.BundleFileSystem;
-import org.apache.taverna.robundle.utils.RecursiveCopyFileVisitor;
-import org.apache.taverna.robundle.utils.RecursiveDeleteVisitor;
-
-/**
- * Utility functions for dealing with RO bundles.
- * <p>
- * The style of using this class is similar to that of {@link Files}. In fact, a
- * RO bundle is implemented as a set of {@link Path}s.
- * 
- * @author Stian Soiland-Reyes
- */
-public class Bundles {
-	private static final String ANNOTATIONS = "annotations";
-	private static final Charset ASCII = Charset.forName("ASCII");
-	private static final String DOT_RO = ".ro";
-
-	protected static final String DOT_URL = ".url";
-
-	private static final String INI_INTERNET_SHORTCUT = "InternetShortcut";
-	private static final String INI_URL = "URL";
-	private static final Charset LATIN1 = Charset.forName("Latin1");
-	private static final String MANIFEST_JSON = "manifest.json";
-	private static final Charset UTF8 = Charset.forName("UTF-8");
-
-	public static void closeAndSaveBundle(Bundle bundle, Path destination)
-			throws IOException {
-		Path zipPath = closeBundle(bundle);
-		if (bundle.isDeleteOnClose()) {
-			safeMove(zipPath, destination);
-		} else {
-			safeCopy(zipPath, destination);
-		}
-	}
-
-	public static Path closeBundle(Bundle bundle) throws IOException {
-		Path path = bundle.getSource();
-		bundle.close(false);
-		return path;
-	}
-
-	public static void copyRecursively(final Path source,
-			final Path destination, final CopyOption... copyOptions)
-			throws IOException {
-		RecursiveCopyFileVisitor.copyRecursively(source, destination,
-				copyOptions);
-	}
-
-	public static Bundle createBundle() throws IOException {
-		BundleFileSystem fs = newFileSystemFromTemporary();
-		return new Bundle(fs.getRootDirectory(), true);
-	}
-
-	public static Bundle createBundle(Path path) throws IOException {
-		BundleFileSystem fs = newFileSystemFromNew(path);
-		return new Bundle(fs.getRootDirectory(), false);
-	}
-
-	public static void deleteRecursively(Path p) throws IOException {
-		RecursiveDeleteVisitor.deleteRecursively(p);
-	}
-
-	protected static String filenameWithoutExtension(Path entry) {
-		String fileName = entry.getFileName().toString();
-		int lastDot = fileName.lastIndexOf(".");
-		if (lastDot < 0)
-			// return fileName;
-			return fileName.replace("/", "");
-		return fileName.substring(0, lastDot);
-	}
-
-	public static Path getAnnotations(Bundle bundle) throws IOException {
-		Path dir = bundle.getFileSystem().getPath(DOT_RO, ANNOTATIONS);
-		createDirectories(dir);
-		return dir;
-	}
-
-	public static Path getManifestPath(Bundle bundle) {
-		return bundle.getRoot().resolve(DOT_RO).resolve(MANIFEST_JSON);
-	}
-
-	public static String getMimeType(Bundle bundle) throws IOException {
-		Path mimetypePath = bundle.getRoot().resolve(MIMETYPE_FILE);
-		String mimetype = getStringValue(mimetypePath);
-		if (mimetype == null || mimetype.isEmpty())
-			return APPLICATION_VND_WF4EVER_ROBUNDLE_ZIP;
-		return mimetype.trim();
-	}
-
-	public static URI getReference(Path path) throws IOException {
-		if (path == null || isMissing(path))
-			return null;
-		if (!isReference(path))
-			throw new IllegalArgumentException("Not a reference: " + path);
-		// Note: Latin1 is chosen here because it would not bail out on
-		// "strange" characters. We actually parse the URL as ASCII
-		path = withExtension(path, DOT_URL);
-		try (BufferedReader r = newBufferedReader(path, LATIN1)) {
-			HierarchicalINIConfiguration ini = new HierarchicalINIConfiguration();
-			ini.load(r);
-
-			String urlStr = ini.getSection(INI_INTERNET_SHORTCUT).getString(
-					INI_URL);
-
-			// String urlStr = ini.get(INI_INTERNET_SHORTCUT, INI_URL);
-			if (urlStr == null)
-				throw new IOException("Invalid/unsupported URL format: " + path);
-			return URI.create(urlStr);
-		} catch (ConfigurationException e) {
-			throw new IOException("Can't parse reference: " + path, e);
-		}
-	}
-
-	public static String getStringValue(Path path) throws IOException {
-		if (path == null || isMissing(path))
-			return null;
-		if (!isValue(path))
-			throw new IllegalArgumentException("Not a value: " + path);
-		return new String(readAllBytes(path), UTF8);
-	}
-
-	public static boolean isMissing(Path item) {
-		return !exists(item) && !isReference(item);
-	}
-
-	public static boolean isReference(Path path) {
-		return isRegularFile(withExtension(path, DOT_URL));
-	}
-
-	public static boolean isValue(Path path) {
-		return !isReference(path) && isRegularFile(path);
-	}
-
-	public static Bundle openBundle(InputStream in) throws IOException {
-		Path path = temporaryBundle();
-		copy(in, path);
-		Bundle bundle = openBundle(path);
-		bundle.setDeleteOnClose(true);
-		return bundle;
-	}
-
-	public static Bundle openBundle(Path zip) throws IOException {
-		BundleFileSystem fs = newFileSystemFromExisting(zip);
-		return new Bundle(fs.getRootDirectory(), false);
-	}
-
-	public static Bundle openBundle(URL url) throws IOException {
-		try {
-			if ("file".equals(url.getProtocol()))
-				return openBundle(Paths.get(url.toURI()));
-			else
-				try (InputStream in = url.openStream()) {
-					return openBundle(in);
-				}
-		} catch (URISyntaxException e) {
-			throw new IllegalArgumentException("Invalid URL " + url, e);
-		}
-	}
-
-	public static Bundle openBundleReadOnly(Path zip) throws IOException {
-		Path tmpBundle = temporaryBundle();
-		// BundleFileSystemProvider requires write-access, so we'll have to copy
-		// it
-		copy(zip, tmpBundle);
-		BundleFileSystem fs = newFileSystemFromExisting(tmpBundle);
-		// And this temporary file will be deleted afterwards
-		return new Bundle(fs.getRootDirectory(), true);
-	}
-
-	public static void safeCopy(Path source, Path destination)
-			throws IOException {
-		safeMoveOrCopy(source, destination, false);
-	}
-
-	public static void safeMove(Path source, Path destination)
-			throws IOException {
-		safeMoveOrCopy(source, destination, true);
-	}
-
-	protected static void safeMoveOrCopy(Path source, Path destination,
-			boolean move) throws IOException {
-		// First just try to do an atomic move with overwrite
-		try {
-			if (move
-					&& source.getFileSystem().provider()
-							.equals(destination.getFileSystem().provider())) {
-				move(source, destination, ATOMIC_MOVE, REPLACE_EXISTING);
-				return;
-			}
-		} catch (AtomicMoveNotSupportedException ex) {
-			// Do the fallback by temporary files below
-		}
-
-		destination = destination.toAbsolutePath();
-
-		String tmpName = destination.getFileName().toString();
-		Path tmpDestination = createTempFile(destination.getParent(), tmpName,
-				".tmp");
-		Path backup = null;
-		try {
-			if (move) {
-				/*
-				 * This might do a copy if filestores differ .. hence to avoid
-				 * an incomplete (and partially overwritten) destination, we do
-				 * it first to a temporary file
-				 */
-				move(source, tmpDestination, REPLACE_EXISTING);
-			} else {
-				copy(source, tmpDestination, REPLACE_EXISTING);
-			}
-
-			if (exists(destination)) {
-				if (isDirectory(destination))
-					// ensure it is empty
-					try (DirectoryStream<Path> ds = newDirectoryStream(destination)) {
-						if (ds.iterator().hasNext())
-							throw new DirectoryNotEmptyException(
-									destination.toString());
-					}
-				// Keep the files for roll-back in case it goes bad
-				backup = createTempFile(destination.getParent(), tmpName,
-						".orig");
-				move(destination, backup, REPLACE_EXISTING);
-			}
-			// OK ; let's swap over
-			try {
-				// prefer ATOMIC_MOVE
-				move(tmpDestination, destination, REPLACE_EXISTING, ATOMIC_MOVE);
-			} catch (AtomicMoveNotSupportedException ex) {
-				/*
-				 * possibly a network file system as src/dest should be in same
-				 * folder
-				 */
-				move(tmpDestination, destination, REPLACE_EXISTING);
-			} finally {
-				if (!exists(destination) && backup != null)
-					// Restore the backup
-					move(backup, destination);
-			}
-			// It went well, tidy up
-			if (backup != null)
-				deleteIfExists(backup);
-		} finally {
-			deleteIfExists(tmpDestination);
-		}
-	}
-
-	public static void setMimeType(Bundle bundle, String mimetype)
-			throws IOException {
-		if (!ASCII.newEncoder().canEncode(mimetype))
-			throw new IllegalArgumentException("mimetype must be ASCII, not "
-					+ mimetype);
-		if (mimetype.contains("\n") || mimetype.contains("\r"))
-			throw new IllegalArgumentException(
-					"mimetype can't contain newlines");
-		if (!mimetype.contains("/"))
-			throw new IllegalArgumentException("Invalid mimetype: " + mimetype);
-
-		Path root = bundle.getRoot();
-		Path mimetypePath = root.resolve(MIMETYPE_FILE);
-		if (!isRegularFile(mimetypePath)) {
-			/*
-			 * It would require low-level zip-modification to properly add
-			 * 'mimetype' now
-			 */
-			throw new IOException("Special file '" + MIMETYPE_FILE
-					+ "' missing from bundle, can't set mimetype");
-		}
-		setStringValue(mimetypePath, mimetype);
-	}
-
-	public static Path setReference(Path path, URI ref) throws IOException {
-		path = withExtension(path, DOT_URL);
-
-		// We'll save a IE-like .url "Internet shortcut" in INI format.
-
-		// HierarchicalINIConfiguration ini = new
-		// HierarchicalINIConfiguration();
-		// ini.getSection(INI_INTERNET_SHORTCUT).addProperty(INI_URL,
-		// ref.toASCIIString());
-
-		// Ini ini = new Wini();
-		// ini.getConfig().setLineSeparator("\r\n");
-		// ini.put(INI_INTERNET_SHORTCUT, INI_URL, ref.toASCIIString());
-
-		/*
-		 * Neither of the above create a .url that is compatible with Safari on
-		 * Mac OS (which expects "URL=" rather than "URL = ", so instead we make
-		 * it manually with MessageFormat.format:
-		 */
-
-		// Includes a terminating double line-feed -- which Safari might also
-		// need
-		String iniTmpl = "[{0}]\r\n{1}={2}\r\n\r\n";
-		String ini = MessageFormat.format(iniTmpl, INI_INTERNET_SHORTCUT,
-				INI_URL, ref.toASCIIString());
-
-		// NOTE: We use Latin1 here, but because of
-		try (BufferedWriter w = newBufferedWriter(path, ASCII,
-				TRUNCATE_EXISTING, CREATE)) {
-			// ini.save(w);
-			// ini.store(w);
-			w.write(ini);
-			// } catch (ConfigurationException e) {
-			// throw new IOException("Can't write shortcut to " + path, e);
-		}
-		return path;
-	}
-
-	public static void setStringValue(Path path, String string)
-			throws IOException {
-		write(path, string.getBytes(UTF8), TRUNCATE_EXISTING, CREATE);
-	}
-
-	public static Path uriToBundlePath(Bundle bundle, URI uri) {
-		URI rootUri = bundle.getRoot().toUri();
-		uri = relativizeFromBase(uri, rootUri);
-		if (uri.isAbsolute() || uri.getFragment() != null)
-			return null;
-		return bundle.getFileSystem().provider().getPath(rootUri.resolve(uri));
-	}
-
-	protected static Path withExtension(Path path, String extension) {
-		if (!extension.isEmpty() && !extension.startsWith("."))
-			throw new IllegalArgumentException(
-					"Extension must be empty or start with .");
-		String p = path.getFileName().toString();
-		if (!extension.isEmpty()
-				&& p.toLowerCase().endsWith(extension.toLowerCase()))
-			return path;
-		// Everything after the last . - or just the end
-		String newP = p.replaceFirst("(\\.[^.]*)?$", extension);
-		return path.resolveSibling(newP);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileStore.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileStore.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileStore.java
deleted file mode 100644
index 208f979..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileStore.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.nio.file.FileStore;
-import java.nio.file.attribute.FileAttributeView;
-import java.nio.file.attribute.FileStoreAttributeView;
-
-public class BundleFileStore extends FileStore {
-
-	// private final BundleFileSystem fs;
-	private final FileStore origFileStore;
-
-	protected BundleFileStore(BundleFileSystem fs, FileStore origFileStore) {
-		if (fs == null || origFileStore == null) {
-			throw new NullPointerException();
-		}
-		// this.fs = fs;
-		this.origFileStore = origFileStore;
-	}
-
-	@Override
-	public Object getAttribute(String attribute) throws IOException {
-		return origFileStore.getAttribute(attribute);
-	}
-
-	@Override
-	public <V extends FileStoreAttributeView> V getFileStoreAttributeView(
-			Class<V> type) {
-		return origFileStore.getFileStoreAttributeView(type);
-	}
-
-	@Override
-	public long getTotalSpace() throws IOException {
-		return origFileStore.getTotalSpace();
-	}
-
-	@Override
-	public long getUnallocatedSpace() throws IOException {
-		return origFileStore.getUnallocatedSpace();
-	}
-
-	@Override
-	public long getUsableSpace() throws IOException {
-		return origFileStore.getUsableSpace();
-	}
-
-	@Override
-	public boolean isReadOnly() {
-		return origFileStore.isReadOnly();
-	}
-
-	@Override
-	public String name() {
-		return origFileStore.name();
-	}
-
-	@Override
-	public boolean supportsFileAttributeView(
-			Class<? extends FileAttributeView> type) {
-		return origFileStore.supportsFileAttributeView(type);
-	}
-
-	@Override
-	public boolean supportsFileAttributeView(String name) {
-		return origFileStore.supportsFileAttributeView(name);
-	}
-
-	@Override
-	public String toString() {
-		return origFileStore.toString();
-	}
-
-	@Override
-	public String type() {
-		return "bundle";
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystem.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystem.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystem.java
deleted file mode 100644
index 363b8cf..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystem.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.net.URI;
-import java.nio.file.ClosedFileSystemException;
-import java.nio.file.FileStore;
-import java.nio.file.FileSystem;
-import java.nio.file.Path;
-import java.nio.file.PathMatcher;
-import java.nio.file.Paths;
-import java.nio.file.WatchService;
-import java.nio.file.attribute.UserPrincipalLookupService;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Set;
-
-public class BundleFileSystem extends FileSystem {
-
-	protected final URI baseURI;
-	private FileSystem origFS;
-	private final String separator;
-	private final Path source;
-
-	protected BundleFileSystem(FileSystem origFS, URI baseURI) {
-		if (origFS == null || baseURI == null) {
-			throw new NullPointerException();
-		}
-		this.origFS = origFS;
-		this.baseURI = baseURI;
-		this.separator = origFS.getSeparator();
-		this.source = findSource();
-
-	}
-
-	@Override
-	public void close() throws IOException {
-		if (origFS == null) {
-			return;
-		}
-		origFS.close();
-		// De-reference the original ZIP file system so it can be
-		// garbage collected
-		origFS = null;
-	}
-
-	protected Path findSource() {
-		Path zipRoot = getRootDirectory().getZipPath();
-		URI uri = zipRoot.toUri();
-		String schemeSpecific;
-		if (provider().getJarDoubleEscaping()) {
-			schemeSpecific = uri.getSchemeSpecificPart();
-		} else {
-			// http://dev.mygrid.org.uk/issues/browse/T3-954
-			schemeSpecific = uri.getRawSchemeSpecificPart();
-		}
-		if (!schemeSpecific.endsWith("!/")) { // sanity check
-			throw new IllegalStateException("Can't parse JAR URI: " + uri);
-		}
-		URI zip = URI.create(schemeSpecific.substring(0,
-				schemeSpecific.length() - 2));
-		return Paths.get(zip); // Look up our path
-	}
-
-	public URI getBaseURI() {
-		return baseURI;
-	}
-
-	protected BundleFileStore getFileStore() {
-		// We assume there's only one file store, as is true for ZipProvider
-		return new BundleFileStore(this, getOrigFS().getFileStores().iterator()
-				.next());
-	}
-
-	@Override
-	public Iterable<FileStore> getFileStores() {
-		return Collections.<FileStore> singleton(getFileStore());
-	}
-
-	/**
-	 * Thread-safe ClosedFileSystemException test
-	 * 
-	 * @return
-	 */
-	protected FileSystem getOrigFS() {
-		FileSystem orig = origFS;
-		if (orig == null || !orig.isOpen()) {
-			throw new ClosedFileSystemException();
-		}
-		return orig;
-	}
-
-	@Override
-	public Path getPath(String first, String... more) {
-		Path zipPath = getOrigFS().getPath(first, more);
-		return wrap(zipPath);
-	}
-
-	@Override
-	public PathMatcher getPathMatcher(String syntaxAndPattern) {
-		final PathMatcher zipMatcher = getOrigFS().getPathMatcher(
-				syntaxAndPattern);
-		return new PathMatcher() {
-			@Override
-			public boolean matches(Path path) {
-				return zipMatcher.matches(unwrap(path));
-			}
-		};
-	}
-
-	@Override
-	public Iterable<Path> getRootDirectories() {
-		return Collections.<Path> singleton(getRootDirectory());
-	}
-
-	public BundlePath getRootDirectory() {
-		return wrap(getOrigFS().getRootDirectories().iterator().next());
-	}
-
-	@Override
-	public String getSeparator() {
-		return separator;
-	}
-
-	public Path getSource() {
-		return source;
-	}
-
-	@Override
-	public UserPrincipalLookupService getUserPrincipalLookupService() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public boolean isOpen() {
-		if (origFS == null) {
-			return false;
-		}
-		return origFS.isOpen();
-	}
-
-	@Override
-	public boolean isReadOnly() {
-		return getOrigFS().isReadOnly();
-	}
-
-	@Override
-	public WatchService newWatchService() throws IOException {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public BundleFileSystemProvider provider() {
-		return BundleFileSystemProvider.getInstance();
-	}
-
-	@Override
-	public Set<String> supportedFileAttributeViews() {
-		if (origFS == null) {
-			throw new ClosedFileSystemException();
-		}
-		return origFS.supportedFileAttributeViews();
-	}
-
-	protected Path unwrap(Path bundlePath) {
-		if (!(bundlePath instanceof BundlePath)) {
-			// assume it's already unwrapped for some reason (for instance being
-			// null)
-			return bundlePath;
-		}
-		return ((BundlePath) bundlePath).getZipPath();
-	}
-
-	protected BundlePath wrap(Path zipPath) {
-		if (zipPath == null) {
-			return null;
-		}
-		if (zipPath instanceof BundlePath) {
-			throw new IllegalArgumentException("Did not expect BundlePath: "
-					+ zipPath);
-		}
-		return new BundlePath(this, zipPath);
-	}
-
-	protected Iterator<Path> wrapIterator(final Iterator<Path> iterator) {
-		return new Iterator<Path>() {
-			@Override
-			public boolean hasNext() {
-				return iterator.hasNext();
-			}
-
-			@Override
-			public Path next() {
-				return wrap(iterator.next());
-			}
-
-			@Override
-			public void remove() {
-				iterator.remove();
-			}
-		};
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystemProvider.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystemProvider.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystemProvider.java
deleted file mode 100644
index 807c9fd..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileSystemProvider.java
+++ /dev/null
@@ -1,695 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.ref.WeakReference;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.channels.FileLock;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.SeekableByteChannel;
-import java.nio.channels.WritableByteChannel;
-import java.nio.charset.Charset;
-import java.nio.file.AccessMode;
-import java.nio.file.CopyOption;
-import java.nio.file.DirectoryStream;
-import java.nio.file.DirectoryStream.Filter;
-import java.nio.file.FileAlreadyExistsException;
-import java.nio.file.FileStore;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystemAlreadyExistsException;
-import java.nio.file.FileSystemNotFoundException;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.LinkOption;
-import java.nio.file.NoSuchFileException;
-import java.nio.file.OpenOption;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.nio.file.attribute.FileAttribute;
-import java.nio.file.attribute.FileAttributeView;
-import java.nio.file.spi.FileSystemProvider;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.zip.CRC32;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import org.apache.taverna.robundle.utils.TemporaryFiles;
-
-public class BundleFileSystemProvider extends FileSystemProvider {
-	public class BundleFileChannel extends FileChannel {
-
-		@SuppressWarnings("unused")
-		private FileAttribute<?>[] attrs;
-		private FileChannel fc;
-		@SuppressWarnings("unused")
-		private Set<? extends OpenOption> options;
-		@SuppressWarnings("unused")
-		private Path path;
-
-		public BundleFileChannel(FileChannel fc, Path path,
-				Set<? extends OpenOption> options, FileAttribute<?>[] attrs) {
-			this.fc = fc;
-			this.path = path;
-			this.options = options;
-			this.attrs = attrs;
-		}
-
-		@Override
-		public void force(boolean metaData) throws IOException {
-			fc.force(metaData);
-		}
-
-		@Override
-		protected void implCloseChannel() throws IOException {
-			fc.close();
-			// TODO: Update manifest
-		}
-
-		@Override
-		public FileLock lock(long position, long size, boolean shared)
-				throws IOException {
-			return fc.lock(position, size, shared);
-		}
-
-		@Override
-		public MappedByteBuffer map(MapMode mode, long position, long size)
-				throws IOException {
-			return fc.map(mode, position, size);
-		}
-
-		@Override
-		public long position() throws IOException {
-			return fc.position();
-		}
-
-		@Override
-		public FileChannel position(long newPosition) throws IOException {
-			return fc.position(newPosition);
-		}
-
-		@Override
-		public int read(ByteBuffer dst) throws IOException {
-			return fc.read(dst);
-		}
-
-		@Override
-		public int read(ByteBuffer dst, long position) throws IOException {
-			return fc.read(dst, position);
-		}
-
-		@Override
-		public long read(ByteBuffer[] dsts, int offset, int length)
-				throws IOException {
-			return fc.read(dsts, offset, length);
-		}
-
-		@Override
-		public long size() throws IOException {
-			return fc.size();
-		}
-
-		@Override
-		public long transferFrom(ReadableByteChannel src, long position,
-				long count) throws IOException {
-			return fc.transferFrom(src, position, count);
-		}
-
-		@Override
-		public long transferTo(long position, long count,
-				WritableByteChannel target) throws IOException {
-			return fc.transferTo(position, count, target);
-		}
-
-		@Override
-		public FileChannel truncate(long size) throws IOException {
-			return fc.truncate(size);
-		}
-
-		@Override
-		public FileLock tryLock(long position, long size, boolean shared)
-				throws IOException {
-			return fc.tryLock(position, size, shared);
-		}
-
-		@Override
-		public int write(ByteBuffer src) throws IOException {
-			return fc.write(src);
-		}
-
-		@Override
-		public int write(ByteBuffer src, long position) throws IOException {
-			return fc.write(src, position);
-		}
-
-		@Override
-		public long write(ByteBuffer[] srcs, int offset, int length)
-				throws IOException {
-			return fc.write(srcs, offset, length);
-		}
-
-	}
-
-	private static class Singleton {
-		// Fallback for OSGi environments
-		private static final BundleFileSystemProvider INSTANCE = new BundleFileSystemProvider();
-	}
-
-	private static final String APP = "app";
-
-	public static final String APPLICATION_VND_WF4EVER_ROBUNDLE_ZIP = "application/vnd.wf4ever.robundle+zip";
-	public static final String MIMETYPE_FILE = "mimetype";
-
-	/**
-	 * The list of open file systems. This is static so that it is shared across
-	 * eventual multiple instances of this provider (such as when running in an
-	 * OSGi environment). Access to this map should be synchronized to avoid
-	 * opening a file system that is not in the map.
-	 */
-	protected static Map<URI, WeakReference<BundleFileSystem>> openFilesystems = new HashMap<>();
-
-	private static final Charset UTF8 = Charset.forName("UTF-8");
-
-	protected static void addMimeTypeToZip(ZipOutputStream out, String mimetype)
-			throws IOException {
-		if (mimetype == null) {
-			mimetype = APPLICATION_VND_WF4EVER_ROBUNDLE_ZIP;
-		}
-		// FIXME: Make the mediatype a parameter
-		byte[] bytes = mimetype.getBytes(UTF8);
-
-		// We'll have to do the mimetype file quite low-level
-		// in order to ensure it is STORED and not COMPRESSED
-
-		ZipEntry entry = new ZipEntry(MIMETYPE_FILE);
-		entry.setMethod(ZipEntry.STORED);
-		entry.setSize(bytes.length);
-		CRC32 crc = new CRC32();
-		crc.update(bytes);
-		entry.setCrc(crc.getValue());
-
-		out.putNextEntry(entry);
-		out.write(bytes);
-		out.closeEntry();
-	}
-
-	protected static void createBundleAsZip(Path bundle, String mimetype)
-			throws FileNotFoundException, IOException {
-		// Create ZIP file as
-		// http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html
-		try (ZipOutputStream out = new ZipOutputStream(Files.newOutputStream(
-				bundle, StandardOpenOption.CREATE,
-				StandardOpenOption.TRUNCATE_EXISTING))) {
-			addMimeTypeToZip(out, mimetype);
-		}
-	}
-
-	public static BundleFileSystemProvider getInstance() {
-		for (FileSystemProvider provider : FileSystemProvider
-				.installedProviders()) {
-			if (provider instanceof BundleFileSystemProvider) {
-				return (BundleFileSystemProvider) provider;
-			}
-		}
-		// Not installed!
-		// Fallback for OSGi environments
-		return Singleton.INSTANCE;
-	}
-
-	public static BundleFileSystem newFileSystemFromExisting(Path bundle)
-			throws FileNotFoundException, IOException {
-		URI w;
-		try {
-			w = new URI(APP, bundle.toUri().toASCIIString(), null);
-		} catch (URISyntaxException e) {
-			throw new IllegalArgumentException("Can't create app: URI for "
-					+ bundle);
-		}
-
-		Map<String, Object> options = new HashMap<>();
-
-		// useTempFile not needed as we override
-		// newByteChannel to use newFileChannel() - which don't
-		// consume memory
-		// options.put("useTempFile", true);
-
-		FileSystem fs = FileSystems.newFileSystem(w, options,
-				BundleFileSystemProvider.class.getClassLoader());
-		return (BundleFileSystem) fs;
-
-		// To avoid multiple instances of this provider in an OSGi environment,
-		// the above official API calls could be replaced with:
-
-		// return getInstance().newFileSystem(w, Collections.<String, Object>
-		// emptyMap());
-
-		// which would fall back to Singleton.INSTANCE if there is no provider.
-	}
-
-	public static BundleFileSystem newFileSystemFromNew(Path bundle)
-			throws FileNotFoundException, IOException {
-		return newFileSystemFromNew(bundle,
-				APPLICATION_VND_WF4EVER_ROBUNDLE_ZIP);
-	}
-
-	public static BundleFileSystem newFileSystemFromNew(Path bundle,
-			String mimetype) throws FileNotFoundException, IOException {
-		createBundleAsZip(bundle, mimetype);
-		return newFileSystemFromExisting(bundle);
-	}
-
-	public static BundleFileSystem newFileSystemFromTemporary()
-			throws IOException {
-		Path bundle = TemporaryFiles.temporaryBundle();
-		BundleFileSystem fs = BundleFileSystemProvider.newFileSystemFromNew(
-				bundle, null);
-		return fs;
-	}
-
-	private Boolean jarDoubleEscaping;
-
-	/**
-	 * Public constructor provided for FileSystemProvider.installedProviders().
-	 * Use #getInstance() instead.
-	 * 
-	 * @deprecated
-	 */
-	@Deprecated
-	public BundleFileSystemProvider() {
-	}
-
-	private boolean asBoolean(Object object, boolean defaultValue) {
-		if (object instanceof Boolean) {
-			return (Boolean) object;
-		}
-		if (object instanceof String) {
-			return Boolean.valueOf((String) object);
-		}
-		return defaultValue;
-	}
-
-	protected URI baseURIFor(URI uri) {
-		if (!(uri.getScheme().equals(APP))) {
-			throw new IllegalArgumentException("Unsupported scheme in: " + uri);
-		}
-		if (!uri.isOpaque()) {
-			return uri.resolve("/");
-		}
-		Path localPath = localPathFor(uri);
-		Path realPath;
-		try {
-			realPath = localPath.toRealPath();
-		} catch (IOException ex) {
-			realPath = localPath.toAbsolutePath();
-		}
-		// Generate a UUID from the MD5 of the URI of the real path (!)
-		UUID uuid = UUID.nameUUIDFromBytes(realPath.toUri().toASCIIString()
-				.getBytes(UTF8));
-		try {
-			return new URI(APP, uuid.toString(), "/", null);
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't create app:// URI for: "
-					+ uuid);
-		}
-	}
-
-	@Override
-	public void checkAccess(Path path, AccessMode... modes) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		origProvider(path).checkAccess(fs.unwrap(path), modes);
-	}
-
-	@Override
-	public void copy(Path source, Path target, CopyOption... options)
-			throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) source.getFileSystem();
-		origProvider(source)
-				.copy(fs.unwrap(source), fs.unwrap(target), options);
-	}
-
-	@Override
-	public void createDirectory(Path dir, FileAttribute<?>... attrs)
-			throws IOException {
-		// Workaround http://stackoverflow.com/questions/16588321/
-		if (Files.exists(dir)) {
-			throw new FileAlreadyExistsException(dir.toString());
-		}
-		BundleFileSystem fs = (BundleFileSystem) dir.getFileSystem();
-		origProvider(dir).createDirectory(fs.unwrap(dir), attrs);
-	}
-
-	@Override
-	public void delete(Path path) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		origProvider(path).delete(fs.unwrap(path));
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		return getClass() == obj.getClass();
-	}
-
-	@Override
-	public <V extends FileAttributeView> V getFileAttributeView(Path path,
-			Class<V> type, LinkOption... options) {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		if (path.toAbsolutePath().equals(fs.getRootDirectory())) {
-			// Bug in ZipFS, it will fall over as there is no entry for /
-			//
-			// Instead we'll just give a view of the source (e.g. the zipfile
-			// itself).
-			// Modifying its times is a bit futile since they are likely to be
-			// overriden when closing, but this avoids a NullPointerException
-			// in Files.setTimes().
-			return Files.getFileAttributeView(fs.getSource(), type, options);
-		}
-		return origProvider(path).getFileAttributeView(fs.unwrap(path), type,
-				options);
-	}
-
-	@Override
-	public FileStore getFileStore(Path path) throws IOException {
-		BundlePath bpath = (BundlePath) path;
-		return bpath.getFileSystem().getFileStore();
-	}
-
-	@Override
-	public BundleFileSystem getFileSystem(URI uri) {
-		synchronized (openFilesystems) {
-			URI baseURI = baseURIFor(uri);
-			WeakReference<BundleFileSystem> ref = openFilesystems.get(baseURI);
-			if (ref == null) {
-				throw new FileSystemNotFoundException(uri.toString());
-			}
-			BundleFileSystem fs = ref.get();
-			if (fs == null) {
-				openFilesystems.remove(baseURI);
-				throw new FileSystemNotFoundException(uri.toString());
-			}
-			return fs;
-		}
-	}
-
-	protected boolean getJarDoubleEscaping() {
-		if (jarDoubleEscaping != null) {
-			return jarDoubleEscaping;
-		}
-		// https://bugs.openjdk.java.net/browse/JDK-8001178 introduced an
-		// inconsistent
-		// URI syntax. Before 7u40, jar: URIs to ZipFileSystemProvided had to
-		// have
-		// double-escaped the URI for the ZIP file, after 7u40 it is only
-		// escaped once.
-		// E.g.
-		// to open before 7u40 you needed
-		// jar:file:///file%2520with%2520spaces.zip, now you need
-		// jar:file:///file%20with%20spaces.zip
-		//
-		// The new format is now consistent with URL.openStream() and
-		// URLClassLoader's traditional jar: syntax, but somehow
-		// zippath.toUri() still returns the double-escaped one, which
-		// should only affects BundleFileSystem.findSource(). To help
-		// findSource()
-		// if this new bug is later fixed, we here detect which escaping style
-		// is used.
-
-		String name = "jar test";
-		try {
-			Path tmp = Files.createTempFile(name, ".zip");
-			if (!tmp.toUri().toASCIIString().contains("jar%20test")) {
-				// Hmm.. spaces not allowed in tmp? As we don't know, we'll
-				// assume Java 7 behaviour
-				jarDoubleEscaping = false;
-				return jarDoubleEscaping;
-			}
-			createBundleAsZip(tmp, null);
-			try (FileSystem fs = FileSystems.newFileSystem(tmp, null)) {
-				URI root = fs.getRootDirectories().iterator().next().toUri();
-				if (root.toASCIIString().contains("jar%2520test")) {
-					jarDoubleEscaping = true;
-				} else {
-					jarDoubleEscaping = false;
-				}
-			}
-			Files.delete(tmp);
-		} catch (IOException e) {
-			// Unknown error.. we'll assume Java 7 behaviour
-			jarDoubleEscaping = true;
-		}
-		return jarDoubleEscaping;
-
-	}
-
-	@Override
-	public Path getPath(URI uri) {
-		BundleFileSystem fs = getFileSystem(uri);
-		Path r = fs.getRootDirectory();
-		if (uri.isOpaque()) {
-			return r;
-		} else {
-			return r.resolve(uri.getPath());
-		}
-	}
-
-	@Override
-	public String getScheme() {
-		return APP;
-	}
-
-	@Override
-	public int hashCode() {
-		return getClass().hashCode();
-	}
-
-	@Override
-	public boolean isHidden(Path path) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		return origProvider(path).isHidden(fs.unwrap(path));
-	}
-
-	@Override
-	public boolean isSameFile(Path path, Path path2) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		return origProvider(path).isSameFile(fs.unwrap(path), fs.unwrap(path2));
-	}
-
-	private Path localPathFor(URI uri) {
-		URI localUri = URI.create(uri.getSchemeSpecificPart());
-		return Paths.get(localUri);
-	}
-
-	@Override
-	public void move(Path source, Path target, CopyOption... options)
-			throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) source.getFileSystem();
-		origProvider(source)
-				.copy(fs.unwrap(source), fs.unwrap(target), options);
-	}
-
-	@Override
-	public SeekableByteChannel newByteChannel(Path path,
-			Set<? extends OpenOption> options, FileAttribute<?>... attrs)
-			throws IOException {
-		final BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		Path zipPath = fs.unwrap(path);
-		if (options.contains(StandardOpenOption.WRITE)
-				|| options.contains(StandardOpenOption.APPEND)) {
-
-			if (Files.isDirectory(zipPath)) {
-				// Workaround for ZIPFS allowing dir and folder to somewhat
-				// co-exist
-				throw new FileAlreadyExistsException("Directory <"
-						+ zipPath.toString() + "> exists");
-			}
-			Path parent = zipPath.getParent();
-
-			if (parent != null && !Files.isDirectory(parent)) {
-				throw new NoSuchFileException(zipPath.toString(),
-						parent.toString(), "Parent of file is not a directory");
-			}
-			if (options.contains(StandardOpenOption.CREATE_NEW)) {
-			} else if (options.contains(StandardOpenOption.CREATE)
-					&& !Files.exists(zipPath)) {
-				// Workaround for bug in ZIPFS in Java 7 -
-				// it only creates new files on
-				// StandardOpenOption.CREATE_NEW
-				//
-				// We'll fake it and just create file first using the legacy
-				// newByteChannel()
-				// - we can't inject CREATE_NEW option as it
-				// could be that there are two concurrent calls to CREATE
-				// the very same file,
-				// with CREATE_NEW the second thread would then fail.
-
-				EnumSet<StandardOpenOption> opts = EnumSet
-						.of(StandardOpenOption.WRITE,
-								StandardOpenOption.CREATE_NEW);
-				origProvider(path).newFileChannel(zipPath, opts, attrs).close();
-
-			}
-		}
-
-		// Implement by newFileChannel to avoid memory leaks and
-		// allow manifest to be updated
-		return newFileChannel(path, options, attrs);
-	}
-
-	@Override
-	public DirectoryStream<Path> newDirectoryStream(Path dir,
-			final Filter<? super Path> filter) throws IOException {
-		final BundleFileSystem fs = (BundleFileSystem) dir.getFileSystem();
-		final DirectoryStream<Path> stream = origProvider(dir)
-				.newDirectoryStream(fs.unwrap(dir), new Filter<Path>() {
-					@Override
-					public boolean accept(Path entry) throws IOException {
-						return filter.accept(fs.wrap(entry));
-					}
-				});
-		return new DirectoryStream<Path>() {
-			@Override
-			public void close() throws IOException {
-				stream.close();
-			}
-
-			@Override
-			public Iterator<Path> iterator() {
-				return fs.wrapIterator(stream.iterator());
-			}
-		};
-	}
-
-	@Override
-	public FileChannel newFileChannel(Path path,
-			Set<? extends OpenOption> options, FileAttribute<?>... attrs)
-			throws IOException {
-		final BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		FileChannel fc = origProvider(path).newFileChannel(fs.unwrap(path),
-				options, attrs);
-		return new BundleFileChannel(fc, path, options, attrs);
-	}
-
-	@Override
-	public FileSystem newFileSystem(Path path, Map<String, ?> env)
-			throws IOException {
-		URI uri;
-		try {
-			uri = new URI(APP, path.toUri().toASCIIString(), null);
-		} catch (URISyntaxException e) {
-			throw new IllegalArgumentException("Can't create app: URI for "
-					+ path);
-		}
-		return newFileSystem(uri, env);
-	}
-
-	@Override
-	public BundleFileSystem newFileSystem(URI uri, Map<String, ?> env)
-			throws IOException {
-
-		Path localPath = localPathFor(uri);
-		URI baseURI = baseURIFor(uri);
-
-		if (asBoolean(env.get("create"), false)) {
-			createBundleAsZip(localPath, (String) env.get("mimetype"));
-		}
-
-		BundleFileSystem fs;
-		synchronized (openFilesystems) {
-			WeakReference<BundleFileSystem> existingRef = openFilesystems
-					.get(baseURI);
-			if (existingRef != null) {
-				BundleFileSystem existing = existingRef.get();
-				if (existing != null && existing.isOpen()) {
-					throw new FileSystemAlreadyExistsException(
-							baseURI.toASCIIString());
-				}
-			}
-			FileSystem origFs = FileSystems.newFileSystem(localPath, null);
-			fs = new BundleFileSystem(origFs, baseURI);
-			openFilesystems.put(baseURI,
-					new WeakReference<BundleFileSystem>(fs));
-		}
-		return fs;
-	}
-
-	@Override
-	public InputStream newInputStream(Path path, OpenOption... options)
-			throws IOException {
-		// Avoid copying out to a file, like newByteChannel / newFileChannel
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		return origProvider(path).newInputStream(fs.unwrap(path), options);
-	}
-
-	@Override
-	public OutputStream newOutputStream(Path path, OpenOption... options)
-			throws IOException {
-		BundleFileSystem fileSystem = (BundleFileSystem) path.getFileSystem();
-		if (fileSystem.getRootDirectory().resolve(path)
-				.equals(fileSystem.getRootDirectory().resolve(MIMETYPE_FILE))) {
-			// Special case to avoid compression
-			return origProvider(path).newOutputStream(fileSystem.unwrap(path),
-					options);
-		}
-		return super.newOutputStream(path, options);
-	}
-
-	private FileSystemProvider origProvider(Path path) {
-		return ((BundlePath) path).getFileSystem().getOrigFS().provider();
-	}
-
-	@Override
-	public <A extends BasicFileAttributes> A readAttributes(Path path,
-			Class<A> type, LinkOption... options) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		return origProvider(path)
-				.readAttributes(fs.unwrap(path), type, options);
-	}
-
-	@Override
-	public Map<String, Object> readAttributes(Path path, String attributes,
-			LinkOption... options) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		return origProvider(path).readAttributes(fs.unwrap(path), attributes,
-				options);
-	}
-
-	@Override
-	public void setAttribute(Path path, String attribute, Object value,
-			LinkOption... options) throws IOException {
-		BundleFileSystem fs = (BundleFileSystem) path.getFileSystem();
-		origProvider(path).setAttribute(fs.unwrap(path), attribute, value,
-				options);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileTypeDetector.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileTypeDetector.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileTypeDetector.java
deleted file mode 100644
index 03f8272..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundleFileTypeDetector.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.channels.SeekableByteChannel;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardOpenOption;
-import java.nio.file.spi.FileTypeDetector;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipError;
-import java.util.zip.ZipException;
-import java.util.zip.ZipInputStream;
-
-public class BundleFileTypeDetector extends FileTypeDetector {
-
-	private static final String APPLICATION_ZIP = "application/zip";
-	private static final Charset ASCII = Charset.forName("ASCII");
-	private static final Charset LATIN1 = Charset.forName("ISO-8859-1");
-	private static final String MIMETYPE = "mimetype";
-
-	@Override
-	public String probeContentType(Path path) throws IOException {
-
-		ByteBuffer buf = ByteBuffer.allocate(256);
-		try (SeekableByteChannel byteChannel = Files.newByteChannel(path,
-				StandardOpenOption.READ)) {
-			int read = byteChannel.read(buf);
-			if (read < 38) {
-				return null;
-			}
-			;
-		}
-		buf.flip();
-
-		// Look for PK
-
-		byte[] firstBytes = buf.array();
-		String pk = new String(firstBytes, 0, 2, LATIN1);
-		if (!(pk.equals("PK") && firstBytes[2] == 3 && firstBytes[3] == 4)) {
-			// Did not match magic numbers of ZIP as specified in ePub OCF
-			// http://www.idpf.org/epub/30/spec/epub30-ocf.html#app-media-type
-			return null;
-		}
-
-		String mimetype = new String(firstBytes, 30, 8, LATIN1);
-		if (!mimetype.equals(MIMETYPE)) {
-			return APPLICATION_ZIP;
-		}
-		// Read the 'mimetype' file.
-		try (ZipInputStream is = new ZipInputStream(new ByteArrayInputStream(
-				firstBytes))) {
-			ZipEntry entry = is.getNextEntry();
-			if (!MIMETYPE.equals(entry.getName())) {
-				return APPLICATION_ZIP;
-			}
-			byte[] mediaTypeBuffer = new byte[256];
-			int size = is.read(mediaTypeBuffer);
-			if (size < 1) {
-				return APPLICATION_ZIP;
-			}
-			return new String(mediaTypeBuffer, 0, size, ASCII);
-		} catch (ZipException | ZipError e) {
-			return null;
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundlePath.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundlePath.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundlePath.java
deleted file mode 100644
index 93da6c0..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/fs/BundlePath.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package org.apache.taverna.robundle.fs;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.LinkOption;
-import java.nio.file.Path;
-import java.nio.file.WatchEvent.Kind;
-import java.nio.file.WatchEvent.Modifier;
-import java.nio.file.WatchKey;
-import java.nio.file.WatchService;
-import java.util.Iterator;
-
-public class BundlePath implements Path {
-
-	private final BundleFileSystem fs;
-
-	private final Path zipPath;
-
-	protected BundlePath(BundleFileSystem fs, Path zipPath) {
-		if (fs == null || zipPath == null) {
-			throw new NullPointerException();
-		}
-		this.fs = fs;
-		this.zipPath = zipPath;
-	}
-
-	@Override
-	public int compareTo(Path other) {
-		return zipPath.compareTo(fs.unwrap(other));
-	}
-
-	@Override
-	public boolean endsWith(Path other) {
-		return zipPath.endsWith(fs.unwrap(other));
-	}
-
-	@Override
-	public boolean endsWith(String other) {
-		return zipPath.endsWith(other);
-	}
-
-	@Override
-	public boolean equals(Object other) {
-		if (!(other instanceof BundlePath)) {
-			return false;
-		}
-		BundlePath bundlePath = (BundlePath) other;
-		return zipPath.equals(fs.unwrap(bundlePath));
-	}
-
-	@Override
-	public BundlePath getFileName() {
-		return fs.wrap(zipPath.getFileName());
-	}
-
-	@Override
-	public BundleFileSystem getFileSystem() {
-		return fs;
-	}
-
-	@Override
-	public BundlePath getName(int index) {
-		return fs.wrap(zipPath.getName(index));
-	}
-
-	@Override
-	public int getNameCount() {
-		return zipPath.getNameCount();
-	}
-
-	@Override
-	public BundlePath getParent() {
-		return fs.wrap(zipPath.getParent());
-	}
-
-	@Override
-	public BundlePath getRoot() {
-		return fs.wrap(zipPath.getRoot());
-	}
-
-	protected Path getZipPath() {
-		return zipPath;
-	}
-
-	@Override
-	public int hashCode() {
-		return zipPath.hashCode();
-	}
-
-	@Override
-	public boolean isAbsolute() {
-		return zipPath.isAbsolute();
-	}
-
-	@Override
-	public Iterator<Path> iterator() {
-		return fs.wrapIterator(zipPath.iterator());
-	}
-
-	@Override
-	public BundlePath normalize() {
-		return fs.wrap(zipPath.normalize());
-	}
-
-	@Override
-	public WatchKey register(WatchService watcher, Kind<?>... events)
-			throws IOException {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public WatchKey register(WatchService watcher, Kind<?>[] events,
-			Modifier... modifiers) throws IOException {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public BundlePath relativize(Path other) {
-		return fs.wrap(zipPath.relativize(fs.unwrap(other)));
-	}
-
-	@Override
-	public BundlePath resolve(Path other) {
-		return fs.wrap(zipPath.resolve(fs.unwrap(other)));
-	}
-
-	@Override
-	public BundlePath resolve(String other) {
-		return fs.wrap(zipPath.resolve(other));
-	}
-
-	@Override
-	public BundlePath resolveSibling(Path other) {
-		return fs.wrap(zipPath.resolveSibling(fs.unwrap(other)));
-	}
-
-	@Override
-	public BundlePath resolveSibling(String other) {
-		return fs.wrap(zipPath.resolveSibling(other));
-	}
-
-	@Override
-	public boolean startsWith(Path other) {
-		return zipPath.startsWith(fs.unwrap(other));
-	}
-
-	@Override
-	public boolean startsWith(String other) {
-		return zipPath.startsWith(other);
-	}
-
-	@Override
-	public BundlePath subpath(int beginIndex, int endIndex) {
-		return fs.wrap(zipPath.subpath(beginIndex, endIndex));
-	}
-
-	@Override
-	public BundlePath toAbsolutePath() {
-		return fs.wrap(zipPath.toAbsolutePath());
-	}
-
-	@Override
-	public File toFile() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public BundlePath toRealPath(LinkOption... options) throws IOException {
-		return fs.wrap(zipPath.toRealPath(options));
-	}
-
-	/**
-	 * Note: This method is used by JSON serialization and should return a valid
-	 * relative path from .ro/ or /
-	 */
-	@Override
-	public String toString() {
-		if (zipPath.isAbsolute() && zipPath.startsWith("/.ro/")) {
-			Path base = fs.getRootDirectory().zipPath.resolve(".ro");
-			return base.relativize(zipPath).toString();
-		} else {
-			return zipPath.toString();
-		}
-	}
-
-	@Override
-	public URI toUri() {
-		Path abs = zipPath.toAbsolutePath();
-		URI pathRel;
-		try {
-			pathRel = new URI(null, null, abs.toString(), null);
-		} catch (URISyntaxException e) {
-			throw new IllegalStateException("Can't create URL for " + zipPath,
-					e);
-		}
-		return fs.getBaseURI().resolve(pathRel);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Agent.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Agent.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Agent.java
deleted file mode 100644
index 17a7c42..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Agent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonPropertyOrder(value = { "uri", "orcid", "name" })
-public class Agent {
-	private String name;
-	private URI orcid;
-	private URI uri;
-
-	public Agent() {
-	}
-
-	public Agent(String name) {
-		setName(name);
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public URI getOrcid() {
-		return orcid;
-	}
-
-	public URI getUri() {
-		return uri;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public void setOrcid(URI orcid) {
-		this.orcid = orcid;
-	}
-
-	public void setUri(URI uri) {
-		this.uri = uri;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Manifest.java
----------------------------------------------------------------------
diff --git a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Manifest.java b/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Manifest.java
deleted file mode 100644
index e8a6394..0000000
--- a/taverna-robundle/src/main/java/org/apache/taverna/robundle/manifest/Manifest.java
+++ /dev/null
@@ -1,450 +0,0 @@
-package org.apache.taverna.robundle.manifest;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import static com.fasterxml.jackson.databind.SerializationFeature.FAIL_ON_EMPTY_BEANS;
-import static com.fasterxml.jackson.databind.SerializationFeature.INDENT_OUTPUT;
-import static com.fasterxml.jackson.databind.SerializationFeature.WRITE_EMPTY_JSON_ARRAYS;
-import static com.fasterxml.jackson.databind.SerializationFeature.WRITE_NULL_MAP_VALUES;
-import static java.nio.file.FileVisitResult.CONTINUE;
-import static java.nio.file.FileVisitResult.SKIP_SUBTREE;
-import static java.nio.file.Files.createDirectories;
-import static java.nio.file.Files.getLastModifiedTime;
-import static java.nio.file.Files.isDirectory;
-import static java.nio.file.Files.newBufferedWriter;
-import static java.nio.file.Files.walkFileTree;
-import static java.nio.file.StandardOpenOption.CREATE;
-import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
-import static java.nio.file.StandardOpenOption.WRITE;
-import static java.nio.file.attribute.FileTime.fromMillis;
-import static org.apache.taverna.robundle.Bundles.uriToBundlePath;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Path;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.nio.file.attribute.FileTime;
-import java.util.ArrayList;
-import java.util.GregorianCalendar;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.logging.Logger;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.robundle.manifest.combine.CombineManifest;
-import org.apache.taverna.robundle.manifest.odf.ODFManifest;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-@JsonPropertyOrder(value = { "@context", "id", "manifest", "createdOn",
-		"createdBy", "createdOn", "authoredOn", "authoredBy", "history",
-		"aggregates", "annotations", "@graph" })
-public class Manifest {
-	public abstract class FileTimeMixin {
-		@Override
-		@JsonValue
-		public abstract String toString();
-	}
-
-	public abstract class PathMixin {
-		@Override
-		@JsonValue
-		public abstract String toString();
-	}
-
-	private static Logger logger = Logger.getLogger(Manifest.class
-			.getCanonicalName());
-
-	private static final String MANIFEST_JSON = "manifest.json";
-
-	private static final String META_INF = "/META-INF";
-
-	private static final String MIMETYPE = "/mimetype";
-	private static final String RO = "/.ro";
-	private static URI ROOT = URI.create("/");
-
-	public static FileTime now() {
-		return fromMillis(new GregorianCalendar().getTimeInMillis());
-	}
-
-	protected static Path withSlash(Path dir) {
-		if (dir == null)
-			return null;
-		if (isDirectory(dir)) {
-			Path fname = dir.getFileName();
-			if (fname == null)
-				return dir;
-			String fnameStr = fname.toString();
-			if (fnameStr.endsWith("/"))
-				return dir;
-			return dir.resolveSibling(fnameStr + "/");
-		}
-		return dir;
-	}
-
-	private Map<URI, PathMetadata> aggregates = new LinkedHashMap<>();
-	private List<PathAnnotation> annotations = new ArrayList<>();
-	private List<Agent> authoredBy = new ArrayList<>();
-	private FileTime authoredOn;
-	private Bundle bundle;
-	private Agent createdBy = null;
-	private FileTime createdOn = now();
-	private List<String> graph;
-	private List<Path> history = new ArrayList<>();
-	private URI id = URI.create("/");
-	private List<Path> manifest = new ArrayList<>();
-
-	public Manifest(Bundle bundle) {
-		this.bundle = bundle;
-	}
-
-	public List<PathMetadata> getAggregates() {
-		return new ArrayList<>(aggregates.values());
-	}
-
-	public PathMetadata getAggregation(Path file) {
-		URI fileUri = file.toUri();
-		return getAggregation(fileUri);
-	}
-
-	public PathMetadata getAggregation(URI uri) {
-		uri = relativeToBundleRoot(uri);
-		PathMetadata metadata = aggregates.get(uri);
-		if (metadata == null) {
-			metadata = new PathMetadata();
-			if (!uri.isAbsolute() && uri.getFragment() == null) {
-				Path path = uriToBundlePath(bundle, uri);
-				metadata.setFile(path);
-				metadata.setMediatype(guessMediaType(path));
-			} else {
-				metadata.setUri(uri);
-			}
-			aggregates.put(uri, metadata);
-		}
-		return metadata;
-	}
-
-	public List<PathAnnotation> getAnnotations() {
-		return annotations;
-	}
-
-	public List<Agent> getAuthoredBy() {
-		return authoredBy;
-	}
-
-	public FileTime getAuthoredOn() {
-		return authoredOn;
-	}
-
-	@JsonIgnore
-	public URI getBaseURI() {
-		return getBundle().getRoot().toUri();
-	}
-
-	@JsonIgnore
-	public Bundle getBundle() {
-		return bundle;
-	}
-
-	@JsonProperty(value = "@context")
-	public List<Object> getContext() {
-		ArrayList<Object> context = new ArrayList<>();
-		// HashMap<Object, Object> map = new HashMap<>();
-		// map.put("@base", getBaseURI());
-		// context.add(map);
-		context.add(URI.create("https://w3id.org/bundle/context"));
-		return context;
-	}
-
-	public Agent getCreatedBy() {
-		return createdBy;
-	}
-
-	public FileTime getCreatedOn() {
-		return createdOn;
-	}
-
-	public List<String> getGraph() {
-		return graph;
-	}
-
-	public List<Path> getHistory() {
-		return history;
-	}
-
-	public URI getId() {
-		return id;
-	}
-
-	public List<Path> getManifest() {
-		return manifest;
-	}
-
-	/**
-	 * Guess media type based on extension
-	 * 
-	 * @see http://wf4ever.github.io/ro/bundle/#media-types
-	 * 
-	 * @param file
-	 *            A Path to a file
-	 * @return media-type, e.g. <code>application/xml</code> or
-	 *         <code>text/plain; charset="utf-8"</code>
-	 */
-	public String guessMediaType(Path file) {
-		if (file.getFileName() == null)
-			return null;
-		String filename = file.getFileName().toString()
-				.toLowerCase(Locale.ENGLISH);
-		if (filename.endsWith(".txt"))
-			return "text/plain; charset=\"utf-8\"";
-		if (filename.endsWith(".ttl"))
-			return "text/turtle; charset=\"utf-8\"";
-		if (filename.endsWith(".rdf") || filename.endsWith(".owl"))
-			return "application/rdf+xml";
-		if (filename.endsWith(".json"))
-			return "application/json";
-		if (filename.endsWith(".jsonld"))
-			return "application/ld+json";
-		if (filename.endsWith(".xml"))
-			return "application/xml";
-
-		// A few extra, common ones
-
-		if (filename.endsWith(".png"))
-			return "image/png";
-		if (filename.endsWith(".svg"))
-			return "image/svg+xml";
-		if (filename.endsWith(".jpg") || filename.endsWith(".jpeg"))
-			return "image/jpeg";
-		if (filename.endsWith(".pdf"))
-			return "application/pdf";
-		return "application/octet-stream";
-	}
-
-	public void populateFromBundle() throws IOException {
-		final Set<Path> potentiallyEmptyFolders = new LinkedHashSet<>();
-
-		final Set<URI> existingAggregationsToPrune = new HashSet<>(
-				aggregates.keySet());
-
-		walkFileTree(bundle.getRoot(), new SimpleFileVisitor<Path>() {
-			@SuppressWarnings("deprecation")
-			@Override
-			public FileVisitResult postVisitDirectory(Path dir, IOException exc)
-					throws IOException {
-				super.postVisitDirectory(dir, exc);
-				if (potentiallyEmptyFolders.remove(dir)) {
-					URI uri = relativeToBundleRoot(dir.toUri());
-					existingAggregationsToPrune.remove(uri);
-					PathMetadata metadata = aggregates.get(uri);
-					if (metadata == null) {
-						metadata = new PathMetadata();
-						aggregates.put(uri, metadata);
-					}
-					metadata.setFile(withSlash(dir));
-					metadata.setFolder(withSlash(dir.getParent()));
-					metadata.setProxy();
-					metadata.setCreatedOn(getLastModifiedTime(dir));
-					potentiallyEmptyFolders.remove(withSlash(dir.getParent()));
-					return CONTINUE;
-				}
-				return CONTINUE;
-			}
-
-			@Override
-			public FileVisitResult preVisitDirectory(Path dir,
-					BasicFileAttributes attrs) throws IOException {
-				if (dir.startsWith(RO) || dir.startsWith(META_INF))
-					return SKIP_SUBTREE;
-				potentiallyEmptyFolders.add(withSlash(dir));
-				potentiallyEmptyFolders.remove(withSlash(dir.getParent()));
-				return CONTINUE;
-			}
-
-			@SuppressWarnings("deprecation")
-			@Override
-			public FileVisitResult visitFile(Path file,
-					BasicFileAttributes attrs) throws IOException {
-				potentiallyEmptyFolders.remove(withSlash(file.getParent()));
-				if (file.startsWith(MIMETYPE))
-					return CONTINUE;
-				if (manifest.contains(file))
-					// Don't aggregate the manifests
-					return CONTINUE;
-
-				// super.visitFile(file, attrs);
-				URI uri = relativeToBundleRoot(file.toUri());
-				existingAggregationsToPrune.remove(uri);
-				PathMetadata metadata = aggregates.get(uri);
-				if (metadata == null) {
-					metadata = new PathMetadata();
-					aggregates.put(uri, metadata);
-				}
-				metadata.setFile(file);
-				if (metadata.getMediatype() == null)
-					// Don't override if already set
-					metadata.setMediatype(guessMediaType(file));
-				metadata.setFolder(withSlash(file.getParent()));
-				metadata.setProxy();
-				metadata.setCreatedOn(getLastModifiedTime(file));
-				potentiallyEmptyFolders.remove(file.getParent());
-				return CONTINUE;
-			}
-		});
-		for (URI preExisting : existingAggregationsToPrune) {
-			PathMetadata meta = aggregates.get(preExisting);
-			if (meta.getFile() != null)
-				/*
-				 * Don't remove 'virtual' resources, only aggregations that went
-				 * to files
-				 */
-				aggregates.remove(preExisting);
-		}
-	}
-
-	public URI relativeToBundleRoot(URI uri) {
-		uri = ROOT.resolve(bundle.getRoot().toUri().relativize(uri));
-		return uri;
-	}
-
-	@SuppressWarnings("deprecation")
-	public void setAggregates(List<PathMetadata> aggregates) {
-		this.aggregates.clear();
-
-		for (PathMetadata meta : aggregates) {
-			URI uri = null;
-			if (meta.getFile() != null) {
-				uri = relativeToBundleRoot(meta.getFile().toUri());
-			} else if (meta.getUri() != null) {
-				uri = relativeToBundleRoot(meta.getUri());
-			} else {
-				uri = relativeToBundleRoot(meta.getProxy());
-			}
-			if (uri == null) {
-				logger.warning("Unknown URI for aggregation " + meta);
-				continue;
-			}
-			this.aggregates.put(uri, meta);
-		}
-	}
-
-	public void setAnnotations(List<PathAnnotation> annotations) {
-		this.annotations = annotations;
-	}
-
-	public void setAuthoredBy(List<Agent> authoredBy) {
-		if (authoredBy == null)
-			throw new NullPointerException("authoredBy can't be null");
-		this.authoredBy = authoredBy;
-	}
-
-	public void setAuthoredOn(FileTime authoredOn) {
-		this.authoredOn = authoredOn;
-	}
-
-	public void setBundle(Bundle bundle) {
-		this.bundle = bundle;
-	}
-
-	public void setCreatedBy(Agent createdBy) {
-		this.createdBy = createdBy;
-	}
-
-	public void setCreatedOn(FileTime createdOn) {
-		this.createdOn = createdOn;
-	}
-
-	public void setGraph(List<String> graph) {
-		this.graph = graph;
-	}
-
-	public void setHistory(List<Path> history) {
-		if (history == null)
-			throw new NullPointerException("history can't be null");
-		this.history = history;
-	}
-
-	public void setId(URI id) {
-		this.id = id;
-	}
-
-	public void setManifest(List<Path> manifest) {
-		this.manifest = manifest;
-	}
-
-	public void writeAsCombineManifest() throws IOException {
-		new CombineManifest(this).createManifestXML();
-	}
-
-	/**
-	 * Write as an RO Bundle JSON-LD manifest
-	 * 
-	 * @return The path of the written manifest (e.g. ".ro/manifest.json")
-	 * @throws IOException
-	 */
-	public Path writeAsJsonLD() throws IOException {
-		Path jsonld = bundle.getFileSystem().getPath(RO, MANIFEST_JSON);
-		createDirectories(jsonld.getParent());
-		// Files.createFile(jsonld);
-		if (!getManifest().contains(jsonld))
-			getManifest().add(0, jsonld);
-		ObjectMapper om = new ObjectMapper();
-		om.addMixInAnnotations(Path.class, PathMixin.class);
-		om.addMixInAnnotations(FileTime.class, FileTimeMixin.class);
-		om.enable(INDENT_OUTPUT);
-		om.disable(WRITE_EMPTY_JSON_ARRAYS);
-		om.disable(FAIL_ON_EMPTY_BEANS);
-		om.disable(WRITE_NULL_MAP_VALUES);
-
-		om.setSerializationInclusion(Include.NON_NULL);
-		try (Writer w = newBufferedWriter(jsonld, Charset.forName("UTF-8"),
-				WRITE, TRUNCATE_EXISTING, CREATE)) {
-			om.writeValue(w, this);
-		}
-		return jsonld;
-	}
-
-	/**
-	 * Write as a ODF manifest.xml
-	 * 
-	 * @see http
-	 *      ://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part3.
-	 *      html#__RefHeading__752807_826425813
-	 * @return The path of the written manifest (e.g. "META-INF/manifest.xml")
-	 * @throws IOException
-	 */
-	public Path writeAsODFManifest() throws IOException {
-		return new ODFManifest(this).createManifestXML();
-	}
-}


[23/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ProfileParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ProfileParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ProfileParser.java
deleted file mode 100644
index 1c22929..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/ProfileParser.java
+++ /dev/null
@@ -1,356 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Iterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Configurable;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.Configuration;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding.InputPortBinding;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding.OutputPortBinding;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Profile;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProfileDocument;
-
-public class ProfileParser extends AbstractParser {
-    private static Logger logger = Logger.getLogger(ProfileParser.class
-            .getCanonicalName());
-    
-	public ProfileParser() {
-		super();
-	}
-
-	public ProfileParser(ThreadLocal<ParserState> parserState) {
-		super(parserState);
-	}
-
-	@SuppressWarnings("unused")
-	private Element getChildElement(Element element) {
-		for (Node node : nodeIterable(element.getChildNodes()))
-			if (node instanceof Element)
-				return (Element) node;
-		return null;
-	}
-
-	private Iterable<Node> nodeIterable(final NodeList childNodes) {
-		return new Iterable<Node>() {
-			@Override
-			public Iterator<Node> iterator() {
-				return new Iterator<Node>() {
-					int position = 0;
-
-					@Override
-					public boolean hasNext() {
-						return childNodes.getLength() > position;
-					}
-
-					@Override
-					public Node next() {
-						return childNodes.item(position++);
-					}
-
-					@Override
-					public void remove() {
-						Node node = childNodes.item(position);
-						node.getParentNode().removeChild(node);
-					}
-				};
-			}
-		};
-	}
-
-	protected void parseActivity(
-			org.apache.taverna.scufl2.rdfxml.jaxb.Activity original) {
-		Activity activity = new Activity();
-
-		getParserState().push(activity);
-		try {
-			mapBean(original.getAbout(), activity);
-			if (original.getName() != null)
-				activity.setName(original.getName());
-			activity.setParent(getParserState().getCurrent(
-					org.apache.taverna.scufl2.api.profiles.Profile.class));
-			if (original.getType() != null)
-				activity.setType(resolve(original.getType().getResource()));
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.Activity.InputActivityPort inputActivityPort : original
-					.getInputActivityPort())
-				parseInputActivityPort(inputActivityPort.getInputActivityPort());
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.Activity.OutputActivityPort outputActivityPort : original
-					.getOutputActivityPort())
-				parseOutputActivityPort(outputActivityPort
-						.getOutputActivityPort());
-		} finally {
-			getParserState().pop();
-		}
-	}
-
-   private static final URI INTERNAL_DISPATCH_PREFIX = URI.create("http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/");
-
-	protected void parseConfiguration(Configuration original)
-			throws ReaderException {
-		org.apache.taverna.scufl2.api.configurations.Configuration config = new org.apache.taverna.scufl2.api.configurations.Configuration();
-
-		boolean ignoreConfig = false;
-		
-		if (original.getType() != null) {
-			URI type = resolve(original.getType().getResource());
-			if (! INTERNAL_DISPATCH_PREFIX.relativize(type).isAbsolute()) {
-                logger.fine("Ignoring unsupported Dispatch stack configuration (SCUFL2-130)");
-                logger.finest(original.getAbout());
-                ignoreConfig = true;
-			}
-            config.setType(type);
-		}
-
-		if (original.getName() != null)
-			config.setName(original.getName());
-
-		if (!ignoreConfig) {
-			mapBean(original.getAbout(), config);
-
-			if (original.getConfigure() != null) {
-				Configurable configurable = resolveBeanUri(original
-						.getConfigure().getResource(), Configurable.class);
-				config.setConfigures(configurable);
-			}
-			config.setParent(getParserState().getCurrent(
-					org.apache.taverna.scufl2.api.profiles.Profile.class));
-		}
-
-		getParserState().push(config);
-
-		if (original.getSeeAlso() != null) {
-			String about = original.getSeeAlso().getResource();
-    		if (about != null) {
-    		    URI resource = resolve(about);
-    		    URI bundleBase = parserState .get().getLocation();
-    		    URI path = uriTools.relativePath(bundleBase, resource);    		    
-    		    if (ignoreConfig) {
-    		        logger.finest("Deleting " + path + " (SCUFL2-130)");
-    		        parserState.get().getUcfPackage().removeResource(path.getRawPath());
-    		    } else {
-        		    try {
-        		        // TODO: Should the path in the UCF Package be %-escaped or not?
-        		        // See TestRDFXMLWriter.awkwardFilenames
-                        config.setJson(parserState.get().getUcfPackage().getResourceAsString(path.getRawPath()));
-                    } catch (IllegalArgumentException e) {
-                        logger.log(Level.WARNING, "Could not parse JSON configuration " + path, e);
-        		    } catch (IOException e) {
-                        logger.log(Level.WARNING, "Could not load JSON configuration " + path, e);
-                    }
-    		    }
-    		}
-		}
-		
-		for (Object o : original.getAny()) {
-		    // Legacy SCUFL2 <= 0.11.0  PropertyResource configuration
-		    // Just ignoring it for now :(
-		    // 
-		    // TODO: Parse and represent as JSON-LD?
-		    logger.warning("Ignoring unsupported PropertyResource (from wfbundle 0.2.0 or older) for " + config + " " + o);
-		}
-		
-		getParserState().pop();
-	}
-
-	protected void parseInputActivityPort(
-			org.apache.taverna.scufl2.rdfxml.jaxb.InputActivityPort original) {
-		InputActivityPort port = new InputActivityPort();
-		mapBean(original.getAbout(), port);
-		port.setParent(getParserState().getCurrent(Activity.class));
-
-		port.setName(original.getName());
-		if (original.getPortDepth() != null)
-			port.setDepth(original.getPortDepth().getValue());
-	}
-
-	protected void parseInputPortBinding(
-			org.apache.taverna.scufl2.rdfxml.jaxb.InputPortBinding original)
-			throws ReaderException {
-		ProcessorInputPortBinding binding = new ProcessorInputPortBinding();
-		mapBean(original.getAbout(), binding);
-
-		binding.setBoundActivityPort(resolveBeanUri(original
-				.getBindInputActivityPort().getResource(),
-				InputActivityPort.class));
-		binding.setBoundProcessorPort(resolveBeanUri(original
-				.getBindInputProcessorPort().getResource(),
-				InputProcessorPort.class));
-		binding.setParent(getParserState().getCurrent(ProcessorBinding.class));
-	}
-
-	protected void parseOutputActivityPort(
-			org.apache.taverna.scufl2.rdfxml.jaxb.OutputActivityPort original) {
-		OutputActivityPort port = new OutputActivityPort();
-		mapBean(original.getAbout(), port);
-		port.setParent(getParserState().getCurrent(Activity.class));
-
-		port.setName(original.getName());
-		if (original.getPortDepth() != null)
-			port.setDepth(original.getPortDepth().getValue());
-		if (original.getGranularPortDepth() != null)
-			port.setGranularDepth(original.getGranularPortDepth().getValue());
-	}
-
-	protected void parseOutputPortBinding(
-			org.apache.taverna.scufl2.rdfxml.jaxb.OutputPortBinding original)
-			throws ReaderException {
-		ProcessorOutputPortBinding binding = new ProcessorOutputPortBinding();
-		mapBean(original.getAbout(), binding);
-
-		binding.setBoundActivityPort(resolveBeanUri(original
-				.getBindOutputActivityPort().getResource(),
-				OutputActivityPort.class));
-		binding.setBoundProcessorPort(resolveBeanUri(original
-				.getBindOutputProcessorPort().getResource(),
-				OutputProcessorPort.class));
-		binding.setParent(getParserState().getCurrent(ProcessorBinding.class));
-	}
-
-	protected void parseProcessorBinding(
-			org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding original)
-			throws ReaderException {
-		org.apache.taverna.scufl2.api.profiles.ProcessorBinding binding = new org.apache.taverna.scufl2.api.profiles.ProcessorBinding();
-		binding.setParent(getParserState().getCurrent(
-				org.apache.taverna.scufl2.api.profiles.Profile.class));
-		mapBean(original.getAbout(), binding);
-		getParserState().push(binding);
-
-		if (original.getName() != null)
-			binding.setName(original.getName());
-		if (original.getActivityPosition() != null)
-			binding.setActivityPosition(original.getActivityPosition()
-					.getValue());
-
-		URI processorUri = resolve(original.getBindProcessor().getResource());
-		URI activityUri = resolve(original.getBindActivity().getResource());
-
-		binding.setBoundProcessor((Processor) resolveBeanUri(processorUri));
-		binding.setBoundActivity((Activity) resolveBeanUri(activityUri));
-
-		for (InputPortBinding inputPortBinding : original.getInputPortBinding())
-			parseInputPortBinding(inputPortBinding.getInputPortBinding());
-		for (OutputPortBinding outputPortBinding : original
-				.getOutputPortBinding())
-			parseOutputPortBinding(outputPortBinding.getOutputPortBinding());
-
-		getParserState().pop();
-	}
-
-	protected void parseProfile(Profile original, URI profileUri) {
-		org.apache.taverna.scufl2.api.profiles.Profile p = new org.apache.taverna.scufl2.api.profiles.Profile();
-		p.setParent(getParserState().getCurrent(WorkflowBundle.class));
-
-		getParserState().push(p);
-
-		if (original.getAbout() != null) {
-			URI about = getParserState().getCurrentBase().resolve(
-					original.getAbout());
-			mapBean(about, p);
-		} else
-			mapBean(profileUri, p);
-
-		if (original.getName() != null)
-			p.setName(original.getName());
-		// Note - we'll pop() in profileSecond() instead
-	}
-
-	protected void parseProfileSecond(Profile profileElem) {
-		// TODO: Parse activates config etc.
-		getParserState().pop();
-	}
-
-	protected void readProfile(URI profileUri, URI source)
-			throws ReaderException, IOException {
-		if (source.isAbsolute())
-			throw new ReaderException("Can't read external profile source "
-					+ source);
-		InputStream bundleStream = getParserState().getUcfPackage()
-				.getResourceAsInputStream(source.getRawPath());
-		if (bundleStream == null)
-		    throw new ReaderException("Can't find profile " + source.getPath());
-		readProfile(profileUri, source, bundleStream);
-	}
-
-	@SuppressWarnings("unchecked")
-	protected void readProfile(URI profileUri, URI source,
-			InputStream bundleStream) throws ReaderException, IOException {
-		JAXBElement<ProfileDocument> elem;
-		try {
-			elem = (JAXBElement<ProfileDocument>) unmarshaller
-					.unmarshal(bundleStream);
-		} catch (JAXBException e) {
-			throw new ReaderException("Can't parse profile document " + source,
-					e);
-		}
-
-		URI base = getParserState().getLocation().resolve(source);
-		if (elem.getValue().getBase() != null)
-			base = base.resolve(elem.getValue().getBase());
-
-		getParserState().setCurrentBase(base);
-
-		org.apache.taverna.scufl2.rdfxml.jaxb.Profile profileElem = null;
-		for (Object any : elem.getValue().getAny())
-			if (any instanceof org.apache.taverna.scufl2.rdfxml.jaxb.Profile) {
-				if (profileElem != null)
-					throw new ReaderException("More than one <Profile> found");
-				profileElem = (org.apache.taverna.scufl2.rdfxml.jaxb.Profile) any;
-				parseProfile(profileElem, profileUri);
-			} else if (any instanceof org.apache.taverna.scufl2.rdfxml.jaxb.Activity) {
-				if (profileElem == null)
-					throw new ReaderException("No <Profile> found");
-				parseActivity((org.apache.taverna.scufl2.rdfxml.jaxb.Activity) any);
-			} else if (any instanceof org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding) {
-				if (profileElem == null)
-					throw new ReaderException("No <Profile> found");
-				parseProcessorBinding((org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding) any);
-			} else if (any instanceof org.apache.taverna.scufl2.rdfxml.jaxb.Configuration) {
-				if (profileElem == null)
-					throw new ReaderException("No <Profile> found");
-				parseConfiguration((org.apache.taverna.scufl2.rdfxml.jaxb.Configuration) any);
-			}
-		parseProfileSecond(profileElem);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLReader.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLReader.java
deleted file mode 100644
index dd81ba0..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLReader.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.nio.charset.Charset;
-import java.util.Collections;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-
-
-public class RDFXMLReader implements WorkflowBundleReader {
-	public static final String APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE = "application/vnd.taverna.scufl2.workflow-bundle";
-	public static final String APPLICATION_RDF_XML = "application/rdf+xml";
-
-	@Override
-	public Set<String> getMediaTypes() {
-		return Collections.singleton(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-	}
-
-	@Override
-	public WorkflowBundle readBundle(File bundleFile, String mediaType)
-			throws ReaderException, IOException {
-		UCFPackage ucfPackage = new UCFPackage(bundleFile);
-		WorkflowBundleParser deserializer = new WorkflowBundleParser();
-		return deserializer.readWorkflowBundle(ucfPackage, bundleFile.toURI());
-	}
-
-	@Override
-	public WorkflowBundle readBundle(InputStream inputStream, String mediaType)
-			throws ReaderException, IOException {
-		UCFPackage ucfPackage = new UCFPackage(inputStream);
-		WorkflowBundleParser deserializer = new WorkflowBundleParser();
-		return deserializer.readWorkflowBundle(ucfPackage, URI.create(""));
-	}
-
-	@Override
-	public String guessMediaTypeForSignature(byte[] firstBytes) {
-		if (firstBytes.length < 100)
-			return null;
-		Charset latin1 = Charset.forName("ISO-8859-1");
-		String pk = new String(firstBytes, 0, 2, latin1);
-		if (!pk.equals("PK"))
-			return null;
-		String mimetype = new String(firstBytes, 30, 8, latin1);
-		if (!mimetype.equals("mimetype"))
-			return null;
-		String bundle = new String(firstBytes, 38,
-				APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE.length(), latin1);
-		if (!bundle.equals(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE))
-			return null;
-		return APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLSerializer.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLSerializer.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLSerializer.java
deleted file mode 100644
index 3ab7501..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLSerializer.java
+++ /dev/null
@@ -1,860 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static java.lang.Boolean.TRUE;
-import static java.util.logging.Level.FINE;
-import static java.util.logging.Level.WARNING;
-import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
-import static javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.Typed;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.DotProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.rdfxml.impl.NamespacePrefixMapperJAXB_RI;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.w3._1999._02._22_rdf_syntax_ns_.RDF;
-import org.w3._1999._02._22_rdf_syntax_ns_.Resource;
-import org.w3._1999._02._22_rdf_syntax_ns_.Type;
-import org.w3._2000._01.rdf_schema_.SeeAlso;
-import org.xml.sax.SAXException;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.Blocking;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Control;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DataLink.MergePosition;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DataLinkEntry;
-import org.apache.taverna.scufl2.rdfxml.jaxb.GranularPortDepth;
-import org.apache.taverna.scufl2.rdfxml.jaxb.IterationStrategyStack.IterationStrategies;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ObjectFactory;
-import org.apache.taverna.scufl2.rdfxml.jaxb.PortDepth;
-import org.apache.taverna.scufl2.rdfxml.jaxb.PortNode.DesiredDepth;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding.ActivityPosition;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding.InputPortBinding;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding.OutputPortBinding;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProductOf;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProfileDocument;
-import org.apache.taverna.scufl2.rdfxml.jaxb.SeeAlsoType;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundleDocument;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowDocument;
-
-public class RDFXMLSerializer {
-	private static final String DOT_RDF = ".rdf";
-	protected static final URI OA = URI.create("http://www.w3.org/ns/oa#");
-	protected static final URI PAV = URI.create("http://purl.org/pav/");
-	private static boolean warnedOnce = false;
-	
-	public class ProfileSerialisationVisitor implements Visitor {
-		private org.apache.taverna.scufl2.rdfxml.jaxb.Activity activity;
-		private final ProfileDocument doc;
-		private org.apache.taverna.scufl2.rdfxml.jaxb.Profile profileElem;
-		private Profile profile;
-		private org.apache.taverna.scufl2.rdfxml.jaxb.ProcessorBinding processorBindingElem;
-
-		public ProfileSerialisationVisitor(ProfileDocument doc) {
-			this.doc = doc;
-		}
-
-		private void activity(Activity node) {
-			activity = objectFactory.createActivity();
-			activity.setAbout(uri(node));
-			activity.setType(type(node));
-			activity.setName(node.getName());
-			doc.getAny().add(activity);
-		}
-
-		private void configuration(Configuration node) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.Configuration configuration = objectFactory
-					.createConfiguration();
-			configuration.setConfigure(resource(uri(node.getConfigures())));
-			configuration.setName(node.getName());
-			configuration.setType(type(node));
-			
-			URI configUri = uriTools.relativeUriForBean(node, profile);
-            String jsonPath = configUri.toString().replaceFirst("/$", ".json");
-
-			URI profilePath = uriTools.relativeUriForBean(profile, profile.getParent());
-			
-			String bundlePath = profilePath + jsonPath;
-			
-			UCFPackage bundle = profile.getParent().getResources();
-			try {
-                bundle.addResource(node.getJsonAsString(), bundlePath, "application/json");
-            } catch (IOException e) {
-                logger.log(WARNING, "Can't save JSON to " + bundlePath, e);
-            }
-			configuration.setAbout(configUri.toString());
-			
-			SeeAlso seeAlso = rdfsObjectFactory.createSeeAlso();
-			seeAlso.setResource(jsonPath);
-			configuration.setSeeAlso(seeAlso);
-            
-			// TODO: No way in API to mark non-activated configurations
-			profileElem.getActivateConfiguration().add(resource(uri(node)));
-			doc.getAny().add(configuration);
-		}
-
-		private GranularPortDepth granularPortDepth(Integer integer) {
-			if (integer == null)
-				return null;
-			GranularPortDepth p = objectFactory.createGranularPortDepth();
-			p.setValue(integer);
-			p.setDatatype(p.getDatatype());
-			return p;
-		}
-
-		private void inputActivityPort(InputActivityPort node) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.InputActivityPort inputActivityPort = objectFactory
-					.createInputActivityPort();
-			inputActivityPort.setAbout(uri(node));
-			inputActivityPort.setName(node.getName());
-			inputActivityPort.setPortDepth(portDepth(node.getDepth()));
-
-			org.apache.taverna.scufl2.rdfxml.jaxb.Activity.InputActivityPort wrapper = objectFactory
-					.createActivityInputActivityPort();
-			wrapper.setInputActivityPort(inputActivityPort);
-			activity.getInputActivityPort().add(wrapper);
-		}
-
-		private void outputActivityPort(OutputActivityPort node) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.OutputActivityPort outputActivityPort = objectFactory
-					.createOutputActivityPort();
-			outputActivityPort.setAbout(uri(node));
-			outputActivityPort.setName(node.getName());
-			outputActivityPort.setPortDepth(portDepth(node.getDepth()));
-			outputActivityPort.setGranularPortDepth(granularPortDepth(node
-					.getGranularDepth()));
-
-			org.apache.taverna.scufl2.rdfxml.jaxb.Activity.OutputActivityPort wrapper = objectFactory
-					.createActivityOutputActivityPort();
-			wrapper.setOutputActivityPort(outputActivityPort);
-			activity.getOutputActivityPort().add(wrapper);
-		}
-
-		private PortDepth portDepth(Integer integer) {
-			if (integer == null)
-				return null;
-			PortDepth p = objectFactory.createPortDepth();
-			p.setValue(integer);
-			p.setDatatype(p.getDatatype());
-			return p;
-		}
-
-		private void processorBinding(ProcessorBinding node) {
-			processorBindingElem = objectFactory.createProcessorBinding();
-			processorBindingElem.setAbout(uri(node));
-			processorBindingElem.setName(node.getName());
-			processorBindingElem.setBindActivity(resource(uri(node
-					.getBoundActivity())));
-			processorBindingElem.setBindProcessor(resource(uri(node
-					.getBoundProcessor())));
-			if (node.getActivityPosition() != null) {
-				ActivityPosition value = new ActivityPosition();
-				value.setDatatype(value.getDatatype());
-				value.setValue(node.getActivityPosition());
-				processorBindingElem.setActivityPosition(value);
-			}
-
-			profileElem.getProcessorBinding().add(resource(uri(node)));
-			doc.getAny().add(processorBindingElem);
-		}
-
-		private void processorInputPortBinding(ProcessorInputPortBinding node) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.InputPortBinding inputBinding = objectFactory
-					.createInputPortBinding();
-			inputBinding.setAbout(uri(node));
-			inputBinding.setBindInputActivityPort(resource(uri(node
-					.getBoundActivityPort())));
-			inputBinding.setBindInputProcessorPort(resource(uri(node
-					.getBoundProcessorPort())));
-			InputPortBinding b = objectFactory
-					.createProcessorBindingInputPortBinding();
-			b.setInputPortBinding(inputBinding);
-			processorBindingElem.getInputPortBinding().add(b);
-		}
-
-		private void processorOutputPortBinding(ProcessorOutputPortBinding node) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.OutputPortBinding outputBinding = objectFactory
-					.createOutputPortBinding();
-			outputBinding.setAbout(uri(node));
-			outputBinding.setBindOutputActivityPort(resource(uri(node
-					.getBoundActivityPort())));
-			outputBinding.setBindOutputProcessorPort(resource(uri(node
-					.getBoundProcessorPort())));
-			OutputPortBinding b = objectFactory
-					.createProcessorBindingOutputPortBinding();
-			b.setOutputPortBinding(outputBinding);
-			processorBindingElem.getOutputPortBinding().add(b);
-		}
-
-		private void profile(Profile node) {
-			profile = node;
-			profileElem = objectFactory.createProfile();
-			profileElem.setAbout(uri(node));
-			profileElem.setName(node.getName());
-			doc.getAny().add(profileElem);
-		}
-
-		private String uri(WorkflowBean node) {
-			return uriTools.relativeUriForBean(node, profile).toASCIIString();
-		}
-
-		@Override
-		public boolean visit(WorkflowBean node) {
-			if (node instanceof Profile)
-				profile((Profile) node);
-			else if (node instanceof Activity)
-				activity((Activity) node);
-			else if (node instanceof InputActivityPort)
-				inputActivityPort((InputActivityPort) node);
-			else if (node instanceof OutputActivityPort)
-				outputActivityPort((OutputActivityPort) node);
-			else if (node instanceof ProcessorBinding)
-				processorBinding((ProcessorBinding) node);
-			else if (node instanceof ProcessorInputPortBinding)
-				processorInputPortBinding((ProcessorInputPortBinding) node);
-			else if (node instanceof ProcessorOutputPortBinding)
-				processorOutputPortBinding((ProcessorOutputPortBinding) node);
-			else if (node instanceof Configuration)
-				configuration((Configuration) node);
-			else
-				throw new IllegalStateException("Unexpected node " + node);
-			return true;
-		}
-
-		@Override
-		public boolean visitEnter(WorkflowBean node) {
-			return visit(node);
-		}
-
-		@Override
-		public boolean visitLeave(WorkflowBean node) {
-			return true;
-		}
-	}
-
-	public class WorkflowSerialisationVisitor implements Visitor {
-		private final org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow;
-		private org.apache.taverna.scufl2.rdfxml.jaxb.Processor proc;
-		private Workflow wf;
-		@SuppressWarnings("unused")
-		private org.apache.taverna.scufl2.rdfxml.jaxb.DispatchStack dispatchStack;
-		private org.apache.taverna.scufl2.rdfxml.jaxb.IterationStrategyStack iterationStrategyStack;
-		private IterationStrategies iterationStrategies;
-		private Stack<List<Object>> productStack;
-
-		public WorkflowSerialisationVisitor(
-				org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow) {
-			this.workflow = workflow;
-		}
-
-		private GranularPortDepth makeGranularPortDepth(Integer granularDepth) {
-			if (granularDepth == null)
-				return null;
-			GranularPortDepth portDepth = objectFactory
-					.createGranularPortDepth();
-			portDepth.setValue(granularDepth);
-			portDepth.setDatatype(portDepth.getDatatype());
-			return portDepth;
-		}
-
-		private PortDepth makePortDepth(Integer depth) {
-			if (depth == null)
-				return null;
-			PortDepth portDepth = objectFactory.createPortDepth();
-			portDepth.setValue(depth);
-			portDepth.setDatatype(portDepth.getDatatype());
-			return portDepth;
-		}
-
-		private Resource makeResource(URI uri) {
-			Resource resource = rdfObjectFactory.createResource();
-			resource.setResource(uri.toASCIIString());
-			return resource;
-		}
-
-		@Override
-		public boolean visit(WorkflowBean node) {
-			if (node instanceof Workflow) {
-				wf = (Workflow) node;
-				workflow.setAbout("");
-				workflow.setName(wf.getName());
-
-				if (wf.getIdentifier() != null) {
-					Resource wfId = rdfObjectFactory.createResource();
-					wfId.setResource(wf.getIdentifier().toASCIIString());
-					workflow.setWorkflowIdentifier(wfId);
-				}
-			}
-						
-			URI uri = uriTools.relativeUriForBean(node, wf);
-
-			if (node instanceof InputWorkflowPort) {
-				InputWorkflowPort ip = (InputWorkflowPort) node;
-				org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.InputWorkflowPort inP = objectFactory
-						.createWorkflowInputWorkflowPort();
-				org.apache.taverna.scufl2.rdfxml.jaxb.InputWorkflowPort inPort = objectFactory
-						.createInputWorkflowPort();
-				inP.setInputWorkflowPort(inPort);
-				inPort.setName(ip.getName());
-
-				URI portURI = uriTools.relativeUriForBean(ip, ip.getParent());
-				inPort.setAbout(portURI.toASCIIString());
-
-				PortDepth portDepth = makePortDepth(ip.getDepth());
-				inPort.setPortDepth(portDepth);
-				workflow.getInputWorkflowPort().add(inP);
-			}
-			if (node instanceof OutputWorkflowPort) {
-				OutputWorkflowPort op = (OutputWorkflowPort) node;
-				org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.OutputWorkflowPort inP = objectFactory
-						.createWorkflowOutputWorkflowPort();
-				org.apache.taverna.scufl2.rdfxml.jaxb.OutputWorkflowPort outPort = objectFactory
-						.createOutputWorkflowPort();
-				inP.setOutputWorkflowPort(outPort);
-				outPort.setName(op.getName());
-
-				URI portURI = uriTools.relativeUriForBean(op, op.getParent());
-				outPort.setAbout(portURI.toASCIIString());
-				workflow.getOutputWorkflowPort().add(inP);
-			}
-			if (node instanceof Processor) {
-				Processor processor = (Processor) node;
-				org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.Processor wfProc = objectFactory
-						.createWorkflowProcessor();
-				proc = objectFactory.createProcessor();
-				wfProc.setProcessor(proc);
-				proc.setName(processor.getName());
-				URI procUri = uriTools.relativeUriForBean(processor, wf);
-				proc.setAbout(procUri.toASCIIString());
-				wfProc.setProcessor(proc);
-				workflow.getProcessor().add(wfProc);
-			}
-			if (node instanceof InputProcessorPort) {
-				InputProcessorPort inPort = (InputProcessorPort) node;
-				org.apache.taverna.scufl2.rdfxml.jaxb.InputProcessorPort port = objectFactory
-						.createInputProcessorPort();
-				port.setAbout(uri.toASCIIString());
-				port.setName(inPort.getName());
-				port.setPortDepth(makePortDepth(inPort.getDepth()));
-				org.apache.taverna.scufl2.rdfxml.jaxb.Processor.InputProcessorPort inputProcessorPort = objectFactory
-						.createProcessorInputProcessorPort();
-				inputProcessorPort.setInputProcessorPort(port);
-				proc.getInputProcessorPort().add(inputProcessorPort);
-			}
-			if (node instanceof OutputProcessorPort) {
-				org.apache.taverna.scufl2.rdfxml.jaxb.OutputProcessorPort port;
-				OutputProcessorPort outPort = (OutputProcessorPort) node;
-				port = objectFactory.createOutputProcessorPort();
-				port.setAbout(uri.toASCIIString());
-				port.setName(outPort.getName());
-				port.setPortDepth(makePortDepth(outPort.getDepth()));
-				port.setGranularPortDepth(makeGranularPortDepth(outPort
-						.getGranularDepth()));
-
-				org.apache.taverna.scufl2.rdfxml.jaxb.Processor.OutputProcessorPort outputProcessorPort = objectFactory
-						.createProcessorOutputProcessorPort();
-				outputProcessorPort.setOutputProcessorPort(port);
-				proc.getOutputProcessorPort().add(outputProcessorPort);
-			}
-			if (node instanceof IterationStrategyStack) {
-				iterationStrategyStack = objectFactory
-						.createIterationStrategyStack();
-				iterationStrategyStack.setAbout(uri.toASCIIString());
-				org.apache.taverna.scufl2.rdfxml.jaxb.Processor.IterationStrategyStack processorIterationStrategyStack = objectFactory
-						.createProcessorIterationStrategyStack();
-				processorIterationStrategyStack
-						.setIterationStrategyStack(iterationStrategyStack);
-				proc.setIterationStrategyStack(processorIterationStrategyStack);
-				productStack = new Stack<List<Object>>();
-			}
-			if (node instanceof IterationStrategyTopNode
-					&& productStack.isEmpty()) {
-				iterationStrategies = objectFactory
-						.createIterationStrategyStackIterationStrategies();
-				iterationStrategyStack
-						.setIterationStrategies(iterationStrategies);
-				iterationStrategies.setParseType(iterationStrategies
-						.getParseType());
-				List<Object> dotProductOrCrossProduct = iterationStrategies
-						.getDotProductOrCrossProduct();
-				productStack.add(dotProductOrCrossProduct);
-			}
-			if (node instanceof CrossProduct) {
-				org.apache.taverna.scufl2.rdfxml.jaxb.CrossProduct crossProduct = objectFactory
-						.createCrossProduct();
-				crossProduct.setAbout(uri.toASCIIString());
-				productStack.peek().add(crossProduct);
-				ProductOf productOf = objectFactory.createProductOf();
-				productOf.setParseType(productOf.getParseType());
-				crossProduct.setProductOf(productOf);
-				productStack.add(crossProduct.getProductOf().getCrossProductOrDotProductOrPortNode());
-			}
-			if (node instanceof DotProduct) {
-				org.apache.taverna.scufl2.rdfxml.jaxb.DotProduct dotProduct = objectFactory
-						.createDotProduct();
-				dotProduct.setAbout(uri.toASCIIString());
-				productStack.peek().add(dotProduct);
-				ProductOf productOf = objectFactory.createProductOf();
-				productOf.setParseType(productOf.getParseType());
-				dotProduct.setProductOf(productOf);
-				productStack.add(dotProduct.getProductOf()
-						.getCrossProductOrDotProductOrPortNode());
-			}
-			if (node instanceof PortNode) {
-				PortNode portNode = (PortNode) node;
-				InputProcessorPort inPort = portNode.getInputProcessorPort();
-				URI portUri = uriTools.relativeUriForBean(inPort, wf);
-				org.apache.taverna.scufl2.rdfxml.jaxb.PortNode port = objectFactory.createPortNode();
-				port.setAbout(uri.toASCIIString());
-				if (portNode.getDesiredDepth() != null) {
-					DesiredDepth value = objectFactory.createPortNodeDesiredDepth();
-					value.setDatatype(value.getDatatype());
-					value.setValue(portNode.getDesiredDepth());
-					port.setDesiredDepth(value);
-				}
-				port.setIterateOverInputPort(makeResource(portUri));
-				productStack.peek().add(port);
-			}
-			if (node instanceof DataLink) {
-				DataLink dataLink = (DataLink) node;
-				org.apache.taverna.scufl2.rdfxml.jaxb.DataLink link = objectFactory
-						.createDataLink();
-				link.setAbout(uri.toASCIIString());
-				URI fromUri = uriTools.relativeUriForBean(
-						dataLink.getReceivesFrom(), wf);
-				URI toUri = uriTools.relativeUriForBean(dataLink.getSendsTo(),
-						wf);
-				link.setReceiveFrom(makeResource(fromUri));
-				link.setSendTo(makeResource(toUri));
-
-				if (dataLink.getMergePosition() != null) {
-					MergePosition value = objectFactory.createDataLinkMergePosition();
-					value.setValue(dataLink
-							.getMergePosition());
-					value.setDatatype(value.getDatatype());
-					link.setMergePosition(value);
-				}
-
-				DataLinkEntry linkEntry = objectFactory.createDataLinkEntry();
-				linkEntry.setDataLink(link);
-				workflow.getDatalink().add(linkEntry);
-			}
-			if (node instanceof BlockingControlLink) {
-				BlockingControlLink controlLink = (BlockingControlLink) node;
-				URI blockUri = uriTools.relativeUriForBean(
-						controlLink.getBlock(), wf);
-				URI untilUri = uriTools.relativeUriForBean(
-						controlLink.getUntilFinished(), wf);
-
-				Blocking blocking = objectFactory.createBlocking();
-				blocking.setAbout(uri.toASCIIString());
-				blocking.setBlock(makeResource(blockUri));
-				blocking.setUntilFinished(makeResource(untilUri));
-
-				Control control = objectFactory.createControl();
-				control.setBlocking(blocking);
-				workflow.getControl().add(control);
-			}
-
-			// TODO: Datalinks
-
-			return true;
-		}
-
-		@Override
-		public boolean visitEnter(WorkflowBean node) {
-			return visit(node);
-		}
-
-		@Override
-		public boolean visitLeave(WorkflowBean node) {
-			if (node instanceof IterationStrategyTopNode)
-				// Actually for any Cross/Dot product
-				productStack.pop();
-			return true;
-		}
-	}
-
-	protected synchronized static JAXBContext getJAxbContextStatic()
-			throws JAXBException {
-		if (jaxbContextStatic == null) {
-			Class<?>[] packages = { ObjectFactory.class,
-					org.w3._1999._02._22_rdf_syntax_ns_.ObjectFactory.class,
-					org.w3._2000._01.rdf_schema_.ObjectFactory.class };
-			jaxbContextStatic = JAXBContext.newInstance(packages);
-		}
-		return jaxbContextStatic;
-	}
-
-	public void annotation(final Annotation ann) {
-		URI wfBundleURI = uriTools.uriForBean(wfBundle);
-		URI annUri = uriTools.uriForBean(ann);
-		URI bodyURI = ann.getBody();
-		if (bodyURI == null || bodyURI.isAbsolute())
-			// Workaround with separate file for the annotation alone
-			bodyURI = annUri.resolve(uriTools.validFilename(ann.getName()) + DOT_RDF);
-		URI pathUri = uriTools.relativePath(wfBundleURI, bodyURI);			
-		if (ann.getBody() == null || ann.getBody().equals(wfBundleURI.resolve(pathUri)))
-			// Set the relative path
-			ann.setBody(pathUri);
-
-		// TODO: Add annotation to RO manifest
-		
-//		// Miniature OA description for now
-//		// See http://openannotation.org/spec/core/20130205/
-//		final PropertyResource annProv = new PropertyResource();
-//		annProv.setResourceURI(annUri);
-//		annProv.setTypeURI(OA.resolve("#Annotation"));
-//		
-//		if (ann.getAnnotatedAt() != null) {
-//			annProv.addProperty(OA.resolve("#annotedAt"),
-//					new PropertyLiteral(ann.getAnnotatedAt()));
-//		}
-//		if (ann.getSerializedAt() != null) {
-//			annProv.addProperty(OA.resolve("#serializedAt"),
-//					new PropertyLiteral(ann.getSerializedAt()));
-//		}
-//		
-//		if (ann.getAnnotatedBy() != null) {
-//			annProv.addPropertyReference(OA.resolve("#annotatedBy"),
-//					ann.getAnnotatedBy());
-//		}
-//		if (ann.getSerializedBy() != null) {
-//			annProv.addPropertyReference(OA.resolve("#serializedBy"),
-//					ann.getSerializedBy());
-//		}
-//		
-//		if (ann.getBody() != null) {
-//			annProv.addPropertyReference(OA.resolve("#hasBody"), ann.getBody());
-//		} else if (! ann.getBodyStatements().isEmpty()){						
-//			// FIXME: Hack - Our body is also the annotation!
-//			annProv.addPropertyReference(OA.resolve("#hasBody"), pathUri);
-//		}
-//		
-//		// CHECK: should this be a relative reference instead?
-//		annProv.addPropertyReference(OA.resolve("#hasTarget"), 
-//				uriTools.uriForBean(ann.getTarget()));					
-//		// Serialize the metadata
-//
-//	
-//		try {
-//			/*
-//			 * TODO: Serialize manually with nicer indentation/namespaces etc.,
-//			 * as done for our other RDF/XML documents
-//			 */
-//			wfBundle.getResources()
-//					.addResource(visitor.getDoc(), pathUri.toASCIIString(), APPLICATION_RDF_XML);
-//		} catch (IOException e) {
-//			logger.log(Level.WARNING, "Can't write annotation to " + pathUri, e);
-//		}
-		
-	}
-
-	private ObjectFactory objectFactory = new ObjectFactory();
-
-	private org.w3._2000._01.rdf_schema_.ObjectFactory rdfsObjectFactory = new org.w3._2000._01.rdf_schema_.ObjectFactory();
-	private org.w3._1999._02._22_rdf_syntax_ns_.ObjectFactory rdfObjectFactory = new org.w3._1999._02._22_rdf_syntax_ns_.ObjectFactory();
-	private URITools uriTools = new URITools();
-	private boolean usingSchema = false;
-
-	private WorkflowBundle wfBundle;
-
-	private JAXBContext jaxbContext;
-
-	private Map<WorkflowBean, URI> seeAlsoUris = new HashMap<>();
-	private static JAXBContext jaxbContextStatic;
-	private static Logger logger = Logger.getLogger(RDFXMLSerializer.class
-			.getCanonicalName());
-	public RDFXMLSerializer() {
-	}
-
-	public RDFXMLSerializer(WorkflowBundle wfBundle) {
-		setWfBundle(wfBundle);
-	}
-
-	public JAXBContext getJaxbContext() throws JAXBException {
-		if (jaxbContext == null)
-			return getJAxbContextStatic();
-		return jaxbContext;
-	}
-
-	public Marshaller getMarshaller() {
-		String schemaPath = "xsd/scufl2.xsd";
-		Marshaller marshaller;
-		try {
-			marshaller = getJaxbContext().createMarshaller();
-
-			if (isUsingSchema()) {
-				SchemaFactory schemaFactory = SchemaFactory
-						.newInstance(W3C_XML_SCHEMA_NS_URI);
-				Schema schema = schemaFactory.newSchema(getClass().getResource(
-						schemaPath));
-				// FIXME: re-enable schema
-				marshaller.setSchema(schema);
-			}
-			marshaller.setProperty(JAXB_FORMATTED_OUTPUT, TRUE);
-			marshaller
-					.setProperty(
-							"jaxb.schemaLocation",
-							"http://ns.taverna.org.uk/2010/scufl2# http://ns.taverna.org.uk/2010/scufl2/scufl2.xsd "
-									+ "http://www.w3.org/1999/02/22-rdf-syntax-ns# http://ns.taverna.org.uk/2010/scufl2/rdf.xsd");
-		} catch (JAXBException e) {
-			throw new IllegalStateException(e);
-		} catch (SAXException e) {
-			throw new IllegalStateException("Could not load schema "
-					+ schemaPath, e);
-		}
-		setPrefixMapper(marshaller);
-		return marshaller;
-	}
-
-	public WorkflowBundle getWfBundle() {
-		return wfBundle;
-	}
-
-	public boolean isUsingSchema() {
-		return usingSchema;
-	}
-
-	protected ProfileDocument makeProfile(Profile pf, URI path) {
-		ProfileDocument doc = objectFactory.createProfileDocument();
-
-		objectFactory.createProfile();
-		pf.accept(new ProfileSerialisationVisitor(doc) {
-		});
-		return doc;
-	}
-
-	protected org.apache.taverna.scufl2.rdfxml.jaxb.Workflow makeWorkflow(
-			Workflow wf, URI documentPath) {
-		org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow = objectFactory
-				.createWorkflow();
-		wf.accept(new WorkflowSerialisationVisitor(workflow) {
-		});
-		return workflow;
-	}
-
-	protected org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle makeWorkflowBundleElem() {
-		org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle bundle = objectFactory
-				.createWorkflowBundle();
-		// FIXME: Support other URIs
-		bundle.setAbout("");
-		bundle.setName(wfBundle.getName());
-
-		if (wfBundle.getGlobalBaseURI() != null) {
-			Resource globalBaseURI = rdfObjectFactory.createResource();
-			globalBaseURI.setResource(wfBundle.getGlobalBaseURI().toASCIIString());
-			bundle.setGlobalBaseURI(globalBaseURI);
-		}
-
-		for (Workflow wf : wfBundle.getWorkflows()) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle.Workflow wfElem = objectFactory
-					.createWorkflowBundleWorkflow();
-			SeeAlsoType seeAlsoElem = objectFactory.createSeeAlsoType();
-			seeAlsoElem.setAbout(uriTools.relativeUriForBean(wf, wfBundle)
-					.toASCIIString());
-
-			if (seeAlsoUris.containsKey(wf)) {
-				SeeAlso seeAlso = rdfsObjectFactory.createSeeAlso();
-				seeAlso.setResource(seeAlsoUris.get(wf).toASCIIString());
-				seeAlsoElem.setSeeAlso(seeAlso);
-			} else
-				logger.warning("Can't find bundle URI for workflow document "
-						+ wf.getName());
-
-			wfElem.setWorkflow(seeAlsoElem);
-			bundle.getWorkflow().add(wfElem);
-
-			if (wfBundle.getMainWorkflow() == wf) {
-				Resource mainWorkflow = rdfObjectFactory.createResource();
-				mainWorkflow.setResource(seeAlsoElem.getAbout());
-				bundle.setMainWorkflow(mainWorkflow);
-			}
-		}
-
-		for (Profile pf : wfBundle.getProfiles()) {
-			org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle.Profile wfElem = objectFactory
-					.createWorkflowBundleProfile();
-			SeeAlsoType seeAlsoElem = objectFactory.createSeeAlsoType();
-			seeAlsoElem.setAbout(uriTools.relativeUriForBean(pf, wfBundle)
-					.toASCIIString());
-
-			if (seeAlsoUris.containsKey(pf)) {
-				SeeAlso seeAlso = rdfsObjectFactory.createSeeAlso();
-				seeAlso.setResource(seeAlsoUris.get(pf).toASCIIString());
-				seeAlsoElem.setSeeAlso(seeAlso);
-			} else
-				logger.warning("Can't find bundle URI for profile document "
-						+ pf.getName());
-
-			wfElem.setProfile(seeAlsoElem);
-			bundle.getProfile().add(wfElem);
-
-			if (wfBundle.getMainProfile() == pf) {
-				Resource mainProfile = rdfObjectFactory.createResource();
-				mainProfile.setResource(seeAlsoElem.getAbout());
-				bundle.setMainProfile(mainProfile);
-			}
-		}
-
-		for (Annotation ann : wfBundle.getAnnotations())
-			annotation(ann);
-		
-		return bundle;
-	}
-
-	public void profileDoc(OutputStream outputStream, Profile pf, URI path)
-			throws JAXBException, WriterException {
-		ProfileDocument doc = makeProfile(pf, path);
-
-		URI wfUri = uriTools.relativeUriForBean(pf, wfBundle);
-		doc.setBase(uriTools.relativePath(path, wfUri).toASCIIString());
-
-		JAXBElement<RDF> element = rdfObjectFactory.createRDF(doc);
-		getMarshaller().marshal(element, outputStream);
-		seeAlsoUris.put(pf, path);
-	}
-
-	private Resource resource(String uri) {
-		Resource r = rdfObjectFactory.createResource();
-		r.setResource(uri);
-		return r;
-	}
-
-	public void setJaxbContext(JAXBContext jaxbContext) {
-		this.jaxbContext = jaxbContext;
-	}
-
-	protected void setPrefixMapper(Marshaller marshaller) {
-		boolean setPrefixMapper = false;
-
-		try {
-			/*
-			 * This only works with JAXB RI, in which case we can set the
-			 * namespace prefix mapper
-			 */
-			Class.forName("com.sun.xml.bind.marshaller.NamespacePrefixMapper");
-			marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper",
-					new NamespacePrefixMapperJAXB_RI());
-			/*
-			 * Note: A similar mapper for the built-in java
-			 * (com.sun.xml.bind.internal.namespacePrefixMapper) is no longer
-			 * included here, as it will not (easily) compile with Maven.
-			 */
-			setPrefixMapper = true;
-		} catch (Exception e) {
-			logger.log(FINE, "Can't find NamespacePrefixMapper", e);
-		}
-
-		if (!setPrefixMapper && ! warnedOnce) {
-			logger.info("Could not set prefix mapper (missing or incompatible JAXB) "
-					+ "- will use prefixes ns0, ns1, ..");
-			warnedOnce = true;
-		}
-	}
-
-	public void setUsingSchema(boolean usingSchema) {
-		this.usingSchema = usingSchema;
-	}
-
-	public void setWfBundle(WorkflowBundle wfBundle) {
-		this.wfBundle = wfBundle;
-	}
-
-	private Type type(Typed typed) {
-		if (typed.getType() == null)
-			return null;
-		Type t = rdfObjectFactory.createType();
-		t.setResource(typed.getType().toASCIIString());
-		return t;
-	}
-
-	public void workflowBundleDoc(OutputStream outputStream, URI path)
-			throws JAXBException, WriterException {
-		org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle bundle = makeWorkflowBundleElem();
-		WorkflowBundleDocument doc = objectFactory
-				.createWorkflowBundleDocument();
-		doc.getAny().add(bundle);
-
-		doc.setBase(path.relativize(URI.create("./")).toASCIIString());
-		JAXBElement<RDF> element = rdfObjectFactory.createRDF(doc);
-
-		getMarshaller().marshal(element, outputStream);
-		seeAlsoUris.put(wfBundle, path);
-	}
-
-	public void workflowDoc(OutputStream outputStream, Workflow wf, URI path)
-			throws JAXBException, WriterException {
-		org.apache.taverna.scufl2.rdfxml.jaxb.Workflow wfElem = makeWorkflow(wf,
-				path);
-		WorkflowDocument doc = objectFactory.createWorkflowDocument();
-		doc.getAny().add(wfElem);
-
-		URI wfUri = uriTools.relativeUriForBean(wf, wfBundle);
-		doc.setBase(uriTools.relativePath(path, wfUri).toASCIIString());
-
-		JAXBElement<RDF> element = rdfObjectFactory.createRDF(doc);
-		getMarshaller().marshal(element, outputStream);
-		seeAlsoUris.put(wf, path);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLWriter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLWriter.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLWriter.java
deleted file mode 100644
index 3670898..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RDFXMLWriter.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLReader.APPLICATION_RDF_XML;
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLReader.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URI;
-import java.util.Collections;
-import java.util.Set;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.annotation.Revisioned;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleWriter;
-import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-
-
-public class RDFXMLWriter implements WorkflowBundleWriter {
-	private static final String WF = "wf-";
-	private static final String REVISIONS = "-revisions";
-	protected static final String RDF = ".rdf";
-	protected static final String WORKFLOW = "workflow/";
-	protected static final String HISTORY = "history/";
-	protected static final String PROFILE = "profile/";
-	protected static final String WORKFLOW_BUNDLE_RDF = "workflowBundle.rdf";
-
-	private static URITools uriTools = new URITools();
-	
-	public static final URITools getUriTools() {
-		return uriTools;
-	}
-
-	public static final void setUriTools(URITools uriTools) {
-		RDFXMLWriter.uriTools = uriTools;
-	}
-
-	/**
-	 * Version of Workflow Bundle format
-	 */
-    public final String WORKFLOW_BUNDLE_VERSION = "0.4.0";
-
-	@Override
-	public Set<String> getMediaTypes() {
-		return Collections
-				.singleton(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-	}
-
-	@Override
-	public void writeBundle(WorkflowBundle wfBundle, File destination,
-			String mediaType) throws WriterException, IOException {
-		UCFPackage ucfPackage = makeUCFPackage(wfBundle);
-		ucfPackage.save(destination);
-	}
-
-	protected UCFPackage makeUCFPackage(WorkflowBundle wfBundle)
-			throws IOException, WriterException {
-		//UCFPackage ucfPackage = new UCFPackage();
-		UCFPackage ucfPackage = wfBundle.getResources();		
-		if (ucfPackage.getPackageMediaType() == null)
-			ucfPackage
-				.setPackageMediaType(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-
-		RDFXMLSerializer serializer = new RDFXMLSerializer(wfBundle);
-		
-		for (Workflow wf : wfBundle.getWorkflows()) {
-			String path = WORKFLOW + uriTools.validFilename(wf.getName()) + RDF;
-
-			try (OutputStream outputStream = ucfPackage
-					.addResourceUsingOutputStream(path, APPLICATION_RDF_XML)) {
-				serializer.workflowDoc(outputStream, wf, URI.create(path));
-			} catch (JAXBException e) {
-				throw new WriterException("Can't generate " + path, e);
-			}
-			
-			path = HISTORY + WF +  
-					uriTools.validFilename(wf.getName()) + REVISIONS + RDF;
-			addRevisions(wf, path, wfBundle);
-		}
-
-		for (Profile pf : wfBundle.getProfiles()) {
-			String path = PROFILE + uriTools.validFilename(pf.getName()) + RDF;
-			try (OutputStream outputStream = ucfPackage
-					.addResourceUsingOutputStream(path, APPLICATION_RDF_XML)) {
-				serializer.profileDoc(outputStream, pf, URI.create(path));
-			} catch (JAXBException e) {
-				throw new WriterException("Can't generate " + path, e);
-			}
-			path = HISTORY + "pf-" +  
-					uriTools.validFilename(pf.getName()) + REVISIONS + RDF;
-			addRevisions(pf, path, wfBundle);
-		}
-
-		try (OutputStream outputStream = ucfPackage
-				.addResourceUsingOutputStream(WORKFLOW_BUNDLE_RDF,
-						APPLICATION_RDF_XML)) {
-			serializer.workflowBundleDoc(outputStream,
-					URI.create(WORKFLOW_BUNDLE_RDF));
-		} catch (JAXBException e) {
-			throw new WriterException("Can't generate " + WORKFLOW_BUNDLE_RDF,
-					e);
-		}
-		
-		if (ucfPackage.getPackageMediaType().equals(
-				APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE))
-			ucfPackage
-					.setRootFile(WORKFLOW_BUNDLE_RDF, WORKFLOW_BUNDLE_VERSION);
-
-		String path = HISTORY + "wfbundle" + REVISIONS + RDF;
-		addRevisions(wfBundle, path, wfBundle);
-		
-		return ucfPackage;
-	}
-
-
-	protected void addRevisions(Revisioned revisioned, String path, WorkflowBundle wfBundle) throws WriterException {
-		@SuppressWarnings("unused")
-		URI uriBase = uriTools.uriForBean(wfBundle).resolve(path);		
-		Revision currentRevision = revisioned.getCurrentRevision();
-		if (currentRevision == null)
-			return;
-//		try {
-//			wfBundle.getResources()
-//					.addResource(visitor.getDoc(), path, APPLICATION_RDF_XML);
-//		} catch (IOException e) {
-//			throw new WriterException("Can't write revisions to " + path, e);
-//		}
-	}
-
-	@Override
-	public void writeBundle(WorkflowBundle wfBundle, OutputStream output,
-			String mediaType) throws WriterException, IOException {
-		UCFPackage ucfPackage = makeUCFPackage(wfBundle);
-		ucfPackage.save(output);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RevisionParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RevisionParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RevisionParser.java
deleted file mode 100644
index 366069b..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/RevisionParser.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.InputStream;
-import java.net.URI;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.datatype.XMLGregorianCalendar;
-
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.purl.wf4ever.roevo.jaxb.Change;
-import org.purl.wf4ever.roevo.jaxb.ChangeSpecification;
-import org.purl.wf4ever.roevo.jaxb.ChangeSpecification.HasChange;
-import org.purl.wf4ever.roevo.jaxb.RoEvoDocument;
-import org.purl.wf4ever.roevo.jaxb.VersionableResource;
-import org.w3._1999._02._22_rdf_syntax_ns_.Resource;
-
-
-public class RevisionParser {
-	private JAXBContext jaxbContext;
-
-	protected JAXBContext getJaxbContext() throws JAXBException {
-		if (jaxbContext == null) {
-			Class<?>[] packages = {
-					org.purl.wf4ever.roevo.jaxb.ObjectFactory.class,
-					org.w3.prov.jaxb.ObjectFactory.class,
-					org.w3._1999._02._22_rdf_syntax_ns_.ObjectFactory.class,
-					org.w3._2000._01.rdf_schema_.ObjectFactory.class };
-			jaxbContext = JAXBContext.newInstance(packages);
-		}
-		return jaxbContext;
-	}
-
-	@SuppressWarnings({ "unchecked" })
-	public Map<URI, Revision> readRevisionChain(
-			InputStream revisionDocumentStream, URI base)
-			throws ReaderException {
-		JAXBElement<RoEvoDocument> roEvoDoc;
-		try {
-			Unmarshaller unmarshaller = getJaxbContext().createUnmarshaller();
-			roEvoDoc = (JAXBElement<RoEvoDocument>) unmarshaller
-					.unmarshal(revisionDocumentStream);
-		} catch (JAXBException e) {
-			throw new ReaderException(e);
-		}
-
-		RoEvoDocument document = roEvoDoc.getValue();
-		if (document.getBase() != null)
-			base = base.resolve(document.getBase());
-		Map<URI, Revision> revisions = new LinkedHashMap<>();
-		// NOTE: Silly hack to iterate/cast in one go.. will it work?
-		for (VersionableResource verResource : document.getAny().toArray(
-				new VersionableResource[0]))
-			parse(base, verResource, revisions);
-		return revisions;
-	}
-
-	private Revision parse(URI base, VersionableResource verResource,
-			Map<URI, Revision> revisions) throws ReaderException {
-		URI uri = base.resolve(verResource.getAbout());
-		Revision revision = addOrExisting(uri, revisions);
-
-		if (verResource.getGeneratedAtTime() != null) {
-			XMLGregorianCalendar xmlCal = verResource.getGeneratedAtTime()
-					.getValue();
-			revision.setGeneratedAtTime(xmlCal.toGregorianCalendar());
-		}
-
-		Resource wasRevisionOf = verResource.getWasRevisionOf();
-		if (wasRevisionOf != null) {
-			// TODO Put these in a map
-			Revision r = addOrExisting(
-					base.resolve(wasRevisionOf.getResource()), revisions);
-			revision.setPreviousRevision(r);
-		}
-
-		if (verResource.getWasChangedBy() != null) {
-			ChangeSpecification changeSpec = verResource.getWasChangedBy()
-					.getChangeSpecification();
-			if (changeSpec.getFromVersion() != null) {
-				Revision r = addOrExisting(
-						base.resolve(changeSpec.getFromVersion().getResource()),
-						revisions);
-				if (revision.getPreviousRevision() != null
-						&& revision.getPreviousRevision() != r)
-					throw new ReaderException(
-							"Inconsistent previous revision: "
-									+ revision.getPreviousRevision()
-											.getIdentifier() + " or "
-									+ r.getIdentifier());
-				revision.setPreviousRevision(r);
-			}
-
-			if (changeSpec.getType() != null)
-				revision.setChangeSpecificationType(base.resolve(changeSpec
-						.getType().getResource()));
-
-			for (HasChange hasChange : changeSpec.getHasChange()) {
-				if (hasChange.getAddition() != null) {
-					Set<URI> additions = parse(hasChange.getAddition(), base);
-					// Note: Use addAll in case a buggy XML has multiple
-					// <hasChange><Addition>
-					revision.getAdditionOf().addAll(additions);
-				}
-				if (hasChange.getModification() != null) {
-					Set<URI> modifications = parse(hasChange.getModification(),
-							base);
-					revision.getModificationsOf().addAll(modifications);
-				}
-				if (hasChange.getRemoval() != null) {
-					Set<URI> removals = parse(hasChange.getRemoval(), base);
-					revision.getRemovalOf().addAll(removals);
-				}
-			}
-		}
-
-		for (Resource assoc : verResource.getWasAttributedTo())
-			revision.getWasAttributedTo()
-					.add(base.resolve(assoc.getResource()));
-
-		for (Resource assoc : verResource.getHadOriginalSource()) {
-			Revision r = addOrExisting(base.resolve(assoc.getResource()),
-					revisions);
-			revision.getHadOriginalSources().add(r);
-		}
-
-		return revision;
-	}
-
-	private Revision addOrExisting(URI uri, Map<URI, Revision> revisions) {
-		Revision rev = revisions.get(uri);
-		if (rev != null)
-			return rev;
-		rev = new Revision(uri, null);
-		revisions.put(uri, rev);
-		return rev;
-	}
-
-	private Set<URI> parse(Change addition, URI base) {
-		Set<URI> uris = new LinkedHashSet<>();
-		for (Resource r : addition.getRelatedResource())
-			uris.add(base.resolve(r.getResource()));
-		return uris;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java
deleted file mode 100644
index 4e56a1f..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowBundleParser.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLReader.APPLICATION_RDF_XML;
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLReader.APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE;
-import static org.apache.taverna.scufl2.rdfxml.RDFXMLWriter.WORKFLOW_BUNDLE_RDF;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage.ResourceEntry;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundleDocument;
-
-public class WorkflowBundleParser extends AbstractParser {
-
-	private WorkflowParser workflowParser;
-	private ProfileParser profileParser;
-
-	public WorkflowBundleParser() {
-		super();
-		workflowParser = new WorkflowParser(parserState);
-		profileParser = new ProfileParser(parserState);
-	}
-
-	protected String findWorkflowBundlePath() {
-		if (APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE
-				.equals(getParserState().getUcfPackage().getPackageMediaType()))
-			for (ResourceEntry potentialRoot : getParserState().getUcfPackage()
-					.getRootFiles())
-				if (APPLICATION_RDF_XML.equals(potentialRoot.getMediaType()))
-					return potentialRoot.getPath();
-		return WORKFLOW_BUNDLE_RDF;
-	}
-
-	protected WorkflowBundle parseWorkflowBundle(
-			org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle wb, URI base)
-			throws ReaderException, IOException {
-		WorkflowBundle workflowBundle = new WorkflowBundle();
-		getParserState().push(workflowBundle);
-		try {
-			workflowBundle.setResources(getParserState().getUcfPackage());
-			if (wb.getName() != null)
-				workflowBundle.setName(wb.getName());
-			if (wb.getGlobalBaseURI() != null
-					&& wb.getGlobalBaseURI().getResource() != null)
-				workflowBundle.setGlobalBaseURI(base.resolve(wb
-						.getGlobalBaseURI().getResource()));
-			mapBean(base.resolve(wb.getAbout()), workflowBundle);
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle.Workflow wfEntry : wb
-					.getWorkflow()) {
-				URI wfUri = base.resolve(wfEntry.getWorkflow().getAbout());
-				String resource = wfEntry.getWorkflow().getSeeAlso()
-						.getResource();
-				URI source = uriTools.relativePath(getParserState()
-						.getLocation(), base.resolve(resource));
-				workflowParser.readWorkflow(wfUri, source);
-			}
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle.Profile pfEntry : wb
-					.getProfile()) {
-				URI wfUri = base.resolve(pfEntry.getProfile().getAbout());
-				String resource = pfEntry.getProfile().getSeeAlso()
-						.getResource();
-				URI source = uriTools.relativePath(getParserState()
-						.getLocation(), base.resolve(resource));
-				profileParser.readProfile(wfUri, source);
-			}
-
-			if (wb.getMainWorkflow() != null
-					&& wb.getMainWorkflow().getResource() != null) {
-				URI mainWfUri = base
-						.resolve(wb.getMainWorkflow().getResource());
-				Workflow mainWorkflow = (Workflow) resolveBeanUri(mainWfUri);
-				if (mainWorkflow == null)
-					throw new ReaderException("Unknown main workflow "
-							+ mainWfUri + ", got"
-							+ getParserState().getUriToBean().keySet());
-				workflowBundle.setMainWorkflow(mainWorkflow);
-			}
-			if (wb.getMainProfile() != null
-					&& wb.getMainProfile().getResource() != null) {
-				URI profileUri = base
-						.resolve(wb.getMainProfile().getResource());
-				org.apache.taverna.scufl2.api.profiles.Profile mainWorkflow = (org.apache.taverna.scufl2.api.profiles.Profile) resolveBeanUri(profileUri);
-				workflowBundle.setMainProfile(mainWorkflow);
-			}
-		} finally {
-			getParserState().pop();
-		}
-		return workflowBundle;
-	}
-
-	@SuppressWarnings("unchecked")
-	public WorkflowBundle readWorkflowBundle(UCFPackage ucfPackage,
-			URI suggestedLocation) throws IOException, ReaderException {
-		try {
-			getParserState().setUcfPackage(ucfPackage);
-			getParserState().setLocation(suggestedLocation);
-			if (getParserState().getLocation() == null) {
-				getParserState().setLocation(URI.create(""));
-			} else if (!getParserState().getLocation().getRawPath()
-					.endsWith("/")) {
-				if (getParserState().getLocation().getQuery() != null
-						|| getParserState().getLocation().getFragment() != null)
-					/*
-					 * Ouch.. Perhaps some silly website with ?bundleId=15 ?
-					 * We'll better conserve that somehow. Let's do the jar:
-					 * trick and hope it works. Have to escape evil chars.
-					 */
-					getParserState().setLocation(
-							URI.create("jar:"
-									+ getParserState().getLocation()
-									.toASCIIString()
-									.replace("?", "%63")
-									.replace("#", "#35") + "!/"));
-				else
-					/*
-					 * Simple, pretend we're one level down inside the ZIP file
-					 * as a directory
-					 */
-					getParserState().setLocation(
-							getParserState().getLocation().resolve(
-									getParserState().getLocation().getRawPath()
-											+ "/"));
-			}
-			String workflowBundlePath = findWorkflowBundlePath();
-
-			InputStream bundleStream = getParserState().getUcfPackage()
-					.getResourceAsInputStream(workflowBundlePath);
-
-			JAXBElement<WorkflowBundleDocument> elem;
-			try {
-				elem = (JAXBElement<WorkflowBundleDocument>) unmarshaller
-						.unmarshal(bundleStream);
-			} catch (JAXBException e) {
-				throw new ReaderException(
-						"Can't parse workflow bundle document "
-								+ workflowBundlePath, e);
-			}
-			WorkflowBundleDocument workflowBundleDocument = elem.getValue();
-
-			URI base = getParserState().getLocation().resolve(
-					workflowBundlePath);
-			if (workflowBundleDocument.getBase() != null)
-				base = getParserState().getLocation().resolve(
-						workflowBundleDocument.getBase());
-
-			if (workflowBundleDocument.getAny().size() != 1)
-				throw new ReaderException(
-						"Invalid WorkflowBundleDocument, expected only one <WorkflowBundle>");
-
-			org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle wb = (org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowBundle) workflowBundleDocument
-					.getAny().get(0);
-			WorkflowBundle workflowBundle = parseWorkflowBundle(wb, base);
-
-			scufl2Tools.setParents(workflowBundle);
-			return workflowBundle;
-		} finally {
-			clearParserState();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java b/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java
deleted file mode 100644
index 6d84ef7..0000000
--- a/taverna-scufl2-rdfxml/src/main/java/org/apache/taverna/scufl2/rdfxml/WorkflowParser.java
+++ /dev/null
@@ -1,381 +0,0 @@
-package org.apache.taverna.scufl2.rdfxml;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.List;
-import java.util.logging.Logger;
-
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyParent;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-
-import org.apache.taverna.scufl2.rdfxml.jaxb.Blocking;
-import org.apache.taverna.scufl2.rdfxml.jaxb.CrossProduct;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DataLink;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DispatchStack;
-import org.apache.taverna.scufl2.rdfxml.jaxb.DotProduct;
-import org.apache.taverna.scufl2.rdfxml.jaxb.IterationStrategyStack;
-import org.apache.taverna.scufl2.rdfxml.jaxb.PortNode;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Processor.InputProcessorPort;
-import org.apache.taverna.scufl2.rdfxml.jaxb.Processor.OutputProcessorPort;
-import org.apache.taverna.scufl2.rdfxml.jaxb.ProductOf;
-import org.apache.taverna.scufl2.rdfxml.jaxb.WorkflowDocument;
-
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-
-public class WorkflowParser extends AbstractParser {
-	private static Logger logger = Logger.getLogger(WorkflowParser.class
-			.getCanonicalName());
-	@SuppressWarnings("unused")
-	private static final JsonNodeFactory JSON_NODE_FACTORY = JsonNodeFactory.instance;
-
-	public WorkflowParser() {
-	}
-
-	public WorkflowParser(ThreadLocal<ParserState> parserState) {
-		super(parserState);
-	}
-
-	protected void parseControlLink(Blocking original) {
-		URI blockUri = getParserState().getCurrentBase().resolve(
-				original.getBlock().getResource());
-		URI untilFinishedUri = getParserState().getCurrentBase().resolve(
-				original.getUntilFinished().getResource());
-		WorkflowBean block = resolveBeanUri(blockUri);
-		WorkflowBean untilFinished = resolveBeanUri(untilFinishedUri);
-
-		BlockingControlLink blocking = new BlockingControlLink();
-		blocking.setBlock((org.apache.taverna.scufl2.api.core.Processor) block);
-		blocking.setUntilFinished((org.apache.taverna.scufl2.api.core.Processor) untilFinished);
-
-		blocking.setParent(getParserState().getCurrent(Workflow.class));
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				blocking);
-	}
-
-	protected void parseCrossDotOrPortNodeList(List<Object> nodeList)
-			throws ReaderException {
-		for (Object node : nodeList)
-			if (node instanceof DotProduct)
-				parseDotProduct((DotProduct) node);
-			else if (node instanceof CrossProduct)
-				parseCrossProduct((CrossProduct) node);
-			else if (node instanceof PortNode)
-				parsePortNode((PortNode) node);
-			else
-				throw new ReaderException("Unexpected node " + node);
-	}
-
-	protected void parseCrossProduct(CrossProduct original)
-			throws ReaderException {
-		org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct cross = new org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct();
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				cross);
-		cross.setParent(getParserState().getCurrent(
-				IterationStrategyParent.class));
-		getParserState().push(cross);
-		try {
-			parseProductOf(original.getProductOf());
-		} finally {
-			getParserState().pop();
-		}
-	}
-
-	protected void parseDataLink(DataLink original) {
-		URI fromUri = getParserState().getCurrentBase().resolve(
-				original.getReceiveFrom().getResource());
-		URI toUri = getParserState().getCurrentBase().resolve(
-				original.getSendTo().getResource());
-		WorkflowBean from = resolveBeanUri(fromUri);
-		WorkflowBean to = resolveBeanUri(toUri);
-
-		org.apache.taverna.scufl2.api.core.DataLink link = new org.apache.taverna.scufl2.api.core.DataLink();
-		link.setReceivesFrom((SenderPort) from);
-		link.setSendsTo((ReceiverPort) to);
-		if (original.getMergePosition() != null)
-			link.setMergePosition(original.getMergePosition().getValue());
-		link.setParent(getParserState().getCurrent(Workflow.class));
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				link);
-	}
-
-	protected void parseDispatchStack(DispatchStack original) {
-        logger.fine("Ignoring Dispatch stack: not supported (SCUFL2-130)");
-        return;
-
-//        // FIXME: Legacy code - support parsing old dispatch stack configurations
-//		Processor processor = getParserState().getCurrent(
-//				org.apache.taverna.scufl2.api.core.Processor.class);
-//        ObjectNode config = JSON_NODE_FACTORY.objectNode();
-//        getParserState().getDispatchConfigs().put(processor, config);        
-//		if (original.getDispatchStackLayers() != null) {
-//			for (DispatchStackLayer dispatchStackLayer : original
-//					.getDispatchStackLayers().getDispatchStackLayer()) {
-//				parseDispatchStackLayer(dispatchStackLayer);
-//			}
-//		}
-	}
-
-//	protected void parseDispatchStackLayer(DispatchStackLayer original) {
-//	    Processor processor = getParserState().getCurrent(Processor.class);
-//	    URI type = getParserState().getCurrentBase().resolve(
-//				original.getType().getResource());
-//	    URI config = getParserState().getCurrentBase().resolve(original.getAbout());
-//	    // TODO: SCUFL2-130
-//	    // Add Legacy code for wfbundle 0.3.0 to
-//	    // support parsing old dispatch stack configurations
-//	    // 
-//	    // The difficult bit is that the layers themselves has moved to 
-//	    // to be a Configuration on a Processor - but we are here within
-//	    // parsing of the Workflow. In 0.3.0 each layer is then configured
-//	    // separately. So we need to pass over somehow the current stack 
-//	    // to the ParserState so that it can be picked up in ProfileParser
-//	    // and added to each of the profiles -- or at least where the
-//	    // stack layers have been configured.
-//	    // 
-//	    // Here's an idea on how it can work. Here we should push each layer to a
-//	    // List<Pair<URI,URI>> that we can keep in the ParserState. 
-//	    // Then, within ProfileParser, we can pick them up and
-//      // recreate what the Processor config would look like for
-//      // the default configs - and then delete those dangling configs
-//	}
-
-	protected void parseDotProduct(DotProduct original) throws ReaderException {
-		org.apache.taverna.scufl2.api.iterationstrategy.DotProduct dot = new org.apache.taverna.scufl2.api.iterationstrategy.DotProduct();
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				dot);
-		dot.setParent(getParserState()
-				.getCurrent(IterationStrategyParent.class));
-
-		getParserState().push(dot);
-		try {
-			parseProductOf(original.getProductOf());
-		} finally {
-			getParserState().pop();
-		}
-	}
-
-	protected void parseInputWorkflowPort(
-			org.apache.taverna.scufl2.rdfxml.jaxb.InputWorkflowPort original) {
-		org.apache.taverna.scufl2.api.port.InputWorkflowPort port = new org.apache.taverna.scufl2.api.port.InputWorkflowPort();
-		port.setName(original.getName());
-		if (original.getPortDepth() != null)
-			port.setDepth(original.getPortDepth().getValue());
-		port.setParent(getParserState().getCurrent(Workflow.class));
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				port);
-	}
-
-	protected void parseIterationStrategyStack(IterationStrategyStack original)
-			throws ReaderException {
-		org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack iterationStrategyStack = new org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack();
-		iterationStrategyStack.setParent(getParserState().getCurrent(
-				Processor.class));
-
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				iterationStrategyStack);
-		if (original.getIterationStrategies() != null) {
-			getParserState().push(iterationStrategyStack);
-			try {
-				parseCrossDotOrPortNodeList(original.getIterationStrategies()
-						.getDotProductOrCrossProduct());
-			} finally {
-				getParserState().pop();
-			}
-		}
-	}
-
-	protected void parseOutputWorkflowPort(
-			org.apache.taverna.scufl2.rdfxml.jaxb.OutputWorkflowPort original) {
-		org.apache.taverna.scufl2.api.port.OutputWorkflowPort port = new org.apache.taverna.scufl2.api.port.OutputWorkflowPort();
-		port.setName(original.getName());
-		port.setParent(getParserState().getCurrent(Workflow.class));
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				port);
-	}
-
-	protected void parsePortNode(PortNode original) {
-		org.apache.taverna.scufl2.api.iterationstrategy.PortNode node = new org.apache.taverna.scufl2.api.iterationstrategy.PortNode();
-		node.setParent(getParserState().getCurrent(
-				IterationStrategyParent.class));
-		if (original.getDesiredDepth() != null)
-			node.setDesiredDepth(original.getDesiredDepth().getValue());
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				node);
-		URI inputPortUri = getParserState().getCurrentBase().resolve(
-				original.getIterateOverInputPort().getResource());
-		org.apache.taverna.scufl2.api.port.InputProcessorPort inputPort = (org.apache.taverna.scufl2.api.port.InputProcessorPort) resolveBeanUri(inputPortUri);
-		node.setInputProcessorPort(inputPort);
-	}
-
-	protected void parseProcessor(
-			org.apache.taverna.scufl2.rdfxml.jaxb.Processor processor)
-			throws ReaderException {
-		org.apache.taverna.scufl2.api.core.Processor p = new org.apache.taverna.scufl2.api.core.Processor();
-		getParserState().push(p);
-		try {
-			p.setParent(getParserState().getCurrent(Workflow.class));
-			mapBean(getParserState().getCurrentBase().resolve(
-					processor.getAbout()), p);
-			if (processor.getName() != null)
-				p.setName(processor.getName());
-			for (InputProcessorPort inputProcessorPort : processor
-					.getInputProcessorPort())
-				processorInputProcessorPort(inputProcessorPort
-						.getInputProcessorPort());
-			for (OutputProcessorPort outputProcessorPort : processor
-					.getOutputProcessorPort())
-				processorOutputProcessorPort(outputProcessorPort
-						.getOutputProcessorPort());
-			if (processor.getDispatchStack() != null)
-			    // Legacy wfbundle
-				parseDispatchStack(processor.getDispatchStack()
-						.getDispatchStack());
-			if (processor.getIterationStrategyStack() != null)
-				parseIterationStrategyStack(processor
-						.getIterationStrategyStack()
-						.getIterationStrategyStack());
-		} finally {
-			getParserState().pop();
-		}
-	}
-
-	protected void parseProductOf(ProductOf productOf) throws ReaderException {
-		if (productOf == null)
-			return;
-		parseCrossDotOrPortNodeList(productOf
-				.getCrossProductOrDotProductOrPortNode());
-	}
-
-	protected void parseWorkflow(
-			org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow, URI wfUri)
-			throws ReaderException {
-		Workflow wf = new Workflow();
-		wf.setParent(getParserState().getCurrent(WorkflowBundle.class));
-
-		if (workflow.getAbout() != null)
-			mapBean(getParserState().getCurrentBase().resolve(
-					workflow.getAbout()), wf);
-			// TODO: Compare resolved URI with desired wfUri
-		else
-			mapBean(wfUri, wf);
-
-		getParserState().push(wf);
-		try {
-			if (workflow.getName() != null)
-				wf.setName(workflow.getName());
-			if (workflow.getWorkflowIdentifier() != null
-					&& workflow.getWorkflowIdentifier().getResource() != null)
-				wf.setIdentifier(getParserState().getCurrentBase().resolve(
-						workflow.getWorkflowIdentifier().getResource()));
-
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.InputWorkflowPort inputWorkflowPort : workflow
-					.getInputWorkflowPort())
-				parseInputWorkflowPort(inputWorkflowPort.getInputWorkflowPort());
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.OutputWorkflowPort outputWorkflowPort : workflow
-					.getOutputWorkflowPort())
-				parseOutputWorkflowPort(outputWorkflowPort
-						.getOutputWorkflowPort());
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow.Processor processor : workflow
-					.getProcessor())
-				parseProcessor(processor.getProcessor());
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.DataLinkEntry dataLinkEntry : workflow
-					.getDatalink())
-				parseDataLink(dataLinkEntry.getDataLink());
-			for (org.apache.taverna.scufl2.rdfxml.jaxb.Control c : workflow
-					.getControl())
-				parseControlLink(c.getBlocking());
-		} finally {
-			getParserState().pop();
-		}
-	}
-
-	protected void processorInputProcessorPort(
-			org.apache.taverna.scufl2.rdfxml.jaxb.InputProcessorPort original) {
-		org.apache.taverna.scufl2.api.port.InputProcessorPort port = new org.apache.taverna.scufl2.api.port.InputProcessorPort();
-		port.setName(original.getName());
-		if (original.getPortDepth() != null)
-			port.setDepth(original.getPortDepth().getValue());
-		port.setParent(getParserState().getCurrent(Processor.class));
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				port);
-	}
-
-	protected void processorOutputProcessorPort(
-			org.apache.taverna.scufl2.rdfxml.jaxb.OutputProcessorPort original) {
-		org.apache.taverna.scufl2.api.port.OutputProcessorPort port = new org.apache.taverna.scufl2.api.port.OutputProcessorPort();
-		port.setName(original.getName());
-		if (original.getPortDepth() != null)
-			port.setDepth(original.getPortDepth().getValue());
-		if (original.getGranularPortDepth() != null)
-			port.setGranularDepth(original.getGranularPortDepth().getValue());
-		port.setParent(getParserState().getCurrent(
-				org.apache.taverna.scufl2.api.core.Processor.class));
-		mapBean(getParserState().getCurrentBase().resolve(original.getAbout()),
-				port);
-	}
-
-	@SuppressWarnings("unchecked")
-	protected void readWorkflow(URI wfUri, URI source) throws ReaderException,
-			IOException {
-		if (source.isAbsolute())
-			throw new ReaderException("Can't read external workflow source "
-					+ source);
-
-		InputStream bundleStream = getParserState().getUcfPackage()
-				.getResourceAsInputStream(source.getRawPath());
-
-		JAXBElement<WorkflowDocument> elem;
-		try {
-			elem = (JAXBElement<WorkflowDocument>) unmarshaller
-					.unmarshal(bundleStream);
-		} catch (JAXBException e) {
-			throw new ReaderException(
-					"Can't parse workflow document " + source, e);
-		}
-
-		URI base = getParserState().getLocation().resolve(source);
-		if (elem.getValue().getBase() != null)
-			base = base.resolve(elem.getValue().getBase());
-
-		if (elem.getValue().getAny().size() != 1)
-			throw new ReaderException("Expects only a <Workflow> element in "
-					+ source);
-		org.apache.taverna.scufl2.rdfxml.jaxb.Workflow workflow = (org.apache.taverna.scufl2.rdfxml.jaxb.Workflow) elem
-				.getValue().getAny().get(0);
-
-		getParserState().setCurrentBase(base);
-		parseWorkflow(workflow, wfUri);
-	}
-}


[45/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi_interproscan_newservices_900329.t2flow
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi_interproscan_newservices_900329.t2flow b/taverna-databundle/src/test/resources/full-example/ebi_interproscan_newservices_900329.t2flow
deleted file mode 100644
index ebb8d7e..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi_interproscan_newservices_900329.t2flow
+++ /dev/null
@@ -1,742 +0,0 @@
-<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="d129e8d7-9c02-4dae-9f8f-aeede867556a" role="top"><name>EBI_InterproScan_NewServices</name><inputPorts><port><name>sequence</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>a protein sequence in Fasta format</text>
-      </annotationBean>
-      <date>2011-01-17 16:11:39.546 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue">
-        <text>&gt;sp|Q9BTV4|TMM43_HUMAN Transmembrane protein 43 OS=Homo sapiens GN=TMEM43 PE=1 SV=1
-MAANYSSTSTRREHVKVKTSSQPGFLERLSETSGGMFVGLMAFLLSFYLIFTNEGRALKT
-ATSLAEGLSLVVSPDSIHSVAPENEGRLVHIIGALRTSKLLSDPNYGVHLPAVKLRRHVE
-MYQWVETEESREYTEDGQVKKETRYSYNTEWRSEIINSKNFDREIGHKNPSAMAVESFMA
-TAPFVQIGRFFLSSGLIDKVDNFKSLSLSKLEDPHVDIIRRGDFFYHSENPKYPEVGDLR
-VSFSYAGLSGDDPDLGPAHVVTVIARQRGDQLVPFSTKSGDTLLLLHHGDFSAEEVFHRE
-LRSNSMKTWGLRAAGWMAMFMGLNLMTRILYTLVDWFPVFRDLVNIGLKAFAFCVATSLT
-LLTVAAGWLFYRPLWALLIAGLALVPILVARTRVPAKKLE</text>
-      </annotationBean>
-      <date>2011-01-17 16:11:53.0 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>email</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>Your email address</text>
-      </annotationBean>
-      <date>2011-01-17 16:11:24.515 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>Workflow16_getStatus_output_status</name><annotations /></port><port><name>getResult_output_output</name><annotations /></port><port><name>Graphical_output</name><annotations /></port><port><name>getResult_3_output_output</name><annotations /></port></outputPorts><processors><processor><name>run</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="parameters" to="parameters" /></inputMap><outputMap><map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.
 taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.ebi.ac.uk/Tools/services/soap/iprscan?wsdl</wsdl>
-  <operation>run</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>run_input</name><inputPorts><port><name>parameters</name><depth>0</depth></port><port><name>email</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.
 activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap><map from="email" to="email" /><map from="parameters" to="parameters" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>email</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>title</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>parameters</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="run" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}run"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="email" qname="&amp;gt;run&amp;gt;email" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="title" qname="&amp;gt;run&amp;gt;title" /&gt;&lt;s:complextype optional="false" unbounded="false" typename="InputParameters" name="parameters" qname="&amp;gt;run&amp;gt;parameters"&gt;&lt;s:elements&gt;&lt;s:basetype optional="true" unbounded="false" typename="boolean" name="nocrc" qname="InputParameters&amp;gt;nocrc" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="boolean" name="goterms" qname="InputParameters&amp;gt;goterms" /&gt;&lt;s:arraytype optional="true" unbounded="false" wrapped="true" typename="ArrayOfString" name="appl" qnam
 e="InputParameters&amp;gt;appl"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sequence" qname="InputParameters&amp;gt;sequence" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /><port name="email" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>run_input_2</name><inputPorts><port><name>sequence</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.
 xmlsplitter.XMLInputSplitterActivity</class><inputMap><map from="sequence" to="sequence" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>nocrc</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>goterms</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>appl</name>
-      <depth>1</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">l('text/plain')</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>sequence</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="InputParameters" name="parameters" qname="&amp;gt;run&amp;gt;parameters"&gt;&lt;s:elements&gt;&lt;s:basetype optional="true" unbounded="false" typename="boolean" name="nocrc" qname="InputParameters&amp;gt;nocrc" /&gt;&lt;s:basetype optional="true" unbounded="false" typename="boolean" name="goterms" qname="InputParameters&amp;gt;goterms" /&gt;&lt;s:arraytype optional="true" unbounded="false" wrapped="true" typename="ArrayOfString" name="appl" qname="InputParameters&amp;gt;appl"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;s:basetype optional="true" unbounded="false" typename="string" name="sequence" qname="InputParameters&amp;gt;sequence" /&gt;&lt;/s:elements&gt;&lt;/s:complexty
 pe&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="sequence" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>run_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts><port><name>jobId</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity<
 /class><inputMap><map from="input" to="input" /></inputMap><outputMap><map from="jobId" to="jobId" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>jobId</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="runResponse" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}runResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="jobId" qname="&amp;gt;runResponse&amp;gt;jobId" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Status</name><inputPorts><port><name>JobID</name><depth>0</depth></port></inputPorts><outputPorts><port><name>getStatus_output_status</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>dataflow-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</c
 lass><inputMap><map from="JobID" to="JobID" /></inputMap><outputMap><map from="getStatus_output_status" to="getStatus_output_status" /></outputMap><configBean encoding="dataflow"><dataflow ref="abf5536b-524b-440c-8fc2-6b50a73aa423" /></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Loop</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration xmlns="">
-  <conditionXML>&lt;activity xmlns="http://taverna.sf.net/2008/xml/t2flow"&gt;&lt;raven&gt;&lt;group&gt;net.sf.taverna.t2.activities&lt;/group&gt;&lt;artifact&gt;beanshell-activity&lt;/artifact&gt;&lt;version&gt;1.2&lt;/version&gt;&lt;/raven&gt;&lt;class&gt;net.sf.taverna.t2.activities.beanshell.BeanshellActivity&lt;/class&gt;&lt;inputMap /&gt;&lt;outputMap /&gt;&lt;configBean encoding="xstream"&gt;&lt;net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns=""&gt;&#xD;
-  &lt;script&gt;loop = "" + getStatus_output_status.equals("RUNNING");&#xD;
-if ("true".matches(loop)) {&#xD;
-   Thread.sleep(500);&#xD;
-}&lt;/script&gt;&#xD;
-  &lt;dependencies /&gt;&#xD;
-  &lt;classLoaderSharing&gt;workflow&lt;/classLoaderSharing&gt;&#xD;
-  &lt;localDependencies /&gt;&#xD;
-  &lt;artifactDependencies /&gt;&#xD;
-  &lt;inputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-      &lt;translatedElementType&gt;java.lang.String&lt;/translatedElementType&gt;&#xD;
-      &lt;allowsLiteralValues&gt;true&lt;/allowsLiteralValues&gt;&#xD;
-      &lt;name&gt;getStatus_output_status&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean&gt;&#xD;
-  &lt;/inputs&gt;&#xD;
-  &lt;outputs&gt;&#xD;
-    &lt;net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-      &lt;granularDepth&gt;0&lt;/granularDepth&gt;&#xD;
-      &lt;name&gt;loop&lt;/name&gt;&#xD;
-      &lt;depth&gt;0&lt;/depth&gt;&#xD;
-    &lt;/net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean&gt;&#xD;
-  &lt;/outputs&gt;&#xD;
-&lt;/net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean&gt;&lt;/configBean&gt;&lt;annotations /&gt;&lt;/activity&gt;</conditionXML>
-  <runFirst>true</runFirst>
-  <properties>
-    <property name="compareValue" value="RUNNING" />
-    <property name="comparePort" value="getStatus_output_status" />
-    <property name="delay" value="0.5" />
-    <property name="comparison" value="NotEqualTo" />
-    <property name="isFeedBack" value="false" />
-  </properties>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="JobID" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><m
 ap from="parameters" to="parameters" /></inputMap><outputMap><map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.ebi.ac.uk/Tools/services/soap/iprscan?wsdl</wsdl>
-  <operation>getResult</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_graphic</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class
 ><inputMap><map from="parameters" to="parameters" /></inputMap><outputMap><map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.ebi.ac.uk/Tools/services/soap/iprscan?wsdl</wsdl>
-  <operation>getResult</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_input</name><inputPorts><port><name>jobId</name><depth>0</depth></port><port><name>type</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.
 activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap><map from="jobId" to="jobId" /><map from="type" to="type" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>jobId</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>type</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>parameters</name>
-      <depth>1</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getResult" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}getResult"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="jobId" qname="&amp;gt;getResult&amp;gt;jobId" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="type" qname="&amp;gt;getResult&amp;gt;type" /&gt;&lt;s:arraytype optional="true" unbounded="false" wrapped="false" typename="wsRawOutputParameters" name="parameters" qname="&amp;gt;getResult&amp;gt;parameters"&gt;&lt;s:elementtype&gt;&lt;s:complextype optional="false" unbounded="false" typename="wsRawOutputParameter" name="" qname="{http://soap.jdispatcher.ebi.ac.uk}wsRawOutputParameter"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="name" qname="wsRawOutputParameter&amp;gt;name" /&gt;&
 lt;s:arraytype optional="false" unbounded="false" wrapped="true" typename="ArrayOfString" name="value" qname="wsRawOutputParameter&amp;gt;value"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="jobId" depth="0" /><port name="type" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_graphic_input</name><inputPorts><port><name>jobId</name><depth>0</depth></port><port><name>type</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version>
 </raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap><map from="jobId" to="jobId" /><map from="type" to="type" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>jobId</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>type</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>parameters</name>
-      <depth>1</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getResult" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}getResult"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="jobId" qname="&amp;gt;getResult&amp;gt;jobId" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="type" qname="&amp;gt;getResult&amp;gt;type" /&gt;&lt;s:arraytype optional="true" unbounded="false" wrapped="false" typename="wsRawOutputParameters" name="parameters" qname="&amp;gt;getResult&amp;gt;parameters"&gt;&lt;s:elementtype&gt;&lt;s:complextype optional="false" unbounded="false" typename="wsRawOutputParameter" name="" qname="{http://soap.jdispatcher.ebi.ac.uk}wsRawOutputParameter"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="name" qname="wsRawOutputParameter&amp;gt;name" /&gt;&
 lt;s:arraytype optional="false" unbounded="false" wrapped="true" typename="ArrayOfString" name="value" qname="wsRawOutputParameter&amp;gt;value"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="jobId" depth="0" /><port name="type" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmls
 plitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'application/octet-stream'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getResultResponse" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}getResultResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="base64Binary" name="output" qname="&amp;gt;getResultResponse&amp;gt;output" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_graphic_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplit
 terActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'application/octet-stream'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getResultResponse" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}getResultResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="base64Binary" name="output" qname="&amp;gt;getResultResponse&amp;gt;output" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>text</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /><
 /outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>txt</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>visual_png</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf
 .taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>visual-png</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>getResult_xml</name><inputPorts><port><name>parameters</name><depth>0</depth></port></inputPorts><outputPorts><port><name>parameters</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.WSDLActivity</class><inputMap><map from="parameters" to="parameters" /></inputMap><
 outputMap><map from="parameters" to="parameters" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean xmlns="">
-  <wsdl>http://www.ebi.ac.uk/Tools/services/soap/iprscan?wsdl</wsdl>
-  <operation>getResult</operation>
-</net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="parameters" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_xml_input</name><inputPorts><port><name>jobId</name><depth>0</depth></port><port><name>type</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna
 .t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity</class><inputMap><map from="jobId" to="jobId" /><map from="type" to="type" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>jobId</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>type</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/plain'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>parameters</name>
-      <depth>1</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getResult" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}getResult"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="jobId" qname="&amp;gt;getResult&amp;gt;jobId" /&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="type" qname="&amp;gt;getResult&amp;gt;type" /&gt;&lt;s:arraytype optional="true" unbounded="false" wrapped="false" typename="wsRawOutputParameters" name="parameters" qname="&amp;gt;getResult&amp;gt;parameters"&gt;&lt;s:elementtype&gt;&lt;s:complextype optional="false" unbounded="false" typename="wsRawOutputParameter" name="" qname="{http://soap.jdispatcher.ebi.ac.uk}wsRawOutputParameter"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="name" qname="wsRawOutputParameter&amp;gt;name" /&gt;&
 lt;s:arraytype optional="false" unbounded="false" wrapped="true" typename="ArrayOfString" name="value" qname="wsRawOutputParameter&amp;gt;value"&gt;&lt;s:elementtype&gt;&lt;s:basetype optional="false" unbounded="false" typename="string" name="" qname="{http://www.w3.org/2001/XMLSchema}string" /&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:elementtype&gt;&lt;/s:arraytype&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="jobId" depth="0" /><port name="type" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>getResult_xml_output</name><inputPorts><port><name>input</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>wsdl-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.wsdl.
 xmlsplitter.XMLOutputSplitterActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean xmlns="">
-  <inputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-      <name>input</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'text/xml'</element>
-      </mimeTypes>
-      <handledReferenceSchemes />
-      <translatedElementType>java.lang.String</translatedElementType>
-      <allowsLiteralValues>false</allowsLiteralValues>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
-  </inputs>
-  <outputs>
-    <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-      <name>output</name>
-      <depth>0</depth>
-      <mimeTypes class="java.util.Collections$SingletonList">
-        <element class="string">'application/octet-stream'</element>
-      </mimeTypes>
-      <granularDepth>0</granularDepth>
-    </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
-  </outputs>
-  <wrappedTypeXML>&lt;s:extensions xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha"&gt;&lt;s:complextype optional="false" unbounded="false" typename="getResultResponse" name="parameters" qname="{http://soap.jdispatcher.ebi.ac.uk}getResultResponse"&gt;&lt;s:elements&gt;&lt;s:basetype optional="false" unbounded="false" typename="base64Binary" name="output" qname="&amp;gt;getResultResponse&amp;gt;output" /&gt;&lt;/s:elements&gt;&lt;/s:complextype&gt;&lt;/s:extensions&gt;</wrappedTypeXML>
-</net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="input" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>xml</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></
 outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
-  <value>xml</value>
-</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
-  <maxJobs>1</maxJobs>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="
 ">
-  <backoffFactor>1.0</backoffFactor>
-  <initialDelay>1000</initialDelay>
-  <maxDelay>5000</maxDelay>
-  <maxRetries>0</maxRetries>
-</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions><condition control="Status" target="getResult_input" /><condition control="Status" target="getResult_xml_input" /><condition control="Status" target="getResult_graphic_input" /></conditions><datalinks><datalink><sink type="processor"><processor>run</processor><port>parameters</port></sink><source type="processor"><processor>run_input</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>run_input</processor><port>parameters</port><
 /sink><source type="processor"><processor>run_input_2</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>run_input</processor><port>email</port></sink><source type="dataflow"><port>email</port></source></datalink><datalink><sink type="processor"><processor>run_input_2</processor><port>sequence</port></sink><source type="dataflow"><port>sequence</port></source></datalink><datalink><sink type="processor"><processor>run_output</processor><port>input</port></sink><source type="processor"><processor>run</processor><port>parameters</port></source></datalink><datalink><sink type="processor"><processor>Status</processor><port>JobID</port></sink><source type="processor"><processor>run_output</processor><port>jobId</port></source></datalink><datalink><sink type="processor"><processor>getResult</processor><port>parameters</port></sink><source type="processor"><processor>getResult_input</processor><port>output</port></source></datalink><datalink><sink 
 type="processor"><processor>getResult_graphic</processor><port>parameters</port></sink><source type="processor"><processor>getResult_graphic_input</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>getResult_input</processor><port>jobId</port></sink><source type="processor"><processor>run_output</processor><port>jobId</port></source></datalink><datalink><sink type="processor"><processor>getResult_input</processor><port>type</port></sink><source type="processor"><processor>text</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>getResult_graphic_input</processor><port>jobId</port></sink><source type="processor"><processor>run_output</processor><port>jobId</port></source></datalink><datalink><sink type="processor"><processor>getResult_graphic_input</processor><port>type</port></sink><source type="processor"><processor>visual_png</processor><port>value</port></source></datalink><datalink><sink type="pr
 ocessor"><processor>getResult_output</processor><port>input</port></sink><source type="processor"><processor>getResult</processor><port>parameters</port></source></datalink><datalink><sink type="processor"><processor>getResult_graphic_output</processor><port>input</port></sink><source type="processor"><processor>getResult_graphic</processor><port>parameters</port></source></datalink><datalink><sink type="processor"><processor>getResult_xml</processor><port>parameters</port></sink><source type="processor"><processor>getResult_xml_input</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>getResult_xml_input</processor><port>jobId</port></sink><source type="processor"><processor>run_output</processor><port>jobId</port></source></datalink><datalink><sink type="processor"><processor>getResult_xml_input</processor><port>type</port></sink><source type="processor"><processor>xml</processor><port>value</port></source></datalink><datalink><sink type="
 processor"><processor>getResult_xml_output</processor><port>input</port></sink><source type="processor"><processor>getResult_xml</processor><port>parameters</port></source></datalink><datalink><sink type="dataflow"><port>Workflow16_getStatus_output_status</port></sink><source type="processor"><processor>Status</processor><port>getStatus_output_status</port></source></datalink><datalink><sink type="dataflow"><port>getResult_output_output</port></sink><source type="processor"><processor>getResult_output</processor><port>output</port></source></datalink><datalink><sink type="dataflow"><port>Graphical_output</port></sink><source type="processor"><processor>getResult_graphic_output</processor><port>output</port></source></datalink><datalink><sink type="dataflow"><port>getResult_3_output_output</port></sink><source type="processor"><processor>getResult_xml_output</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.tav
 erna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>47e9f16e-d112-410b-bf19-fffe21d0fe21</identification>
-      </annotationBean>
-      <date>2011-01-11 16:19:37.188 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>d129e8d7-9c02-4dae-9f8f-aeede867556a</identification>
-      </annotationBean>
-      <date>2011-01-17 16:11:55.859 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>54f1b276-0c0e-4f7d-8ae3-76fb87e19945</identification>
-      </annotationBean>
-      <date>2011-01-11 15:58:01.564 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>0478ad4a-a2dc-4072-8285-aa54d9184127</identification>
-      </annotationBean>
-      <date>2011-01-11 16:12:41.662 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>e39ab8fa-dbc3-48a2-a89e-a2b41136075e</identification>
-      </annotationBean>
-      <date>2011-01-17 16:03:05.158 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>1dc70f90-beba-4f0e-ad5d-94c5153eb3ff</identification>
-      </annotationBean>
-      <date>2011-01-17 15:50:10.308 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>3259a201-7e3a-425c-8054-fd9b97aaefc4</identification>
-      </annotationBean>
-      <date>2011-01-17 15:56:14.726 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>45c39b60-4270-4754-a4ed-f0992cce7922</identification>
-      </annotationBean>
-      <date>2011-01-11 16:15:28.410 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>ad9308ed-9331-454a-9023-25be4752a631</identification>
-      </annotationBean>
-      <date>2011-01-11 15:52:47.646 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
-        <identification>998c32b7-5e14-4f38-8de4-817bb4933d53</identification>
-      </annotationBean>
-      <date>2011-01-11 15:50:55.22 GMT</date>
-      <creators />
-      <curationEventList />
-    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-  </annotationAssertions>
-</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
-  <annotationAssertions>
-    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
-      <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
-        <text>This workflow performs an interproscan at the EBI on sequences provided as input. The output is provided as text, xml or png.
-This workflow uses the new EBI services, which are asynchronous and require looping over the nested workflow (Status) until the workflow h

<TRUNCATED>

[31/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/DotProduct.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/DotProduct.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/DotProduct.java
deleted file mode 100644
index 486908b..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/DotProduct.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-
-
-/**
- * @author Stian Soiland-Reyes
- */
-@SuppressWarnings("serial")
-public class DotProduct extends ArrayList<IterationStrategyNode> implements
-		IterationStrategyTopNode {
-	private IterationStrategyParent parent;
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this))
-			for (IterationStrategyNode strategy : this)
-				if (!strategy.accept(visitor))
-					break;
-		return visitor.visitLeave(this);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return o instanceof DotProduct && super.equals(o);
-	}
-
-	@Override
-	public IterationStrategyParent getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(IterationStrategyParent newParent) {
-		if (parent == newParent)
-			return;
-
-		if (parent != null) {
-			// Remove from old parent
-			if (parent instanceof IterationStrategyStack) {
-				IterationStrategyStack stack = (IterationStrategyStack) parent;
-				stack.remove(this);
-			} else if (parent instanceof DotProduct
-					|| parent instanceof CrossProduct) {
-				@SuppressWarnings("unchecked")
-				List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-				parentList.remove(this);
-			} else
-				throw new IllegalArgumentException(
-						"Old parent must be a IterationStrategy, DotProduct or CrossProduct: "
-								+ parent);
-		}
-
-		parent = newParent;
-		if (parent instanceof IterationStrategyStack) {
-			IterationStrategyStack stack = (IterationStrategyStack) parent;
-			if (!stack.contains(this))
-				stack.add(this);
-		} else if (parent instanceof DotProduct
-				|| parent instanceof CrossProduct) {
-			@SuppressWarnings("unchecked")
-			List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-			if (!parentList.contains(this))
-				parentList.add(this);
-		} else
-			throw new IllegalArgumentException(
-					"Parent must be a IterationStrategy, DotProduct or CrossProduct: "
-							+ parent);
-	}
-
-	@Override
-	public WorkflowBean clone() {
-		return AbstractCloneable.cloneWorkflowBean(this);
-	}
-
-	@Override
-	public String toString() {
-		return getClass().getSimpleName() + super.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyNode.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyNode.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyNode.java
deleted file mode 100644
index 4fa1982..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyNode.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.Child;
-
-/**
- * @author Alan R Williams
- */
-public interface IterationStrategyNode extends
-		Child<IterationStrategyParent> {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyParent.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyParent.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyParent.java
deleted file mode 100644
index 8b38fe2..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyParent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-
-public interface IterationStrategyParent extends WorkflowBean {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyStack.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyStack.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyStack.java
deleted file mode 100644
index 3fe0ee1..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyStack.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-
-@SuppressWarnings("serial")
-public class IterationStrategyStack extends ArrayList<IterationStrategyTopNode>
-		implements List<IterationStrategyTopNode>, Child<Processor>,
-		IterationStrategyParent {
-	private Processor parent;
-
-	public IterationStrategyStack() {
-	}
-
-	public IterationStrategyStack(Processor parent) {
-		setParent(parent);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return o instanceof IterationStrategyStack && super.equals(o);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this))
-			for (IterationStrategyTopNode strategy : this)
-				if (!strategy.accept(visitor))
-					break;
-		return visitor.visitLeave(this);
-	}
-
-	@Override
-	public Processor getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Processor parent) {
-		if (this.parent == parent)
-			return;
-		if (this.parent != null
-				&& this.parent.getIterationStrategyStack() == this)
-			this.parent.setIterationStrategyStack(null);
-		this.parent = parent;
-		if (parent != null && parent.getIterationStrategyStack() != this)
-			parent.setIterationStrategyStack(this);
-	}
-
-	@Override
-	public WorkflowBean clone() {
-		return AbstractCloneable.cloneWorkflowBean(this);
-	}
-
-	@Override
-	public String toString() {
-		return getClass().getSimpleName() + " for " + getParent();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyTopNode.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyTopNode.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyTopNode.java
deleted file mode 100644
index ceb7d19..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/IterationStrategyTopNode.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.List;
-
-/**
- * @author Stian Soiland-Reyes
- */
-public interface IterationStrategyTopNode extends IterationStrategyNode,
-		List<IterationStrategyNode>, IterationStrategyParent {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/PortNode.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/PortNode.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/PortNode.java
deleted file mode 100644
index 12cf537..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/PortNode.java
+++ /dev/null
@@ -1,188 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-
-
-public class PortNode extends AbstractCloneable implements IterationStrategyNode {
-	private InputProcessorPort inputProcessorPort;
-
-	private IterationStrategyParent parent;
-	private Integer desiredDepth;
-
-	public PortNode() {
-	}
-
-	public PortNode(IterationStrategyParent parent,
-			InputProcessorPort inputProcessorPort) {
-		setParent(parent);
-		setInputProcessorPort(inputProcessorPort);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	public Integer getDesiredDepth() {
-		return desiredDepth;
-	}
-
-	public InputProcessorPort getInputProcessorPort() {
-		return inputProcessorPort;
-	}
-
-	@Override
-	public IterationStrategyParent getParent() {
-		return parent;
-	}
-
-	public void setDesiredDepth(Integer desiredDepth) {
-		this.desiredDepth = desiredDepth;
-	}
-
-	public void setInputProcessorPort(InputProcessorPort inputProcessorPort) {
-		this.inputProcessorPort = inputProcessorPort;
-	}
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result
-                + ((desiredDepth == null) ? 0 : desiredDepth.hashCode());
-        result = prime
-                * result
-                + ((inputProcessorPort == null) ? 0 : inputProcessorPort
-                        .hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (!(obj instanceof PortNode))
-            return false;
-        PortNode other = (PortNode) obj;
-        if (desiredDepth == null) {
-            if (other.desiredDepth != null)
-                return false;
-        } else if (!desiredDepth.equals(other.desiredDepth))
-            return false;
-        if (inputProcessorPort == null) {
-            if (other.inputProcessorPort != null)
-                return false;
-        } else if (!inputProcessorPort.equals(other.inputProcessorPort))
-            return false;
-        return true;
-    }
-
-	private static boolean saneParent(IterationStrategyParent node) {
-		return (node == null) || (node instanceof DotProduct)
-				|| (node instanceof CrossProduct);
-	}
-
-    @Override
-	public void setParent(IterationStrategyParent newParent) {
-		if (parent == newParent)
-			return;
-		if (!saneParent(newParent))
-			throw new IllegalArgumentException(
-					"PortNode parent must be a DotProduct or CrossProduct: "
-							+ parent);
-
-		if (parent != null) {
-			// Remove from old parent
-			if (!saneParent(parent))
-				throw new IllegalArgumentException(
-						"Old PortNode parent must be a DotProduct or CrossProduct: "
-								+ parent);
-			@SuppressWarnings("unchecked")
-			List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-			parentList.remove(this);
-		}
-
-		parent = newParent;
-		@SuppressWarnings("unchecked")
-		List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-		if (!parentList.contains(this))
-			parentList.add(this);
-	}
-	
-	@Override
-	public String toString() {
-		return getClass().getSimpleName()  + " for " + getInputProcessorPort();
-	}
-	
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		PortNode cloneNode = (PortNode)clone;
-		cloneNode.setDesiredDepth(getDesiredDepth());
-		cloneNode.setInputProcessorPort(cloning.cloneOrOriginal(getInputProcessorPort()));		
-	}
-
-	// Derived operations
-
-	/**
-	 * Get all the annotations that pertain to this port node.
-	 * 
-	 * @return The collection of annotations.
-	 * @see Scufl2Tools#annotationsFor(Child)
-	 */
-	public Collection<Annotation> getAnnotations() {
-		return getTools().annotationsFor(this);
-	}
-
-	/**
-	 * Get the URI of this port node.
-	 * 
-	 * @return The absolute URI.
-	 * @see URITools#uriForBean(WorkflowBean)
-	 */
-	public URI getURI() {
-		return getUriTools().uriForBean(this);
-	}
-
-	/**
-	 * Get the URI of this port node relative to another workflow element.
-	 * 
-	 * @return The relative URI.
-	 * @see URITools#relativeUriForBean(WorkflowBean,WorflowBean)
-	 */
-	public URI getRelativeURI(WorkflowBean relativeTo) {
-		return getUriTools().relativeUriForBean(this, relativeTo);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/package-info.java
deleted file mode 100644
index 02d2df8..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/iterationstrategy/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.taverna.scufl2.api.iterationstrategy;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/package-info.java
deleted file mode 100644
index f571661..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/package-info.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Scufl2 Workflow language API
- * <p>
- * A {@link org.apache.taverna.scufl2.api.container.WorkflowBundle} is
- * the main entry point for description of a workflow. It contains
- * several {@link org.apache.taverna.scufl2.api.core.Workflow Workflows}, one
- * of which is the
- * {@link org.apache.taverna.scufl2.api.container.WorkflowBundle#getMainWorkflow()}.
- * A workflow is configured for execution in a
- * {@link org.apache.taverna.scufl2.api.profiles.Profile Profile}, one of which is
- * the {@link org.apache.taverna.scufl2.api.container.WorkflowBundle#getMainProfile()}.
- * <p>
- * You can load and save WorkflowBundle instances using 
- * {@link org.apache.taverna.scufl2.api.io.WorkflowBundleIO} as long as the 
- * implementations from the modules scufl2-t2flow and scufl2-rdfxml are
- * discoverable the classpath or available as OSGi services, alternatively
- * implementations of {@link org.apache.taverna.scufl2.api.io.WorkflowBundleReader}
- * and {@link org.apache.taverna.scufl2.api.io.WorkflowBundleWriter} can be used independently.
- * <p>
- * Also see <a href="http://dev.mygrid.org.uk/wiki/display/developer/SCUFL2+API">SCUFL 2 API in myGrid wiki</a> and 
- * the <a href="https://github.com/myGrid/scufl2">scufl2 github projecT</a>.
- *  
- *  @author Stian Soiland-Reyes
- *  @author Alan Williams
- *  @author David Withers
- *  @author Paolo Missier
- */
-package org.apache.taverna.scufl2.api;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractDepthPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractDepthPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractDepthPort.java
deleted file mode 100644
index 196722b..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractDepthPort.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-
-/**
- * Abstract implementation of a <code>Port</code> that has a depth property.
- * <p>
- * The depth of a <code>Port </code> specifies whether the data is a list and
- * how deep lists are nested. A depth of 0 is a single element, depth 1 is a
- * list, depth 2 is a list of lists and so on.
- * 
- * @author Alan R Williams
- */
-public abstract class AbstractDepthPort extends AbstractNamed implements
-		DepthPort {
-	private Integer depth;
-
-	/**
-	 * Constructs an <code>AbstractDepthPort</code> with a random UUID as the
-	 * name.
-	 */
-	public AbstractDepthPort() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>AbstractDepthPort</code> with the specified name.
-	 * 
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public AbstractDepthPort(String name) {
-		super(name);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	/**
-	 * Returns the depth of the <code>Port</code>.
-	 * 
-	 * @return the depth of the <code>Port</code>
-	 */
-	@Override
-	public Integer getDepth() {
-		return depth;
-	}
-
-	/**
-	 * Sets the depth of the <code>Port</code>.
-	 * 
-	 * @param depth
-	 *            the depth of the <code>Port</code>
-	 */
-	@Override
-	public void setDepth(Integer depth) {
-		this.depth = depth;
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		AbstractDepthPort clonePort = (AbstractDepthPort) clone;
-		clonePort.setDepth(getDepth());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractGranularDepthPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractGranularDepthPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractGranularDepthPort.java
deleted file mode 100644
index eb95584..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/AbstractGranularDepthPort.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-
-/**
- * Abstract implementation of a <code>Port</code> that has a granular depth
- * property.
- * <p>
- * The granular depth of a <code>Port </code> specifies the granularity of the
- * depth at which data is emitted. The granular depth must be less than or equal
- * to the depth.
- * <p>
- * For example, if a <code>Port</code> has a depth of 1 and a granular depth of
- * 0 the <code>Port</code> will emit each element of the list separately.
- * 
- * @author Alan R Williams
- * 
- */
-public abstract class AbstractGranularDepthPort extends AbstractDepthPort
-		implements GranularDepthPort {
-	private Integer granularDepth;
-
-	/**
-	 * Constructs an <code>AbstractGranularDepthPort</code> with a random UUID
-	 * as the name.
-	 */
-	public AbstractGranularDepthPort() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>AbstractGranularDepthPort</code> with the specified
-	 * name.
-	 * 
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public AbstractGranularDepthPort(String name) {
-		super(name);
-	}
-
-	/**
-	 * Returns the granular depth of the <code>Port</code>.
-	 * 
-	 * @return the granular depth of the <code>Port</code>
-	 */
-	@Override
-	public Integer getGranularDepth() {
-		return granularDepth;
-	}
-
-	/**
-	 * Sets the granular depth of the <code>Port</code>.
-	 * 
-	 * @param granularDepth
-	 *            the granular depth of the <code>Port</code>
-	 */
-	@Override
-	public void setGranularDepth(Integer granularDepth) {
-		this.granularDepth = granularDepth;
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		AbstractGranularDepthPort clonePort = (AbstractGranularDepthPort) clone;
-		clonePort.setGranularDepth(getGranularDepth());
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ActivityPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ActivityPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ActivityPort.java
deleted file mode 100644
index 5f1d54f..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ActivityPort.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Child;
-
-/**
- * A <code>Port</code> that specifies the data consumed or produced by an
- * {@link Activity}.
- */
-public interface ActivityPort extends DepthPort, Child<Activity> {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/DepthPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/DepthPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/DepthPort.java
deleted file mode 100644
index 55a7bad..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/DepthPort.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-public interface DepthPort extends Port {
-	/**
-	 * Returns the depth of the <code>Port</code>.
-	 * 
-	 * @return the depth of the <code>Port</code>
-	 */
-	Integer getDepth();
-
-	/**
-	 * Sets the depth of the <code>Port</code>.
-	 * 
-	 * @param depth
-	 *            the depth of the <code>Port</code>
-	 */
-	void setDepth(Integer depth);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/GranularDepthPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/GranularDepthPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/GranularDepthPort.java
deleted file mode 100644
index 187fdbb..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/GranularDepthPort.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-public interface GranularDepthPort extends DepthPort {
-	/**
-	 * Returns the granular depth of the <code>Port</code>.
-	 * 
-	 * @return the granular depth of the <code>Port</code>
-	 */
-	Integer getGranularDepth();
-
-	/**
-	 * Sets the granular depth of the <code>Port</code>.
-	 * 
-	 * @param granularDepth
-	 *            the granular depth of the <code>Port</code>
-	 */
-	void setGranularDepth(Integer granularDepth);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputActivityPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputActivityPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputActivityPort.java
deleted file mode 100644
index a3825dd..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputActivityPort.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-
-/**
- * An <code>InputActivityPort</code> is a <Port> that inputs data to an
- * {@link Activity}.
- * 
- * @author Alan R Williams
- */
-public class InputActivityPort extends AbstractDepthPort implements
-		ActivityPort, InputPort {
-	private Activity parent;
-
-	/**
-	 * Constructs an <code>InputActivityPort</code> with a random UUID as the
-	 * name.
-	 */
-	public InputActivityPort() {
-	}
-
-	/**
-	 * Constructs an <code>InputPort</code> for the specified
-	 * <code>Activity</code> with the specified name.
-	 * <p>
-	 * The <code>InputPort</code> is added to the <code>Activity</code> (if the
-	 * <code>Activity</code> is not <code>null</code>).
-	 * 
-	 * @param activity
-	 *            the <code>Activity</code> to add this <code>Port</code> to.
-	 *            Can be <code>null</code>
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public InputActivityPort(Activity activity, String name) {
-		super(name);
-		setParent(activity);
-	}
-
-	@Override
-	public Activity getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Activity parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getInputPorts().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getInputPorts().add(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputPort.java
deleted file mode 100644
index 2988b5c..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputPort.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-/**
- * A <code>Port</code> that specifies inputs to a {@link org.apache.taverna.scufl2.api.core.Workflow
- * Workflow} component.
- */
-public interface InputPort extends DepthPort {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputProcessorPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputProcessorPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputProcessorPort.java
deleted file mode 100644
index 7a05a91..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputProcessorPort.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-
-/**
- * An <code>InputProcessorPort</code> is a <Port> that inputs data to a
- * {@link Processor}.
- * 
- * @author Alan R Williams
- */
-public class InputProcessorPort extends AbstractDepthPort implements
-		ReceiverPort, ProcessorPort, InputPort {
-	private Processor parent;
-
-	/**
-	 * Constructs an <code>InputProcessorPort</code> with a random UUID as the
-	 * name.
-	 */
-	public InputProcessorPort() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>InputProcessorPort</code> for the specified
-	 * <code>Processor</code> with the specified name.
-	 * <p>
-	 * The <code>InputPort</code> is added to the <code>Processor</code> (if the
-	 * <code>Processor</code> is not <code>null</code>).
-	 * 
-	 * @param parent
-	 *            the <code>Processor</code> to add this <code>Port</code> to.
-	 *            Can be <code>null</code>
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public InputProcessorPort(Processor parent, String name) {
-		super(name);
-		setParent(parent);
-	}
-
-	@Override
-	public Processor getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Processor parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getInputPorts().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getInputPorts().add(this);
-	}
-
-	// Derived operations, implemented via Scufl2Tools
-
-	/**
-	 * Get the datalinks leading to this port.
-	 * 
-	 * @return the collection of links.
-	 * @see Scufl2Tools#datalinksFrom(ReceiverPort)
-	 */
-	public List<DataLink> getDatalinksTo() {
-		return getTools().datalinksTo(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputWorkflowPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputWorkflowPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputWorkflowPort.java
deleted file mode 100644
index 4c84fb5..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/InputWorkflowPort.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-
-/**
- * An <code>InputWorkflowPort</code> is a <Port> that inputs data to a
- * {@link Workflow}.
- * 
- * @author Alan R Williams
- */
-public class InputWorkflowPort extends AbstractDepthPort implements SenderPort,
-		WorkflowPort, InputPort {
-	private Workflow parent;
-
-	/**
-	 * Constructs an <code>InputWorkflowPort</code> with a random UUID as the
-	 * name.
-	 */
-	public InputWorkflowPort() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>InputWorkflowPort</code> for the specified
-	 * <code>Workflow</code> with the specified name.
-	 * <p>
-	 * The <code>InputPort</code> is added to the <code>Workflow</code> (if the
-	 * <code>Workflow</code> is not <code>null</code>).
-	 * 
-	 * @param parent
-	 *            the <code>Workflow</code> to add this <code>Port</code> to.
-	 *            Can be <code>null</code>
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public InputWorkflowPort(Workflow parent, String name) {
-		super(name);
-		setParent(parent);
-	}
-
-	@Override
-	public Workflow getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Workflow parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getInputPorts().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getInputPorts().add(this);
-	}
-
-	// Derived operations, implemented via Scufl2Tools
-
-	/**
-	 * Get the datalinks leading from this port.
-	 * 
-	 * @return the collection of links.
-	 * @see Scufl2Tools#datalinksFrom(SenderPort)
-	 */
-	public List<DataLink> getDatalinksFrom() {
-		return getTools().datalinksFrom(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputActivityPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputActivityPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputActivityPort.java
deleted file mode 100644
index f146d5f..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputActivityPort.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * 
- */
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-
-/**
- * An <code>OutputActivityPort</code> is a <Port> that outputs data from an
- * {@link Activity}.
- * 
- * @author Alan R Williams
- */
-public class OutputActivityPort extends AbstractGranularDepthPort implements
-		ActivityPort, OutputPort, GranularDepthPort {
-	private Activity parent;
-
-	/**
-	 * Constructs an <code>OutputActivityPort</code> with a random UUID as the
-	 * name.
-	 */
-	public OutputActivityPort() {
-	}
-
-	/**
-	 * Constructs an <code>OutputPort</code> for the specified
-	 * <code>Activity</code> with the specified name.
-	 * <p>
-	 * The <code>OutputPort</code> is added to the <code>Activity</code> (if the
-	 * <code>Activity</code> is not <code>null</code>).
-	 * 
-	 * @param activity
-	 *            the <code>Activity</code> to add this <code>Port</code> to.
-	 *            Can be <code>null</code>
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public OutputActivityPort(Activity activity, String name) {
-		super(name);
-		setParent(activity);
-	}
-
-	@Override
-	public Activity getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Activity parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getOutputPorts().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getOutputPorts().add(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputPort.java
deleted file mode 100644
index 519b177..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputPort.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-/**
- * A <code>Port</code> that specifies outputs from a {@link org.apache.taverna.scufl2.api.core.Workflow
- * Workflow} component.
- */
-public interface OutputPort extends Port {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputProcessorPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputProcessorPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputProcessorPort.java
deleted file mode 100644
index f8e0d56..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputProcessorPort.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-
-/**
- * An <code>OutputProcessorPort</code> is a <Port> that outputs data from a
- * {@link Processor}.
- */
-public class OutputProcessorPort extends AbstractGranularDepthPort implements
-		SenderPort, ProcessorPort, OutputPort, GranularDepthPort {
-	private Processor parent;
-
-	/**
-	 * Constructs an <code>OutputProcessorPort</code> with a random UUID as the
-	 * name.
-	 */
-	public OutputProcessorPort() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>OutputProcessorPort</code> for the specified
-	 * <code>Processor</code> with the specified name.
-	 * <p>
-	 * The <code>OutputPort</code> is added to the <code>Processor</code> (if
-	 * the <code>Processor</code> is not <code>null</code>).
-	 * 
-	 * @param parent
-	 *            the <code>Processor</code> to add this <code>Port</code> to.
-	 *            Can be <code>null</code>
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public OutputProcessorPort(Processor parent, String name) {
-		super(name);
-		setParent(parent);
-	}
-
-	@Override
-	public Processor getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Processor parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getOutputPorts().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getOutputPorts().add(this);
-	}
-
-	// Derived operations, implemented via Scufl2Tools
-
-	/**
-	 * Get the datalinks leading from this port.
-	 * 
-	 * @return the collection of links.
-	 * @see Scufl2Tools#datalinksFrom(SenderPort)
-	 */
-	public List<DataLink> getDatalinksFrom() {
-		return getTools().datalinksFrom(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputWorkflowPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputWorkflowPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputWorkflowPort.java
deleted file mode 100644
index 2fa4902..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/OutputWorkflowPort.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-
-/**
- * An <code>OutputWorkflowPort</code> is a <Port> that outputs data from a
- * {@link Workflow}.
- * 
- * @author Alan R Williams
- */
-public class OutputWorkflowPort extends AbstractNamed implements ReceiverPort,
-		WorkflowPort, OutputPort {
-	private Workflow parent;
-
-	/**
-	 * Constructs an <code>OutputWorkflowPort</code> with a random UUID as the
-	 * name.
-	 */
-	public OutputWorkflowPort() {
-		super();
-	}
-
-	/**
-	 * Constructs an <code>OutputWorkflowPort</code> for the specified
-	 * <code>Workflow</code> with the specified name.
-	 * <p>
-	 * The <code>OutputPort</code> is added to the <code>Workflow</code> (if the
-	 * <code>Workflow</code> is not <code>null</code>).
-	 * 
-	 * @param parent
-	 *            the <code>Workflow</code> to add this <code>Port</code> to.
-	 *            Can be <code>null</code>
-	 * @param name
-	 *            the name of the <code>Port</code>. <strong>Must not</strong>
-	 *            be <code>null</code> or an empty String.
-	 */
-	public OutputWorkflowPort(Workflow parent, String name) {
-		super(name);
-		setParent(parent);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	@Override
-	public Workflow getParent() {
-		return parent;
-	}
-
-	@Override
-	public void setParent(Workflow parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getOutputPorts().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getOutputPorts().add(this);
-	}
-
-	// Derived operations, implemented via Scufl2Tools
-
-	/**
-	 * Get the datalinks leading to this port.
-	 * 
-	 * @return the collection of links.
-	 * @see Scufl2Tools#datalinksFrom(ReceiverPort)
-	 */
-	public List<DataLink> getDatalinksTo() {
-		return getTools().datalinksTo(this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/Port.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/Port.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/Port.java
deleted file mode 100644
index fda9af9..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/Port.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.Named;
-
-/**
- * A <code>Port</code> specifies the data consumed or produced by a
- * {@link org.apache.taverna.scufl2.api.core.Workflow Workflow} component.
- * 
- * @author Alan R Williams
- */
-public interface Port extends Named {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ProcessorPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ProcessorPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ProcessorPort.java
deleted file mode 100644
index cb9d3d0..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ProcessorPort.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-/**
- * A <code>Port</code> that specifies the data consumed or produced by an
- * {@link Processor}.
- *
- * @author Alan R Williams
- */
-public interface ProcessorPort extends Port, Child<Processor> {
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ReceiverPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ReceiverPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ReceiverPort.java
deleted file mode 100644
index 19d5c72..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/ReceiverPort.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-/**
- * A <code>Port</code> that receives data from a {@link DataLink} in a {@link Workflow}.
- * 
- * @see SenderPort
- * @see DataLink
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public interface ReceiverPort extends Port {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/SenderPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/SenderPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/SenderPort.java
deleted file mode 100644
index 6b9c1df..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/SenderPort.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-/**
- * A <code>Port</code> that sends data out to a {@link DataLink} in a {@link Workflow}.
- * 
- * @see DataLink
- * @see Workflow
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public interface SenderPort extends Port {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/WorkflowPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/WorkflowPort.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/WorkflowPort.java
deleted file mode 100644
index 5a16c70..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/WorkflowPort.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-/**
- * A <code>Port</code> that specifies the data consumed or produced by an
- * {@link Workflow}.
- *
- * @author Alan R Williams
- */
-public interface WorkflowPort extends Port, Child<Workflow> {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/package-info.java
deleted file mode 100644
index aef7b72..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/port/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.apache.taverna.scufl2.api.port;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorBinding.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorBinding.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorBinding.java
deleted file mode 100644
index 40afcc4..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorBinding.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package org.apache.taverna.scufl2.api.profiles;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-
-/**
- * A <code>ProcessorBinding</code> specifies that when enacting a
- * {@link org.apache.taverna.scufl2.api.core.Workflow Workflow}, if this particular
- * <code>ProcessorBinding</code> is used, then the boundActivity will be used to
- * implement the boundProcessor.
- * <p>
- * The <code>ProcessorBinding</code> specifies the sets of input and output port
- * bindings for the ports of the {@link Processor}. Note that there may not need
- * to be a binding for every <code>Processor</code> port, nor for every
- * {@link Activity} port. However, the ports must be of the bound
- * <code>Processor</code> and <code>Activity</code>.
- * <p>
- * It has not been decided if the binding must be unique for a given
- * <code>Processor</code> or <code>Activity</code> port within a
- * <code>ProcessorBinding</code>.
- * 
- * @author Alan R Williams
- */
-public class ProcessorBinding extends AbstractNamed implements Child<Profile> {
-	private Processor boundProcessor;
-	private Activity boundActivity;
-
-	private Set<ProcessorInputPortBinding> inputPortBindings = new HashSet<>();
-	private Set<ProcessorOutputPortBinding> outputPortBindings = new HashSet<>();
-
-	private Integer activityPosition;
-	private Profile parent;
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this)) {
-			List<Iterable<? extends WorkflowBean>> children = new ArrayList<>();
-			if (getInputPortBindings() != null)
-				children.add(getInputPortBindings());
-			if (getOutputPortBindings() != null)
-				children.add(getOutputPortBindings());
-			outer: for (Iterable<? extends WorkflowBean> it : children)
-				for (WorkflowBean bean : it)
-					if (!bean.accept(visitor))
-						break outer;
-		}
-		return visitor.visitLeave(this);
-	}
-
-	/**
-	 * Returns the relative position of the bound <code>Activity</code> within
-	 * the <code>Processor</code> (for the purpose of Failover).
-	 * <p>
-	 * <code>Activity</code>s will be ordered by this position. Gaps will be
-	 * ignored, overlapping <code>Activity</code> positions will have an
-	 * undetermined order.
-	 * 
-	 * @return the relative position of the bound <code>Activity</code> within
-	 *         the <code>Processor</code>
-	 */
-	public final Integer getActivityPosition() {
-		return activityPosition;
-	}
-
-	/**
-	 * Returns the <code>Activity</code> that will be used to enact the
-	 * <code>Processor</code> if this ProcessorBinding is used.
-	 * 
-	 * @return the <code>Activity</code> that will be used to enact the
-	 *         <code>Processor</code>
-	 */
-	public Activity getBoundActivity() {
-		return boundActivity;
-	}
-
-	/**
-	 * Returns the <code>Processor</code> for which a possible means of
-	 * enactment is specified.
-	 * 
-	 * @return the <code>Processor</code> for which a possible means of
-	 *         enactment is specified
-	 */
-	public Processor getBoundProcessor() {
-		return boundProcessor;
-	}
-
-	/**
-	 * Returns the bindings for individual input ports of the bound
-	 * <code>Processor</code>.
-	 * 
-	 * @return the bindings for individual input ports of the bound
-	 *         <code>Processor</code>
-	 */
-	public Set<ProcessorInputPortBinding> getInputPortBindings() {
-		return inputPortBindings;
-	}
-
-	/**
-	 * Returns the bindings for individual output ports of the bound
-	 * <code>Processor</code>.
-	 * 
-	 * @return the bindings for individual output ports of the bound
-	 *         <code>Processor</code>
-	 */
-	public Set<ProcessorOutputPortBinding> getOutputPortBindings() {
-		return outputPortBindings;
-	}
-
-	@Override
-	public Profile getParent() {
-		return parent;
-	}
-
-	/**
-	 * Sets the relative position of the bound <code>Activity</code> within the
-	 * processor (for the purpose of Failover).
-	 * <p>
-	 * <code>Activity</code>s will be ordered by this position. Gaps will be
-	 * ignored, overlapping <code>Activity</code> positions will have an
-	 * undetermined order.
-	 * 
-	 * @param activityPosition
-	 *            the relative position of the bound <code>Activity</code>
-	 *            within the <code>Processor</code>
-	 */
-	public void setActivityPosition(Integer activityPosition) {
-		this.activityPosition = activityPosition;
-	}
-
-	/**
-	 * Sets the Activity that will be used to enact the <code>Processor</code>
-	 * if this ProcessorBinding is used.
-	 * 
-	 * @param boundActivity
-	 *            the Activity that will be used to enact the
-	 *            <code>Processor</code>
-	 */
-	public void setBoundActivity(Activity boundActivity) {
-		this.boundActivity = boundActivity;
-	}
-
-	/**
-	 * Sets the <code>Processor</code> for which a possible means of enactment
-	 * is specified.
-	 * 
-	 * @param boundProcessor
-	 *            the <code>Processor</code> for which a possible means of
-	 *            enactment is specified
-	 */
-	public void setBoundProcessor(Processor boundProcessor) {
-		this.boundProcessor = boundProcessor;
-	}
-
-	/**
-	 * Sets the bindings for individual input ports of the bound
-	 * <code>Processor</code>.
-	 * 
-	 * @param inputPortBindings
-	 *            the bindings for individual input ports of the bound
-	 *            <code>Processor</code>
-	 */
-	public void setInputPortBindings(
-			Set<ProcessorInputPortBinding> inputPortBindings) {
-		this.inputPortBindings = inputPortBindings;
-	}
-
-	/**
-	 * Sets the bindings for individual output ports of the bound
-	 * <code>Processor</code>.
-	 * 
-	 * @param outputPortBindings
-	 *            the bindings for individual output ports of the bound
-	 *            <code>Processor</code>
-	 */
-	public void setOutputPortBindings(
-			Set<ProcessorOutputPortBinding> outputPortBindings) {
-		this.outputPortBindings = outputPortBindings;
-	}
-
-	@Override
-	public void setParent(Profile parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getProcessorBindings().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getProcessorBindings().add(this);
-	}
-
-	@Override
-	public String toString() {
-		return getClass().getSimpleName() + " " + getBoundProcessor() + " "
-				+ getBoundActivity();
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		ProcessorBinding cloneBinding = (ProcessorBinding) clone;
-		cloneBinding.setActivityPosition(getActivityPosition());
-		cloneBinding.setBoundProcessor(cloning
-				.cloneOrOriginal(getBoundProcessor()));
-		cloneBinding.setBoundActivity(cloning
-				.cloneOrOriginal(getBoundActivity()));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorInputPortBinding.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorInputPortBinding.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorInputPortBinding.java
deleted file mode 100644
index 5ff342f..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorInputPortBinding.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- *
- */
-package org.apache.taverna.scufl2.api.profiles;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-
-/**
- * A <code>ProcessorInputPortBinding</code> specifies the
- * <code>InputActivityPort</code> to which data passed into an
- * <code>InputProcessorPort</code> is sent.
- * 
- * Note that the <code>InputProcessorPort</code> must be a
- * {@link org.apache.taverna.scufl2.api.port.Port Port} of the
- * {@link org.apache.taverna.scufl2.api.core.Processor Processor} of the parent
- * <code>ProcessorBinding</code>. The <code>InputActivityPort</code> must be a
- * <code>Port</code> of the {@link org.apache.taverna.scufl2.api.activity.Activity
- * Activity} of the parent <code>ProcessorBinding</code>.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public class ProcessorInputPortBinding extends
-		ProcessorPortBinding<InputActivityPort, InputProcessorPort> {
-	private ProcessorBinding parent;
-
-	/**
-	 * Constructs a <code>ProcessorInputPortBinding</code> with no binding set.
-	 */
-	public ProcessorInputPortBinding() {
-	}
-
-	/**
-	 * Constructs a <code>ProcessorInputPortBinding</code> for the specified
-	 * <code>ProcessorBinding</code>.
-	 * 
-	 * @param processorBinding
-	 *            the <code>ProcessorBinding</code> to add this
-	 *            <code>ProcessorInputPortBinding</code> to. Can be
-	 *            <code>null</code>
-	 * @param processorPort
-	 *            the bound <code>InputProcessorPort</code>. Can be
-	 *            <code>null</code>
-	 * @param activityPort
-	 *            the bound <code>InputActivityPort</code>. Can be
-	 *            <code>null</code>
-	 */
-	public ProcessorInputPortBinding(ProcessorBinding processorBinding,
-			InputProcessorPort processorPort, InputActivityPort activityPort) {
-		setParent(processorBinding);
-		setBoundProcessorPort(processorPort);
-		setBoundActivityPort(activityPort);
-	}
-
-	/**
-	 * Returns the <code>InputActivityPort</code> to which data is actually sent
-	 * when passed to the bound <code>InputProcessorPort</code>.
-	 * 
-	 * @return the <code>InputActivityPort</code> to which data is actually sent
-	 *         when passed to the bound <code>InputProcessorPort</code>
-	 */
-	@Override
-	public InputActivityPort getBoundActivityPort() {
-		return super.getBoundActivityPort();
-	}
-
-	/**
-	 * Returns the <code>InputProcessorPort</code> that the binding is for.
-	 * 
-	 * @return the <code>InputProcessorPort</code> that the binding is for
-	 */
-	@Override
-	public InputProcessorPort getBoundProcessorPort() {
-		return super.getBoundProcessorPort();
-	}
-
-	@Override
-	public ProcessorBinding getParent() {
-		return parent;
-	}
-
-	/**
-	 * Sets the <code>InputActivityPort</code> to which data is actually sent
-	 * when passed to the bound <code>InputProcessorPort</code>.
-	 * 
-	 * @param boundActivityPort
-	 *            the <code>InputActivityPort</code> to which data is actually
-	 *            sent when passed to the bound <code>InputProcessorPort</code>
-	 */
-	@Override
-	public void setBoundActivityPort(InputActivityPort boundActivityPort) {
-		super.setBoundActivityPort(boundActivityPort);
-	}
-
-	/**
-	 * Sets the InputProcessorPort that the binding is for.
-	 * 
-	 * @param boundProcessorPort
-	 *            the InputProcessorPort that the binding is for
-	 */
-	@Override
-	public void setBoundProcessorPort(InputProcessorPort boundProcessorPort) {
-		super.setBoundProcessorPort(boundProcessorPort);
-	}
-
-	@Override
-	public void setParent(ProcessorBinding parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getInputPortBindings().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getInputPortBindings().add(this);
-	}
-
-	@Override
-	public String toString() {
-		return getBoundProcessorPort() + "->" + getBoundActivityPort();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorOutputPortBinding.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorOutputPortBinding.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorOutputPortBinding.java
deleted file mode 100644
index ce879e9..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/profiles/ProcessorOutputPortBinding.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- *
- */
-package org.apache.taverna.scufl2.api.profiles;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-
-/**
- * A <code>ProcessorOutputPortBinding</code> specifies the
- * <code>OutputActivityPort</code> from which data is received for an
- * <code>OutputProcessorPort</code>.
- * 
- * Note that the <code>OutputProcessorPort</code> must be a
- * {@link org.apache.taverna.scufl2.api.port.Port Port} of the
- * {@link org.apache.taverna.scufl2.api.core.Processor Processor} of the parent
- * <code>ProcessorBinding</code>. The <code>OutputActivityPort</code> must be a
- * <code>Port</code> of the {@link org.apache.taverna.scufl2.api.activity.Activity
- * Activity} of the parent <code>ProcessorBinding</code>.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public class ProcessorOutputPortBinding extends
-		ProcessorPortBinding<OutputActivityPort, OutputProcessorPort> {
-	private ProcessorBinding parent;
-
-	/**
-	 * Constructs a <code>ProcessorOutputPortBinding</code> with no binding set.
-	 */
-	public ProcessorOutputPortBinding() {
-	}
-
-	/**
-	 * Constructs a <code>ProcessorOutputPortBinding</code> for the specified
-	 * <code>ProcessorBinding</code>.
-	 * 
-	 * @param processorBinding
-	 *            the <code>ProcessorBinding</code> to add this
-	 *            <code>ProcessorOutputPortBinding</code> to. Can be
-	 *            <code>null</code>
-	 * @param activityPort
-	 *            the bound <code>OutputActivityPort</code>. Can be
-	 *            <code>null</code>
-	 * @param processorPort
-	 *            the bound <code>OutputProcessorPort</code>. Can be
-	 *            <code>null</code>
-	 */
-	public ProcessorOutputPortBinding(ProcessorBinding processorBinding,
-			OutputActivityPort activityPort, OutputProcessorPort processorPort) {
-		setParent(processorBinding);
-		setBoundActivityPort(activityPort);
-		setBoundProcessorPort(processorPort);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	/**
-	 * Returns the <code>OutputActivityPort</code> from which data is received
-	 * for the bound <code>OutputProcessorPort</code>.
-	 * 
-	 * @return the <code>OutputActivityPort</code> from which data is received
-	 *         for the bound <code>OutputProcessorPort</code>
-	 */
-	@Override
-	public OutputActivityPort getBoundActivityPort() {
-		return super.getBoundActivityPort();
-	}
-
-	/**
-	 * Returns the <code>OutputProcessorPort</code> that the binding is for.
-	 * 
-	 * @return the <code>OutputProcessorPort</code> that the binding is for
-	 */
-	@Override
-	public OutputProcessorPort getBoundProcessorPort() {
-		return super.getBoundProcessorPort();
-	}
-
-	@Override
-	public ProcessorBinding getParent() {
-		return parent;
-	}
-
-	/**
-	 * Sets the <code>OutputActivityPort</code> from which data is received for
-	 * the bound <code>OutputProcessorPort</code>.
-	 * 
-	 * @param boundActivityPort
-	 *            the <code>OutputActivityPort</code> from which data is
-	 *            received for the bound <code>OutputProcessorPort</code>
-	 */
-	@Override
-	public void setBoundActivityPort(OutputActivityPort boundActivityPort) {
-		super.setBoundActivityPort(boundActivityPort);
-	}
-
-	/**
-	 * Sets the <code>OutputProcessorPort</code> that the binding is for.
-	 * 
-	 * @param boundProcessorPort
-	 *            the <code>OutputProcessorPort</code> that the binding is for
-	 */
-	@Override
-	public void setBoundProcessorPort(OutputProcessorPort boundProcessorPort) {
-		super.setBoundProcessorPort(boundProcessorPort);
-	}
-
-	@Override
-	public void setParent(ProcessorBinding parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getOutputPortBindings().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getOutputPortBindings().add(this);
-	}
-
-	@Override
-	public String toString() {
-		return getBoundProcessorPort() + "<-" + getBoundActivityPort();
-	}
-}


[11/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestDispatchLayerParsing.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestDispatchLayerParsing.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestDispatchLayerParsing.java
deleted file mode 100644
index 5a935ca..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestDispatchLayerParsing.java
+++ /dev/null
@@ -1,217 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Before;
-import org.junit.Test;
-
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class TestDispatchLayerParsing {
-
-    private static final String LOOP = "loop";
-	private static final String INVOKE = "invoke";
-    private static final String RETRY = "retry";
-    private static final String FAILOVER = "failover";
-    private static final String ERRORBOUNCE = "errorbounce";
-    private static final String PARALLELIZE = "parallelize";
-    private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private T2FlowParser parser;
-	private WorkflowBundle wfBundle;
-	private Profile profile;
-	private Workflow workflow;
-	private NamedSet<Processor> processors;
-	
-	private String WF_DISPATCH_LAYERS = "/dispatchlayers.t2flow";
-	
-	@Before
-	public void readWorkflow() throws Exception {		
-		parser = new T2FlowParser();
-		parser.setValidating(true);
-		URL wfResource = getClass().getResource(WF_DISPATCH_LAYERS);
-		assertNotNull("Could not find workflow " + WF_DISPATCH_LAYERS,
-				wfResource);		
-		// parser.setStrict(true);
-		wfBundle = parser
-				.parseT2Flow(wfResource.openStream());
-		profile = wfBundle.getMainProfile();
-		workflow = wfBundle.getMainWorkflow();
-		processors = workflow.getProcessors();
-	}
-	
-
-	@Test
-	public void whichLayers() throws Exception {
-		Processor parallelise = processors.getByName("retries");
-		// As inspected in /scufl2-t2flow/src/test/resources/dispatchlayers-xsd.t2flow
-
-		//		List<String> expectedNames = Arrays.asList(PARALLELIZE, ERRORBOUNCE, FAILOVER, RETRY, INVOKE);
-		// NOTE: Only those with configuration are present
-		List<String> expectedNames = Arrays.asList(RETRY);
-        
-		Configuration config = scufl2Tools.configurationFor(parallelise, profile);
-		ObjectNode json = config.getJsonAsObjectNode();
-        for (String name : expectedNames) {
-		    assertTrue("Could not find config for dispatch layer " + name, 
-		            json.has(name)); 		}
-		assertEquals("Additional dispatch layer configurations found", 
-		        expectedNames.size(), json.size());
-
-	}
-	
-	@Test
-	public void retriesDefault() throws Exception {
-		Processor parallelise = processors.getByName("parallelise");
-		Configuration config = scufl2Tools.configurationFor(parallelise, profile);
-		JsonNode retry = config.getJsonAsObjectNode().get(RETRY);
-		assertNull(retry);
-	}
-	
-	@Test
-	public void retriesDefaultFromT1() throws Exception {
-		Processor alternates = processors.getByName("alternates");
-        Configuration config = scufl2Tools.configurationFor(alternates, profile);
-        JsonNode retry = config.getJsonAsObjectNode().get(RETRY);
-        assertNull(retry);
-	}
-	
-	
-	@Test
-	public void parallelizeDefault() throws Exception {
-		Processor retry = processors.getByName("retries");
-        Configuration config = scufl2Tools.configurationFor(retry, profile);
-        JsonNode parallelize = config.getJsonAsObjectNode().get(PARALLELIZE);
-        assertNull(parallelize);
-	}
-	
-	@Test
-	public void errorBounceEmpty() throws Exception {
-		Processor retry = processors.getByName("retries");
-        Configuration config = scufl2Tools.configurationFor(retry, profile);
-        JsonNode errorbounce = config.getJsonAsObjectNode().get(ERRORBOUNCE);
-        assertNull(errorbounce);
-	}
-	
-
-	@Test
-	public void failoverEmpty() throws Exception {	    
-	    Processor retry = processors.getByName("retries");
-        Configuration config = scufl2Tools.configurationFor(retry, profile);
-        JsonNode failover = config.getJsonAsObjectNode().get(FAILOVER);
-        assertNull(failover);	    
-	}
-	
-	@Test
-	public void invokeEmpty() throws Exception {
-		Processor retry = processors.getByName("retries");
-        Configuration config = scufl2Tools.configurationFor(retry, profile);
-        assertNull(config.getJsonAsObjectNode().get(INVOKE));
-	}
-	
-
-	@Test
-	public void parallelizeDefaultFromT1() throws Exception {
-		Processor alternates = processors.getByName("alternates");
-		Configuration config = scufl2Tools.configurationFor(alternates, profile);
-        assertNull(config.getJsonAsObjectNode().get(PARALLELIZE));
-	}
-	
-	@Test
-	public void parallelize() throws Exception {
-		Processor proc = processors.getByName("parallelise");
-        Configuration config = scufl2Tools.configurationFor(proc, profile);
-        JsonNode parallelize = config.getJsonAsObjectNode().get(PARALLELIZE);
-		assertEquals(5, parallelize.get("maxJobs").intValue());
-	}
-	
-	
-	@Test
-	public void retriesCustom() throws Exception {
-		Processor retries = processors.getByName("retries_custom");
-
-        Configuration config = scufl2Tools.configurationFor(retries, profile);
-        JsonNode retry = config.getJsonAsObjectNode().get(RETRY);
-
-        assertEquals(5, retry.get("maxRetries").intValue());
-        assertEquals(1337, retry.get("initialDelay").intValue());
-        assertEquals(7000, retry.get("maxDelay").intValue());
-        assertEquals(1.13, retry.get("backoffFactor").doubleValue(), 0.01);
-        assertEquals(4, retry.size());
-	}
-	
-
-	@Test
-	public void retries() throws Exception {
-		Processor retries = processors.getByName("retries");
-        Configuration config = scufl2Tools.configurationFor(retries, profile);
-        JsonNode retry = config.getJsonAsObjectNode().get(RETRY);
-
-        assertEquals(3, retry.get("maxRetries").intValue());
-        // The remaining properties are at default and should NOT be present
-//        assertEquals(1000, retry.get("initialDelay").intValue());
-//        assertEquals(5000, retry.get("maxDelay").intValue());
-//        assertEquals(1.0, retry.get("backoffFactor").doubleValue(), 0.01);        
-        assertEquals(1, retry.size());
-	}
-
-    @Test
-    public void looping() throws Exception {
-        Processor looping = processors.getByName("looping");
-        Configuration config = scufl2Tools.configurationFor(looping, profile);
-        ObjectNode json = config.getJsonAsObjectNode();
-        JsonNode loop = json.get(LOOP);
-//        System.out.println(loop);
-        String activityName = loop.get("conditionActivity").asText();
-        Activity activity = profile.getActivities().getByName(activityName);
-        assertNotNull("Unknown activity " + activityName, activity);
-        
-        assertEquals(true, loop.get("runFirst").asBoolean());
-
-        // The properties
-        assertEquals("fred", loop.get("compareValue").asText());
-        assertEquals("value", loop.get("comparePort").asText());
-        assertEquals(0.5, loop.get("delay").asDouble(), 0.01);
-        assertEquals(false, loop.get("isFeedBack").asBoolean());
-    }
-	
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestFastaWorkflow.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestFastaWorkflow.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestFastaWorkflow.java
deleted file mode 100644
index ea2d8db..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestFastaWorkflow.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-public class TestFastaWorkflow {
-    
-    private static final String WF_FASTA_AND_PSCAN = "/fasta_and_pscan.t2flow";
-    private static final String WF_FASTA_PSCAN_AND_DBFETCH = "/fasta_pscan_and_dbfetch.t2flow";
-    private static final String WF_SIMPLE_FASTA = "/simple_fasta.t2flow";
-
-    
-    @Test
-    public void fastaPscan() throws Exception {
-        URL wfResource = getClass().getResource(WF_FASTA_AND_PSCAN);
-        assertNotNull("Could not find workflow " + WF_FASTA_AND_PSCAN,
-                wfResource);
-        T2FlowParser parser = new T2FlowParser();
-        parser.setValidating(true);
-        // parser.setStrict(true);
-        WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-
-        Profile p = wfBundle.getMainProfile();
-        for (Configuration c : p.getConfigurations()) {
-            System.out.println(c.getConfigures());
-            System.out.println(c.getJson());
-        }
-    }
-
-    @Test
-    public void fastaPscanDbfetch() throws Exception {
-        URL wfResource = getClass().getResource(WF_FASTA_PSCAN_AND_DBFETCH);
-        assertNotNull("Could not find workflow " + WF_FASTA_PSCAN_AND_DBFETCH,
-                wfResource);
-        T2FlowParser parser = new T2FlowParser();
-        parser.setValidating(true);
-        // parser.setStrict(true);
-        WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-
-        Profile p = wfBundle.getMainProfile();
-        for (Configuration c : p.getConfigurations()) {
-            System.out.println(c.getConfigures());
-            System.out.println(c.getJson());
-        }
-    }
-
-    @Test
-    public void simpleFasta() throws Exception {
-        URL wfResource = getClass().getResource(WF_SIMPLE_FASTA);
-        assertNotNull("Could not find workflow " + WF_SIMPLE_FASTA,
-                wfResource);
-        T2FlowParser parser = new T2FlowParser();
-        parser.setValidating(true);
-        // parser.setStrict(true);
-        WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-
-        Profile p = wfBundle.getMainProfile();
-        for (Configuration c : p.getConfigurations()) {
-            System.out.println(c.getConfigures());
-            System.out.println(c.getJson());
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestInteractionActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestInteractionActivityParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestInteractionActivityParser.java
deleted file mode 100644
index aea395f..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestInteractionActivityParser.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.defaultactivities.InteractionActivityParser.ACTIVITY_URI;
-import static org.junit.Assert.*;
-
-import java.net.URL;
-
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-
-public class TestInteractionActivityParser {
-	
-	private static final String WF_SIMPLE_TELL = "/interaction_simple_tell.t2flow";
-	private static final String WF_MULTIPLE_CHOICE = "/interaction_multiple_choice.t2flow";
-	
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	
-	private WorkflowBundle parseWorkflow(final String wfPath) throws Exception {
-		URL wfResource = getClass().getResource(wfPath);
-		assertNotNull("Could not find workflow " + wfPath, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle researchObj = parser
-				.parseT2Flow(wfResource.openStream());
-		
-		return researchObj;
-	}
-
-	@Test
-	public void parseSimpleTell() throws Exception {
-		WorkflowBundle researchObj = parseWorkflow(WF_SIMPLE_TELL);
-		
-		NamedSet<Profile> profiles = researchObj.getProfiles();
-		Profile profile = profiles.getByName("taverna-biodiversity-2.5.0");
-		assertNotNull("Could not find profile", profile);
-		
-		Processor tell = researchObj.getMainWorkflow().getProcessors()
-				.getByName("tell");
-		assertNotNull("Could not find processor tell", tell);
-		
-		Configuration tellConfig = scufl2Tools
-				.configurationForActivityBoundToProcessor(tell, profile);
-		
-		Activity tellAct = (Activity) tellConfig.getConfigures();
-		assertEquals(ACTIVITY_URI, tellAct.getType());
-		
-		ObjectNode tellResource = tellConfig.getJsonAsObjectNode();
-		assertEquals(ACTIVITY_URI.resolve("#Config"), tellConfig.getType());
-		
-		String presentationOrigin = tellResource.get("presentationOrigin").textValue();
-		assertEquals("tell", presentationOrigin);
-		
-		String interactionActivityType = tellResource.get("interactionActivityType").textValue();
-		assertEquals("VelocityTemplate", interactionActivityType);
-		
-		boolean progressNotification = tellResource.get("progressNotification").booleanValue();
-		assertFalse(progressNotification);
-	}
-	
-	@Test
-	public void parseMultipleChoice() throws Exception {
-		WorkflowBundle researchObj = parseWorkflow(WF_MULTIPLE_CHOICE);
-		
-		NamedSet<Profile> profiles = researchObj.getProfiles();
-		Profile profile = profiles.getByName("taverna-biodiversity-2.5.0");
-		assertNotNull("Could not find profile", profile);
-		
-		Processor interaction = researchObj.getMainWorkflow().getProcessors()
-				.getByName("Interaction");
-		assertNotNull("Could not find processor Interaction", interaction);
-		
-		Configuration interactionConfig = scufl2Tools
-				.configurationForActivityBoundToProcessor(interaction, profile);
-		
-		Activity interactionAct = (Activity) interactionConfig.getConfigures();
-		assertEquals(ACTIVITY_URI, interactionAct.getType());
-		
-		ObjectNode interactionResource = interactionConfig.getJsonAsObjectNode();
-		assertEquals(ACTIVITY_URI.resolve("#Config"), interactionConfig.getType());
-		
-		String presentationOrigin = interactionResource.get("presentationOrigin").textValue();
-		assertEquals("http://build.mygrid.org.uk/taverna/internal/biovel/multiple_selection.html", presentationOrigin);
-		
-		String interactionActivityType = interactionResource.get("interactionActivityType").textValue();
-		assertEquals("LocallyPresentedHtml", interactionActivityType);
-		
-		boolean progressNotification = interactionResource.get("progressNotification").booleanValue();
-		assertFalse(progressNotification);		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestIterationStrategies.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestIterationStrategies.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestIterationStrategies.java
deleted file mode 100644
index 1b65ae5..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestIterationStrategies.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowReader.APPLICATION_VND_TAVERNA_T2FLOW_XML;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.DotProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.junit.Before;
-import org.junit.Test;
-
-
-public class TestIterationStrategies {
-	
-	private static final String ITERATIONSTRATEGIES_T2FLOW = "/iterationstrategies.t2flow";
-	private WorkflowBundle wfBundle;
-	private Workflow wf;
-	private Processor coloursLisr;
-	private Processor concat;
-	private Processor shape;
-
-	@Before
-	public void readWorkflow() throws ReaderException, IOException {
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		InputStream is = getClass().getResourceAsStream(ITERATIONSTRATEGIES_T2FLOW);
-		wfBundle = io.readBundle(is, APPLICATION_VND_TAVERNA_T2FLOW_XML);
-		wf = wfBundle.getMainWorkflow();
-		coloursLisr = wf.getProcessors().getByName("ColoursLisr");
-		concat = wf.getProcessors().getByName("Concatenate_two_strings");
-		shape = wf.getProcessors().getByName("ShapeAnimals");
-	}
-
-	@Test
-	public void simpleCrossProduct() throws Exception {
-		assertEquals(1, coloursLisr.getIterationStrategyStack().size());
-		IterationStrategyTopNode top = coloursLisr.getIterationStrategyStack().get(0);
-		assertTrue(top instanceof CrossProduct);
-		assertEquals(1, top.size());
-		IterationStrategyNode node = top.get(0);
-		assertTrue(node instanceof PortNode);
-		PortNode portNode = (PortNode) node;
-		assertEquals(0, portNode.getDesiredDepth().intValue());
-		assertEquals(coloursLisr.getInputPorts().getByName("string"), portNode.getInputProcessorPort());
-		
-	}
-
-	@Test
-	public void simpleDot() throws Exception {
-		assertEquals(1, concat.getIterationStrategyStack().size());
-		IterationStrategyTopNode top = concat.getIterationStrategyStack().get(0);
-		assertTrue(top instanceof DotProduct);
-		assertEquals(2, top.size());
-		IterationStrategyNode node1 = top.get(0);
-		assertTrue(node1 instanceof PortNode);
-		PortNode portNode1 = (PortNode) node1;
-		assertEquals(0, portNode1.getDesiredDepth().intValue());
-		assertEquals(concat.getInputPorts().getByName("string1"), portNode1.getInputProcessorPort());
-
-		IterationStrategyNode node2 = top.get(1);
-		assertTrue(node2 instanceof PortNode);
-		PortNode portNode2 = (PortNode) node2;
-		assertEquals(0, portNode2.getDesiredDepth().intValue());
-		assertEquals(concat.getInputPorts().getByName("string2"), portNode2.getInputProcessorPort());
-
-		assertEquals(concat.getInputPorts().getByName("string2"), portNode2.getInputProcessorPort());
-		
-	}
-
-
-	@Test
-	public void crossAndDot() throws Exception {
-		assertEquals(1, shape.getIterationStrategyStack().size());
-		IterationStrategyTopNode top = shape.getIterationStrategyStack().get(0);
-		assertTrue(top instanceof CrossProduct);
-		assertEquals(2, top.size());
-		IterationStrategyNode node1 = top.get(0);
-		assertTrue(node1 instanceof PortNode);
-		PortNode portNode1 = (PortNode) node1;
-		assertEquals(0, portNode1.getDesiredDepth().intValue());
-		assertEquals(shape.getInputPorts().getByName("string1"), portNode1.getInputProcessorPort());
-
-		IterationStrategyNode node2 = top.get(1);
-		assertTrue(node2 instanceof DotProduct);
-		DotProduct portNode2 = (DotProduct) node2;
-		
-		// Note: string3 before string2
-		
-		IterationStrategyNode node21 = portNode2.get(0);
-		assertTrue(node21 instanceof PortNode);
-		PortNode portNode21 = (PortNode) node21;
-		assertEquals(0, portNode21.getDesiredDepth().intValue());
-		assertEquals(shape.getInputPorts().getByName("string3"), portNode21.getInputProcessorPort());
-
-		IterationStrategyNode node22 = portNode2.get(1);
-		assertTrue(node22 instanceof PortNode);
-		PortNode portNode22 = (PortNode) node22;
-		assertEquals(0, portNode22.getDesiredDepth().intValue());
-		assertEquals(shape.getInputPorts().getByName("string2"), portNode22.getInputProcessorPort());
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestSpreadsheetActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestSpreadsheetActivityParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestSpreadsheetActivityParser.java
deleted file mode 100644
index d2ba695..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestSpreadsheetActivityParser.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.net.URL;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class TestSpreadsheetActivityParser {
-
-	private static final String SPREADSHEET_WF_WITH_DEFAULTS = "/spreadsheet_activity_defaults_892.t2flow";
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	@Test
-	public void parseSpreadsheetWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(SPREADSHEET_WF_WITH_DEFAULTS);
-		assertNotNull("Could not find workflow " + SPREADSHEET_WF_WITH_DEFAULTS, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setValidating(true);
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Profile profile = wfBundle.getMainProfile();
-		Processor proc = wfBundle.getMainWorkflow().getProcessors().getByName("SpreadsheetImport");
-		ObjectNode config = scufl2Tools
-				.configurationForActivityBoundToProcessor(proc, profile).getJsonAsObjectNode();
-		assertNotNull(config);
-		// 		System.out.println(config);
-		assertEquals(0, config.get("columnRange").get("start").asInt());
-		assertEquals(1, config.get("columnRange").get("end").asInt());
-		
-		assertEquals(0, config.get("rowRange").get("start").asInt());
-        assertEquals(-1, config.get("rowRange").get("end").asInt());
-		assertEquals("",config.get("emptyCellValue").asText());
-		assertEquals("EMPTY_STRING", config.get("emptyCellPolicy").asText());
-		assertTrue(config.get("allRows").asBoolean());
-        assertFalse(config.get("excludeFirstRow").asBoolean());
-		assertTrue(config.get("ignoreBlankRows").asBoolean());
-		assertFalse(config.has("outputFormat"));
-		assertFalse(config.has("csvDelimiter"));
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowParser.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowParser.java
deleted file mode 100644
index 5d59244..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowParser.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.net.URL;
-
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-public class TestT2FlowParser {
-
-	private static final String INTERACTION_WITH_LOOP = "/interaction-with-strange-loop.t2flow";
-	private static final String AS_T2FLOW = "/as.t2flow";
-	// Workflows from myExperiment that had issues being parsed in 0.11:
-	private static final String MISSING_PRODUCED_BY = "/missing_produced_by_941.t2flow";
-	
-	@Test
-	public void readSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(AS_T2FLOW);
-		assertNotNull("Could not find workflow " + AS_T2FLOW, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Profile profile = wfBundle.getMainProfile();
-		assertEquals(1, wfBundle.getProfiles().size());
-		assertEquals(profile, wfBundle.getProfiles().getByName("taverna-2.1.0"));
-		
-	}
-	
-	@Test
-	public void unconfigureLoopLayer() throws Exception {
-		URL wfResource = getClass().getResource(INTERACTION_WITH_LOOP);
-		assertNotNull("Could not find workflow " + INTERACTION_WITH_LOOP, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(false);
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Scufl2Tools scufl2Tools = new Scufl2Tools();
-		Processor interaction = wfBundle.getMainWorkflow().getProcessors().getByName("BioSTIFInteraction");
-		
-		Configuration config = scufl2Tools.configurationFor(interaction, wfBundle.getMainProfile());
-		assertNull(config.getJsonAsObjectNode().get("loop"));
-	}
-	
-	@Test
-	public void parseMissingProducedBy() throws Exception {
-		URL wfResource = getClass().getResource(MISSING_PRODUCED_BY);
-		assertNotNull("Could not find workflow " + MISSING_PRODUCED_BY, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		WorkflowBundle wfBundle = parser.parseT2Flow(wfResource.openStream());
-		Profile profile = wfBundle.getMainProfile();
-		assertEquals("unspecified", profile.getName());		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowReader.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowReader.java
deleted file mode 100644
index 3f7e3d0..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowReader.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowReader.APPLICATION_VND_TAVERNA_T2FLOW_XML;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.ByteArrayOutputStream;
-import java.net.URL;
-import java.util.Map;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.structure.StructureReader;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage.ResourceEntry;
-import org.junit.Test;
-
-
-public class TestT2FlowReader {
-	
-	private static final String AS_UUID = "92c5e8d5-8360-4f86-a845-09c9849cbdc5";
-	WorkflowBundleIO io = new WorkflowBundleIO();
-	private static final String AS_T2FLOW = "/as.t2flow";
-
-	@Test
-	public void readSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(AS_T2FLOW);
-		assertNotNull("Could not find workflow " + AS_T2FLOW, wfResource);
-		WorkflowBundle wfBundle = io.readBundle(wfResource,
-				APPLICATION_VND_TAVERNA_T2FLOW_XML);
-		Profile profile = wfBundle.getMainProfile();
-		assertEquals(1, wfBundle.getProfiles().size());
-		assertEquals(profile,
-				wfBundle.getProfiles().getByName("taverna-2.1.0"));
-		
-		String report = IOUtils.toString(getClass().getResourceAsStream("/as.txt"));
-		ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
-		io.writeBundle(wfBundle, byteStream, StructureReader.TEXT_VND_TAVERNA_SCUFL2_STRUCTURE);
-                String byteStreamTtoString = byteStream.toString("utf-8");
-                report = report.replaceAll("\r", "").replaceAll("\n", "");
-                byteStreamTtoString = byteStreamTtoString.replaceAll("\r", "").replaceAll("\n", "");
-		assertEquals(report, byteStreamTtoString);
-	}
-	
-
-	@Test
-	public void guessMediaType() throws Exception {
-
-		byte[] firstBytes = new byte[1024];
-		getClass().getResourceAsStream(AS_T2FLOW).read(firstBytes);		
-		assertEquals(APPLICATION_VND_TAVERNA_T2FLOW_XML, io.guessMediaTypeForSignature(firstBytes));
-		// Mess up the xmlns declaration
-		firstBytes[49] = 32;
-		assertEquals(null, io.guessMediaTypeForSignature(firstBytes));
-	}
-
-	@Test
-	public void preservedOriginalT2flow() throws Exception {
-		URL wfResource = getClass().getResource(AS_T2FLOW);
-		assertNotNull("Could not find workflow " + AS_T2FLOW, wfResource);
-		WorkflowBundle wfBundle = io.readBundle(wfResource,
-				APPLICATION_VND_TAVERNA_T2FLOW_XML);
-		Map<String, ResourceEntry> history = wfBundle.getResources()
-				.listResources("history");
-		assertEquals(1, history.size());
-		assertEquals(AS_UUID + ".t2flow", history.keySet().iterator().next());
-		ResourceEntry r = history.get(AS_UUID + ".t2flow");
-		assertEquals("application/vnd.taverna.t2flow+xml", r.getMediaType());
-		String original = IOUtils.toString(getClass().getResourceAsStream(
-				AS_T2FLOW));
-		String shouldBeOriginal = wfBundle.getResources().getResourceAsString(
-				"history/" + AS_UUID + ".t2flow");
-		assertEquals(shouldBeOriginal, original);
-
-	}
-	
-
-	
-	
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowTranslator.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowTranslator.java b/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowTranslator.java
deleted file mode 100644
index be2dddb..0000000
--- a/taverna-scufl2-t2flow/src/test/java/org/apache/taverna/scufl2/translator/t2flow/TestT2FlowTranslator.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- *
- */
-package org.apache.taverna.scufl2.translator.t2flow;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URL;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.junit.Test;
-
-
-/**
- * @author alanrw
- *
- */
-public class TestT2FlowTranslator {
-
-	private static final String AS_T2FLOW = "/as.t2flow";
-
-	private static final String SLEEPERS_T2FLOW = "/sleepers.t2flow";
-	
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-
-	@Test
-	public void translateSimpleWorkflow() throws Exception {
-		URL wfResource = getClass().getResource(AS_T2FLOW);
-		assertNotNull("Could not find workflow " + AS_T2FLOW, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		@SuppressWarnings("unused")
-		WorkflowBundle bundle = parser.parseT2Flow(wfResource.openStream());
-	}
-	
-	@Test
-	public void readControlLinks() throws Exception {
-		URL wfResource = getClass().getResource(SLEEPERS_T2FLOW);
-		assertNotNull("Could not find workflow " + SLEEPERS_T2FLOW, wfResource);
-		T2FlowParser parser = new T2FlowParser();
-		parser.setStrict(true);
-		WorkflowBundle bundle = parser.parseT2Flow(wfResource.openStream());
-		Workflow mainWorkflow = bundle.getMainWorkflow();
-		NamedSet<Processor> processors = mainWorkflow.getProcessors();
-		assertEquals(4, mainWorkflow.getControlLinks().size());
-		
-		List<BlockingControlLink> blocking2 = scufl2Tools.controlLinksBlocking(processors.getByName("second_sleeper"));
-		assertEquals(1, blocking2.size());
-		assertEquals("first_sleeper", blocking2.get(0).getUntilFinished().getName());
-		
-		List<BlockingControlLink> waiting2 = scufl2Tools.controlLinksWaitingFor(processors.getByName("second_sleeper"));
-		assertEquals(1, waiting2.size());
-		assertEquals("third_sleeper", waiting2.get(0).getBlock().getName());
-		
-		
-		List<BlockingControlLink> blocking3 = scufl2Tools.controlLinksBlocking(processors.getByName("third_sleeper"));
-		assertEquals(2, blocking3.size());
-		assertEquals("second_sleeper", blocking3.get(0).getUntilFinished().getName());
-		assertEquals("second_sleeper_2", blocking3.get(1).getUntilFinished().getName());
-		
-		
-		
-	}
-
-}


[20/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.rdf
----------------------------------------------------------------------
diff --git a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.rdf b/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.rdf
deleted file mode 100644
index 5f1f7a3..0000000
--- a/taverna-scufl2-schemas/src/main/resources/org/apache/taverna/scufl2/rdf/scufl2.rdf
+++ /dev/null
@@ -1,1663 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-
-
-<!DOCTYPE rdf:RDF [
-    <!ENTITY dcterms "http://purl.org/dc/terms/" >
-    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
-    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
-    <!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
-    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
-    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
-]>
-
-
-<rdf:RDF xmlns="http://ns.taverna.org.uk/2010/scufl2#"
-     xml:base="http://ns.taverna.org.uk/2010/scufl2"
-     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-     xmlns:owl="http://www.w3.org/2002/07/owl#"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
-     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:xml="http://www.w3.org/XML/1998/namespace"
-     xmlns:dcterms="http://purl.org/dc/terms/">
-    <owl:Ontology rdf:about="http://ns.taverna.org.uk/2010/scufl2">
-        <rdfs:label xml:lang="en">SCUFL2 Core ontology</rdfs:label>
-        <rdfs:comment xml:lang="en">The ontology defining SCUFL2 - a model for describing Taverna workflows.</rdfs:comment>
-        <rdfs:seeAlso rdf:resource="http://www.mygrid.org.uk/dev/wiki/display/developer/Scufl2+Ontology"/>
-        <rdfs:seeAlso rdf:resource="http://www.taverna.org.uk/"/>
-    </owl:Ontology>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Object Properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#activateConfiguration -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#activateConfiguration">
-        <rdfs:label xml:lang="en">activate configuration</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configuration"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#activityPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#activityPort">
-        <rdfs:label xml:lang="en">Activity port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ActivityPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#port"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bind -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bind">
-        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
-        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#PortBinding"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindActivity -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindActivity">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">bind activity</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bind"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindInputActivityPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindInputActivityPort">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">bind input activity port</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputPortBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindInputProcessorPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindInputProcessorPort">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">bind input processor port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputPortBinding"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindOutputActivityPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindOutputActivityPort">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">bind output activity port</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindOutputProcessorPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindOutputProcessorPort">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">bind output processor port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindPort">
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#PortBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bind"/>
-        <rdfs:range>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#ActivityPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#ProcessorPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:range>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#bindProcessor -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#bindProcessor">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">bind processor</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bind"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#block -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#block">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Blocking"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#controlledProcessor"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#child -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#child">
-        <rdf:type rdf:resource="&owl;AsymmetricProperty"/>
-        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
-        <rdf:type rdf:resource="&owl;IrreflexiveProperty"/>
-        <rdfs:label xml:lang="en">child</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Parent"/>
-        <owl:inverseOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-        <rdfs:subPropertyOf rdf:resource="&dcterms;hasPart"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#configure -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#configure">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">configure</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configurable"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configuration"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#control -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#control">
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Control"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#controlledProcessor -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#controlledProcessor">
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Control"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#controllingProcessor -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#controllingProcessor">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">controlling processor</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Control"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#datalink -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#datalink">
-        <rdfs:label xml:lang="en">datalink</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DataLink"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#dispatchStack -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#dispatchStack">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">dispatch stack</rdfs:label>
-        <owl:deprecated rdf:datatype="&xsd;boolean">true</owl:deprecated>
-        <rdfs:comment xml:lang="en">Dispatch stack has been deprecated in favour of configuring the Processor</rdfs:comment>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStack"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#globalBaseURI -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#globalBaseURI">
-        <rdf:type rdf:resource="&owl;ReflexiveProperty"/>
-        <rdf:type rdf:resource="&owl;SymmetricProperty"/>
-        <rdf:type rdf:resource="&owl;TransitiveProperty"/>
-        <rdfs:comment>The resources are the same (like in owl:sameAs), and
-      so are the sub-resources having the same base URI as a parent.  For instance if 
-        &lt;file:///tmp/example/&gt; scufl2:globalBaseURI 
-            &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/&gt; .
-      then also 
-        &lt;file:///tmp/example/workflow/HelloWorld/&gt; scufl2:globalBaseURI 
-            &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/&gt; 
-
-      Note that for URIs under
-      &lt;http://ns.taverna.org.uk/2010/workflowBundle/&gt; special URI template rules
-      link the URI with the scufl2:parent, rdf:type, scufl2:name of the
-      resource. 
-      
-      For instance given 
-        &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello/out/greeting&gt; 
-      it must be so that:
-
-        &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello/out/greeting&gt;
-            a scufl2:OutputProcessorPort;
-            scufl2:name &quot;greeting&quot;;
-            scufl2:parent &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello&gt;.
-
-        &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello&gt;
-            a scufl2:Processor;
-            scufl2:name &quot;Hello&quot;;
-            scufl2:parent &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/&gt;;
-            scufl2:outputProcessorPort &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello/out/greeting&gt;.
-        
-        &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/&gt;    
-            a scufl2:Workflow;
-            scufl2:name &quot;HelloWorld&quot;;
-            scufl2:parent &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/&gt;;
-            sculf2:processor &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/processor/Hello&gt;.
-        
-        &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/&gt;    
-            a scufl2:WorkflowBundle;
-            scufl2:workflow &lt;http://ns.taverna.org.uk/2010/workflowBundle/28f7c554-4f35-401f-b34b-516e9a0ef731/workflow/HelloWorld/&gt;;
-            scufl2:workflowBundleId &quot;28f7c554-4f35-401f-b34b-516e9a0ef731&quot;;
-
-        Where 28f7c554-4f35-401f-b34b-516e9a0ef731 must be a randomly
-        generated UUID.    
-    </rdfs:comment>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#inputActivityPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#inputActivityPort">
-        <rdfs:label xml:lang="en">input acticity port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#activityPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#inputPortBinding -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#inputPortBinding">
-        <rdfs:label xml:lang="en">input port binding</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputPortBinding"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#inputProcessorPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#inputProcessorPort">
-        <rdfs:label xml:lang="en">input processor port</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#processorPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#inputWorkflowPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#inputWorkflowPort">
-        <rdfs:label xml:lang="en">input workflow port</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#iterateOverInputPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#iterateOverInputPort">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#PortNode"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#iterationStrategyStack -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#iterationStrategyStack">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">iteration strategy stack</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyStack"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#mainProfile -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#mainProfile">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">main profile</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#profile"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#mainWorkflow -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#mainWorkflow">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">main workflow</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflow"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#outputActivityPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#outputActivityPort">
-        <rdfs:label xml:lang="en">output activity port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#activityPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#outputPortBinding -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#outputPortBinding">
-        <rdfs:label xml:lang="en">output port binding</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#outputProcessorPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#outputProcessorPort">
-        <rdfs:label xml:lang="en">output processor port</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#processorPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#outputWorkflowPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#outputWorkflowPort">
-        <rdfs:label xml:lang="en">output workflow port</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputWorkflowPort"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowPort"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#parent -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#parent">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">parent</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Parent"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-        <rdfs:subPropertyOf rdf:resource="&dcterms;isPartOf"/>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#controlledProcessor"/>
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-        </owl:propertyChainAxiom>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#sendTo"/>
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-        </owl:propertyChainAxiom>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#controllingProcessor"/>
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-        </owl:propertyChainAxiom>
-        <owl:propertyChainAxiom rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#receiveFrom"/>
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-        </owl:propertyChainAxiom>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#port -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#port">
-        <rdfs:label xml:lang="en">port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Parent"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Port"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#processor -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#processor">
-        <rdfs:label xml:lang="en">processor</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#processorBinding -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#processorBinding">
-        <rdfs:label xml:lang="en">processor binding</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#processorPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#processorPort">
-        <rdfs:label xml:lang="en">processor port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#port"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#productOf -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#productOf">
-        <rdfs:label xml:lang="en">product of</rdfs:label>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#profile -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#profile">
-        <rdfs:label xml:lang="en">profile</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#receiveFrom -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#receiveFrom">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">receive from</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DataLink"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#SenderPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#sendTo -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#sendTo">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">send to</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DataLink"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ReceiverPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#untilFinished -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#untilFinished">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">until finished</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Blocking"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#controllingProcessor"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#workflow -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#workflow">
-        <rdfs:label xml:lang="en">workflow</rdfs:label>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#child"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#workflowIdentifier -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#workflowIdentifier">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">workflow identifier</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowRelation"/>
-        <rdfs:subPropertyOf rdf:resource="&dcterms;isVersionOf"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#workflowPort -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#workflowPort">
-        <rdfs:label xml:lang="en">workflow port</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowPort"/>
-        <rdfs:subPropertyOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#port"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#workflowRelation -->
-
-    <owl:ObjectProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#workflowRelation">
-        <rdfs:label xml:lang="en">workflow relation</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:range rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subPropertyOf rdf:resource="&dcterms;relation"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/dc/terms/hasPart -->
-
-    <owl:ObjectProperty rdf:about="&dcterms;hasPart">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/dc/terms/isPartOf -->
-
-    <owl:ObjectProperty rdf:about="&dcterms;isPartOf">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/dc/terms/isVersionOf -->
-
-    <owl:ObjectProperty rdf:about="&dcterms;isVersionOf">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://purl.org/dc/terms/relation -->
-
-    <owl:ObjectProperty rdf:about="&dcterms;relation">
-        <rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/1999/02/22-rdf-syntax-ns#first -->
-
-    <owl:ObjectProperty rdf:about="&rdf;first">
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- http://www.w3.org/1999/02/22-rdf-syntax-ns#rest -->
-
-    <owl:ObjectProperty rdf:about="&rdf;rest">
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
-    </owl:ObjectProperty>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Data properties
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#activityPosition -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#activityPosition">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">activity position</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#desiredDepth -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#desiredDepth">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">desired depth</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#PortNode"/>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#granularPortDepth -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#granularPortDepth">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">granular port depth</rdfs:label>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#mergePosition -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#mergePosition">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">merge position</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DataLink"/>
-        <rdfs:range rdf:resource="&xsd;integer"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#name -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#name">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">name</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subPropertyOf rdf:resource="&dcterms;identifier"/>
-        <rdfs:range rdf:resource="&xsd;string"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#portDepth -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#portDepth">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">port depth</rdfs:label>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-        <rdfs:domain>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:domain>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#profilePosition -->
-
-    <owl:DatatypeProperty rdf:about="http://ns.taverna.org.uk/2010/scufl2#profilePosition">
-        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
-        <rdfs:label xml:lang="en">profile position</rdfs:label>
-        <rdfs:domain rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
-    </owl:DatatypeProperty>
-    
-
-
-    <!-- http://purl.org/dc/terms/identifier -->
-
-    <owl:DatatypeProperty rdf:about="&dcterms;identifier"/>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Classes
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Activity -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Activity">
-        <rdfs:label xml:lang="en">Activity</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configurable"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#ActivityPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#ActivityPort">
-        <rdfs:label xml:lang="en">Activity Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Port"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Blocking -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Blocking">
-        <rdfs:label xml:lang="en">Blocking</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Control"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#block"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#untilFinished"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Child -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Child">
-        <rdfs:label xml:lang="en">Child</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:onClass rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Parent"/>
-                <owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">0</owl:minQualifiedCardinality>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">A WorkflowElement which can be considered a child, for instance a Processor is a child of a Workflow, an InputActivityPort is a child of an Activity.
-
-The Child-relationship also gives a strong hint that the entity should be serialised as part of its parent&apos;s serialisation.</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Configurable -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Configurable">
-        <rdfs:label xml:lang="en">Configurable</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Configuration -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Configuration">
-        <rdfs:label xml:lang="en">Configuration</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#configure"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configurable"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Control -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Control">
-        <rdfs:label xml:lang="en">Control</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#controllingProcessor"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#controlledProcessor"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#CrossProduct -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#CrossProduct">
-        <rdfs:label xml:lang="en">Cross Product</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Product"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#DataLink -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#DataLink">
-        <rdfs:label xml:lang="en">Data Link</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#receiveFrom"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#sendTo"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#DispatchStack -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#DispatchStack">
-        <rdfs:label xml:lang="en">Dispatch Stack</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subClassOf rdf:resource="&rdf;List"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="&rdf;first"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="&rdf;rest"/>
-                        <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStack"/>
-                    </owl:Restriction>
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="&rdf;rest"/>
-                        <owl:hasValue rdf:resource="&rdf;nil"/>
-                    </owl:Restriction>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <owl:deprecated rdf:datatype="&xsd;boolean">true</owl:deprecated>
-        <rdfs:comment xml:lang="en">Dispatch stack has been deprecated in favour of configuring the Processor.</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#DispatchStackLayer">
-        <rdfs:label xml:lang="en">Dispatch Stack Layer</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configurable"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#DispatchStack"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:deprecated rdf:datatype="&xsd;boolean">true</owl:deprecated>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#DotProduct -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#DotProduct">
-        <rdfs:label xml:lang="en">Dot Product</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Product"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#InputActivityPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort">
-        <rdfs:label xml:lang="en">Input Activity Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ActivityPort"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#portDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:disjointWith rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#InputPortBinding -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputPortBinding">
-        <rdfs:label xml:lang="en">Input Port Binding</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#PortBinding"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindInputProcessorPort"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindInputActivityPort"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputActivityPort"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:disjointWith rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort">
-        <rdfs:label xml:lang="en">Input Processor Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorPort"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ReceiverPort"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#portDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort">
-        <rdfs:label xml:lang="en">Input Workflow Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#SenderPort"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowPort"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#portDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">An input to the workflow, representing a parameter required to run the workflow. 
-
-This is considered a SenderPort within the workflow, so that it can be connected to InputProcessorPort of processors contained by the same workflow.</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#IterationStrategyChildren -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyChildren">
-        <rdfs:label xml:lang="en">Iteration Strategy Children</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subClassOf rdf:resource="&rdf;List"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="&rdf;rest"/>
-                        <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyChildren"/>
-                    </owl:Restriction>
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="&rdf;rest"/>
-                        <owl:hasValue rdf:resource="&rdf;nil"/>
-                    </owl:Restriction>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="&rdf;first"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyNode"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#IterationStrategyNode -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyNode">
-        <rdfs:label xml:lang="en">Iteration Strategy Node</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#IterationStrategyStack -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyStack">
-        <rdfs:label xml:lang="en">Iteration Strategy Stack</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subClassOf rdf:resource="&rdf;List"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="&rdf;rest"/>
-                        <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyStack"/>
-                    </owl:Restriction>
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="&rdf;rest"/>
-                        <owl:hasValue rdf:resource="&rdf;nil"/>
-                    </owl:Restriction>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="&rdf;first"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Product"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Named -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Named">
-        <rdfs:label xml:lang="en">Named</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#name"/>
-                <owl:someValuesFrom rdf:resource="&xsd;string"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">Anything identified with a scufl2:name</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#NamedChild -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#NamedChild">
-        <rdfs:label xml:lang="en">Named Child</rdfs:label>
-        <owl:equivalentClass>
-            <owl:Class>
-                <owl:intersectionOf rdf:parseType="Collection">
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                        <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Parent"/>
-                    </owl:Restriction>
-                    <owl:Restriction>
-                        <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#name"/>
-                        <owl:someValuesFrom rdf:resource="&xsd;string"/>
-                    </owl:Restriction>
-                </owl:intersectionOf>
-            </owl:Class>
-        </owl:equivalentClass>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:comment xml:lang="en">Any Named Child is uniquely identified by its scufl2:name and scufl2:parent</rdfs:comment>
-        <owl:hasKey rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#name"/>
-        </owl:hasKey>
-        <owl:hasKey rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-        </owl:hasKey>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort">
-        <rdfs:label xml:lang="en">Output Activity Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ActivityPort"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#granularPortDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#portDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding">
-        <rdfs:label xml:lang="en">Output Port binding</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#PortBinding"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindOutputActivityPort"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputActivityPort"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindOutputProcessorPort"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort">
-        <rdfs:label xml:lang="en">Output Processor Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorPort"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#SenderPort"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#granularPortDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#portDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#OutputWorkflowPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputWorkflowPort">
-        <rdfs:label xml:lang="en">Output Workflow Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ReceiverPort"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowPort"/>
-        <rdfs:comment xml:lang="en">An output from the workflow, representing the defined results of the workflow.
-
-This is considered a ReceiverPort within the workflow, so that it can be connected from OutputProcessorPort of processors contained by the same workflow.</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Parent -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Parent">
-        <rdfs:label xml:lang="en">Parent</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Port -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Port">
-        <rdfs:label xml:lang="en">Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#name"/>
-                <owl:someValuesFrom rdf:resource="&xsd;string"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#ActivityPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#ProcessorPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#WorkflowPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">A port is an input or output to a Processor, Workflow or Activity. </rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#PortBinding -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#PortBinding">
-        <rdfs:label xml:lang="en">Port Binding</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputPortBinding"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputPortBinding"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#PortNode -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#PortNode">
-        <rdfs:label xml:lang="en">Port Node</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyNode"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#iterateOverInputPort"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#desiredDepth"/>
-                <owl:someValuesFrom rdf:resource="&xsd;nonNegativeInteger"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Processor -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Processor">
-        <rdfs:label xml:lang="en">Processor</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Configurable"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#name"/>
-                <owl:someValuesFrom rdf:resource="&xsd;string"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">A processor is a unit of a Workflow which performs some work. It typically have some InputProcessorPorts and OutputProcessorPorts which are connected to other Ports within the workflow. A processor will start executing as soon as there is a value for each InputProcessorPort and there are no Blocking processors. 
-
-A processor is bound to an Activity which specifies how to execute the task. This ProcessorBinding also specifies PortBindings to map ActivityPorts with ProcessorPorts.</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#ProcessorBinding">
-        <rdfs:label xml:lang="en">Processor Binding</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindProcessor"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#bindActivity"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Activity"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Profile"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#ProcessorPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#ProcessorPort">
-        <rdfs:label xml:lang="en">Processor Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Port"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Processor"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Product -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Product">
-        <rdfs:label xml:lang="en">Product</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyNode"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#CrossProduct"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#DotProduct"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#productOf"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#IterationStrategyChildren"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Profile -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Profile">
-        <rdfs:label xml:lang="en">Profile</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Child"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:allValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#ReceiverPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#ReceiverPort">
-        <rdfs:label xml:lang="en">Receiver Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Port"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputProcessorPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputWorkflowPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <owl:disjointWith rdf:resource="http://ns.taverna.org.uk/2010/scufl2#SenderPort"/>
-        <rdfs:comment xml:lang="en">A Port which can receive data from a DataLink</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#SenderPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#SenderPort">
-        <rdfs:label xml:lang="en">Sender Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Port"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputProcessorPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">A Port which can send data to a DataLink</rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#Workflow -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#Workflow">
-        <rdfs:label xml:lang="en">Workflow</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#name"/>
-                <owl:someValuesFrom rdf:resource="&xsd;string"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#workflowIdentifier"/>
-                <owl:someValuesFrom rdf:resource="&owl;Thing"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:hasKey rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#workflowIdentifier"/>
-        </owl:hasKey>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle">
-        <rdfs:label xml:lang="en">Workflow Bundle</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Named"/>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#globalBaseURI"/>
-                <owl:onClass rdf:resource="http://ns.taverna.org.uk/2010/scufl2#WorkflowBundle"/>
-                <owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">0</owl:minQualifiedCardinality>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <owl:hasKey rdf:parseType="Collection">
-            <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#globalBaseURI"/>
-        </owl:hasKey>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#WorkflowElement -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#WorkflowElement">
-        <rdfs:label xml:lang="en">Workflow Element</rdfs:label>
-        <rdfs:comment xml:lang="en">Any element that defines a workflow, such as a processor, port, datalink, activity, port binding, profile.
-
-Super-class for any Scufl2 class. </rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://ns.taverna.org.uk/2010/scufl2#WorkflowPort -->
-
-    <owl:Class rdf:about="http://ns.taverna.org.uk/2010/scufl2#WorkflowPort">
-        <rdfs:label xml:lang="en">Workflow Port</rdfs:label>
-        <rdfs:subClassOf rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Port"/>
-        <rdfs:subClassOf>
-            <owl:Class>
-                <owl:unionOf rdf:parseType="Collection">
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#InputWorkflowPort"/>
-                    <rdf:Description rdf:about="http://ns.taverna.org.uk/2010/scufl2#OutputWorkflowPort"/>
-                </owl:unionOf>
-            </owl:Class>
-        </rdfs:subClassOf>
-        <rdfs:subClassOf>
-            <owl:Restriction>
-                <owl:onProperty rdf:resource="http://ns.taverna.org.uk/2010/scufl2#parent"/>
-                <owl:someValuesFrom rdf:resource="http://ns.taverna.org.uk/2010/scufl2#Workflow"/>
-            </owl:Restriction>
-        </rdfs:subClassOf>
-        <rdfs:comment xml:lang="en">Ports of a Workflow. </rdfs:comment>
-    </owl:Class>
-    
-
-
-    <!-- http://www.w3.org/1999/02/22-rdf-syntax-ns#List -->
-
-    <owl:Class rdf:about="&rdf;List">
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
-    </owl:Class>
-    
-
-
-    <!-- 
-    ///////////////////////////////////////////////////////////////////////////////////////
-    //
-    // Individuals
-    //
-    ///////////////////////////////////////////////////////////////////////////////////////
-     -->
-
-    
-
-
-    <!-- http://www.w3.org/1999/02/22-rdf-syntax-ns#nil -->
-
-    <owl:NamedIndividual rdf:about="&rdf;nil">
-        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
-    </owl:NamedIndividual>
-</rdf:RDF>
-
-
-
-<!-- Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net -->
-


[33/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/URITools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/URITools.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/URITools.java
deleted file mode 100644
index 85d96ac..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/URITools.java
+++ /dev/null
@@ -1,268 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.annotation.Revision;
-import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.BlockingControlLink;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyNode;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.port.InputPort;
-import org.apache.taverna.scufl2.api.port.OutputPort;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.apache.taverna.scufl2.api.port.ProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorPortBinding;
-
-
-/**
- * Utility methods for dealing with URIs.
- */
-public class URITools {
-	private static final String MERGE_POSITION = "mergePosition";
-	private static final String TO = "to";
-	private static final String FROM = "from";
-	private static final String DATALINK = "datalink";
-	private static final URI DOT = URI.create(".");
-
-	public URI relativePath(URI base, URI uri) {
-		URI root = base.resolve("/");
-		if (!root.equals(uri.resolve("/")))
-			// Different protocol/host/auth
-			return uri;
-		base = base.normalize();
-		uri = uri.normalize();
-		if (base.resolve("#").equals(uri.resolve("#")))
-			// Same path, easy
-			return base.relativize(uri);
-
-		if (base.isAbsolute()) {
-			// Ignore hostname and protocol
-			base = root.relativize(base).resolve(".");
-			uri = root.relativize(uri);
-		}
-		// Pretend they start from /
-		base = root.resolve(base).resolve(".");
-		uri = root.resolve(uri);
-
-		URI candidate = base.relativize(uri);
-		URI relation = DOT;
-		while (candidate.getPath().startsWith("/")
-				&& !(base.getPath().isEmpty() || base.getPath().equals("/"))) {
-			base = base.resolve("../");
-			relation = relation.resolve("../");
-			candidate = base.relativize(uri);
-		}
-		// Add the ../.. again
-		URI resolved = relation.resolve(candidate);
-		return resolved;
-	}
-
-	public URI relativeUriForBean(WorkflowBean bean, WorkflowBean relativeToBean) {
-		URI rootUri = uriForBean(relativeToBean);
-		URI beanUri = uriForBean(bean);
-		return relativePath(rootUri, beanUri);
-	}
-
-	public WorkflowBean resolveUri(URI uri, WorkflowBundle wfBundle) {
-		// Check if it's a workflow URI
-		for (Workflow wf : wfBundle.getWorkflows())
-			if (wf.getIdentifier().equals(uri))
-				return wf;
-		String rel = Workflow.WORKFLOW_ROOT.relativize(uri).toASCIIString();
-		if (rel.matches("[0-9a-f-]+/"))
-			return null;
-
-		/*
-		 * Naive, super-inefficient reverse-lookup - we could have even returned
-		 * early!
-		 */
-		final Map<URI, WorkflowBean> uriToBean = new HashMap<>();
-		wfBundle.accept(new VisitorWithPath() {
-			@Override
-			public boolean visit() {
-				WorkflowBean node = getCurrentNode();
-				URI uri;
-				try {
-					uri = uriForBean(node);
-				} catch (IllegalStateException ex) {
-					return false;
-				}
-                WorkflowBean existing = uriToBean.put(uri, node);
-				if (existing != null)
-					/*
-					 * Check if we should keep the existing object instead,
-					 * because the inserted object is "lesser worth" (for
-					 * instance we try to insert a Revision when a
-					 * WorkflowBundle already exists,
-					 */
-					if (node instanceof Revision
-							&& !(existing instanceof Revision))
-						uriToBean.put(uri, existing);
-				return true;
-			}
-		});
-		if (!uri.isAbsolute()) {
-			// Make absolute, but remove / first
-			uri = URI.create("/").relativize(uri);
-			uri = uriForBean(wfBundle).resolve(uri);
-		}
-		return uriToBean.get(uri);
-	}
-
-	public URI uriForBean(WorkflowBean bean) {
-		if (bean == null)
-			throw new NullPointerException("Bean can't be null");
-
-		if (bean instanceof Root) {
-			Root root = (Root) bean;
-			if (root.getGlobalBaseURI() == null) {
-				if (!(root instanceof WorkflowBundle))
-					throw new IllegalArgumentException(
-							"sameBaseAs is null for bean " + bean);
-				((WorkflowBundle) root).newRevision();
-			}
-			return root.getGlobalBaseURI();
-		}
-		if (bean instanceof Child) {
-			@SuppressWarnings("rawtypes")
-			Child child = (Child) bean;
-			WorkflowBean parent = child.getParent();
-			if (parent == null)
-				throw new IllegalStateException("Bean does not have a parent: "
-						+ child);
-			URI parentUri = uriForBean(parent);
-
-			if (!parentUri.getPath().endsWith("/"))
-				parentUri = parentUri.resolve(parentUri.getPath() + "/");
-			String relation;
-			if (child instanceof InputPort)
-				relation = "in/";
-			else if (child instanceof OutputPort)
-				relation = "out/";
-			else if (child instanceof IterationStrategyStack)
-				relation = "iterationstrategy/";
-			else
-				// TODO: Get relation by container annotations
-				relation = child.getClass().getSimpleName() + "/"; // Stupid fallback
-
-			URI relationURI = parentUri.resolve(relation.toLowerCase());
-			if (parent instanceof List) {
-				@SuppressWarnings("rawtypes")
-				int index = ((List) parent).indexOf(child);
-				return parentUri.resolve(index + "/");
-			}
-			if (bean instanceof Named) {
-				Named named = (Named) bean;
-				String name = validFilename(named.getName());
-				if (!(bean instanceof Port || bean instanceof Annotation))
-					name = name + "/";
-				return relationURI.resolve(name);
-			} else if (bean instanceof DataLink) {
-				DataLink dataLink = (DataLink) bean;
-				Workflow wf = dataLink.getParent();
-				URI wfUri = uriForBean(wf);
-				URI receivesFrom = relativePath(wfUri,
-						uriForBean(dataLink.getReceivesFrom()));
-				URI sendsTo = relativePath(wfUri,
-						uriForBean(dataLink.getSendsTo()));
-				String dataLinkUri = MessageFormat.format(
-						"{0}?{1}={2}&{3}={4}", DATALINK, FROM, receivesFrom,
-						TO, sendsTo);
-				if (dataLink.getMergePosition() != null)
-					dataLinkUri += MessageFormat.format("&{0}={1}",
-							MERGE_POSITION, dataLink.getMergePosition());
-				return wfUri.resolve(dataLinkUri);
-			} else if (bean instanceof BlockingControlLink) {
-				BlockingControlLink runAfterCondition = (BlockingControlLink) bean;
-				Workflow wf = runAfterCondition.getParent();
-				URI wfUri = uriForBean(wf);
-
-				URI start = relativePath(wfUri,
-						uriForBean(runAfterCondition.getBlock()));
-				URI after = relativePath(wfUri,
-						uriForBean(runAfterCondition.getUntilFinished()));
-				String conditionUri = MessageFormat.format(
-						"{0}?{1}={2}&{3}={4}", "control", "block", start,
-						"untilFinished", after);
-				return wfUri.resolve(conditionUri);
-			} else if (bean instanceof IterationStrategyStack) {
-				return relationURI;
-			} else if (bean instanceof IterationStrategyNode) {
-				IterationStrategyNode iterationStrategyNode = (IterationStrategyNode) bean;
-				parent = iterationStrategyNode.getParent();
-				@SuppressWarnings("unchecked")
-				List<IterationStrategyNode> parentList = (List<IterationStrategyNode>) parent;
-				int index = parentList.indexOf(iterationStrategyNode);
-				return parentUri.resolve(index + "/");
-			} else if (bean instanceof ProcessorPortBinding) {
-				// Named after the processor port, extract in/blah part.
-				ProcessorPortBinding<?, ?> processorPortBinding = (ProcessorPortBinding<?, ?>) bean;
-				ProcessorPort procPort = processorPortBinding
-						.getBoundProcessorPort();
-				if (procPort == null)
-					throw new IllegalStateException(
-							"ProcessorPortBinding has no bound processor port: "
-									+ bean);
-				URI procPortUri = relativeUriForBean(procPort,
-						processorPortBinding.getParent().getBoundProcessor());
-				return parentUri.resolve(procPortUri);
-			} else
-				throw new IllegalStateException(
-						"Can't create URIs for child of unrecogized type " + bean.getClass());
-		}
-		if (bean instanceof Revision) {
-			Revision revision = (Revision) bean;
-			return revision.getIdentifier();
-		}
-		throw new IllegalArgumentException("Unsupported type "
-				+ bean.getClass() + " for bean " + bean);
-	}
-
-	public String validFilename(String name) {
-		if (name == null)
-			throw new NullPointerException();
-		// Make a relative URI
-		URI uri;
-		try {
-			uri = new URI(null, null, name, null, null);
-		} catch (URISyntaxException e) {
-			throw new IllegalArgumentException("Invalid name " + name);
-		}
-		String ascii = uri.toASCIIString();
-		// And escape / and \
-		String escaped = ascii.replace("/", "%2f");
-		// escaped = escaped.replace("\\", "%5c");
-		escaped = escaped.replace(":", "%3a");
-		escaped = escaped.replace("=", "%3d");
-		return escaped;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Visitor.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Visitor.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Visitor.java
deleted file mode 100644
index 8c8592d..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Visitor.java
+++ /dev/null
@@ -1,248 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.util.List;
-import java.util.Stack;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-
-
-/**
- * Visitor which can inspect a {@link WorkflowBean}.
- * <p>
- * Used with {@link WorkflowBean#accept(Visitor)} - in particular with
- * {@link WorkflowBundle#accept(Visitor)} to recursively visit every
- * WorkflowBean of a workflow bundle.
- * <p>
- * {@link #visitEnter(WorkflowBean)} will be called for each
- * {@link WorkflowBean} which has children, while {@link #visit(WorkflowBean)}
- * is called for leaf children.
- * <p>
- * For instance visiting using {@link Workflow#accept(Visitor)} will call
- * {@link #visitEnter(WorkflowBean)} with the workflow instance, followed by a
- * {@link #visit(WorkflowBean)} on each {@link InputWorkflowPort} and
- * {@link OutputWorkflowPort} (which are leaf nodes). Further
- * {@link #visitEnter(WorkflowBean)} will be called with a {@link Processor} -
- * which {@link Processor#accept(Visitor)} will recurse to
- * {@link InputProcessorPort} etc.
- * <p>
- * The visitor can avoid visiting a branch of the workflow by returning
- * <code>false</code> from {@link #visitEnter(WorkflowBean)}, or cancel the
- * iteration over children by returning <code>false</code> from
- * {@link #visit(WorkflowBean)} and {@link #visitLeave(WorkflowBean)}.
- * <p>
- * The {@link VisitorAdapter} class can be useful for avoiding to implement all
- * Visitor methods, while {@link VisitorWithPath} provides the
- * {@link VisitorAdapter#getCurrentPath()} .
- * 
- * @see http://c2.com/cgi/wiki?HierarchicalVisitorPattern
- * 
- * @author Stian Soiland-Reyes
- * 
- */
-public interface Visitor {
-	public static abstract class VisitorAdapter implements Visitor {
-		@Override
-		public boolean visit(WorkflowBean node) {
-			return true;
-		}
-
-		@Override
-		public boolean visitEnter(WorkflowBean node) {
-			return true;
-		}
-
-		@Override
-		public boolean visitLeave(WorkflowBean node) {
-			return true;
-		}
-	}
-
-	public static abstract class VisitorWithPath implements Visitor {
-		private final Stack<WorkflowBean> currentPath = new Stack<>();
-		private WorkflowBean currentNode;
-
-		/**
-		 * Returns the {@link WorkflowBean} currently visited.
-		 * 
-		 * @return the <code>WorkflowBean</code> currently visited
-		 */
-		public WorkflowBean getCurrentNode() {
-			return currentNode;
-		}
-
-		/**
-		 * Return the current path of {@link WorkflowBean WorkflowBeans}.
-		 * <p>
-		 * The list will never contain the current node, which can instead be
-		 * found in {@link #getCurrentNode()}. That means that
-		 * {@link Stack#peek()} will be the intermediate parent of the current
-		 * node.
-		 * <p>
-		 * The first object of the stack will be the initial object where
-		 * {@link WorkflowBean#accept(Visitor)} was called, not necessarily the
-		 * {@link WorkflowBundle}.
-		 * <p>
-		 * So for instance if you are in {@link #visit(WorkflowBean)} on an
-		 * {@link InputProcessorPort}, {@link #getCurrentPath()} will have a
-		 * list <code>[workflowBundle, workflow, processor]</code>. This should
-		 * generally match the path from following {@link Child#getParent()}
-		 * recursively.
-		 * <p>
-		 * This method returns the same {@link List} instance throughout the use
-		 * of the visitor, it is dynamically modified by
-		 * {@link #visitEnter(WorkflowBean)} and
-		 * {@link #visitLeave(WorkflowBean)}.
-		 * 
-		 * @return A {@link List} of the current path of the ancestors of the
-		 *         currently visiting {@link WorkflowBean}.
-		 */
-		public Stack<WorkflowBean> getCurrentPath() {
-			return currentPath;
-		}
-
-		/**
-		 * Similar to {@link Visitor#visit(WorkflowBean)} - but called for every
-		 * node, even if it can have children.
-		 * <p>
-		 * The current node is available in {@link #getCurrentNode()}.
-		 * <p>
-		 * 
-		 * @return <code>true</code> if this node's children should be visited.
-		 *         (return value is ignored for nodes which can't have children)
-		 */
-		public abstract boolean visit();
-
-		/**
-		 * Final to maintain current path. Override {@link #visit()} instead.
-		 * 
-		 * @see #visit()
-		 */
-		@Override
-		public final boolean visit(WorkflowBean node) {
-			visitEnter(node);
-			return visitLeave(node);
-		}
-
-		/**
-		 * Final to maintain current path. Override {@link #visit()} instead.
-		 * 
-		 * @see #visit()
-		 */
-		@Override
-		public final boolean visitEnter(WorkflowBean node) {
-			currentNode = node;
-			boolean recurse = visit();
-			currentPath.add(node);
-			return recurse;
-		}
-
-		/**
-		 * Override this method to be informed when leaving a node.
-		 * 
-		 * Similar to {@link Visitor#visitLeave(WorkflowBean)}, but also called
-		 * for nodes which can't have children.
-		 * <p>
-		 * The current node is present in {@link #getCurrentPath()} and can be
-		 * retrieved using {@link #getCurrentNode()}.
-		 * 
-		 * @return <code>true</code> if the visits over the current beans'
-		 *         siblings should continue, <code>false</code> to immediately
-		 *         leave the parent.
-		 */
-		public boolean visitLeave() {
-			return true;
-		};
-
-		/**
-		 * Final to maintain current path. Override {@link #visitLeave()}
-		 * instead.
-		 * 
-		 * @see #visitLeave()
-		 */
-		@Override
-		public final boolean visitLeave(WorkflowBean node) {
-			currentNode = currentPath.pop();
-			if (currentNode != node)
-				throw new IllegalStateException("Unexpected visit to node "
-						+ node + " expected " + currentNode);
-			return visitLeave();
-		}
-	}
-
-	/**
-	 * Called by {@link WorkflowBean#accept(Visitor)} when the visited bean is a
-	 * leaf node.
-	 * <p>
-	 * A leaf node is a bean that can't have children, like
-	 * {@link InputWorkflowPort}, {@link PortNode} or {@link PropertyLiteral}.
-	 * 
-	 * @see #visitEnter(WorkflowBean)
-	 * @param node
-	 *            the currently visited {@link WorkflowBean}
-	 * @return <code>true</code> if the visits over the current beans' siblings
-	 *         should continue, <code>false</code> to immediately leave the
-	 *         parent.
-	 */
-	boolean visit(WorkflowBean node);
-
-	/**
-	 * Called by {@link WorkflowBean#accept(Visitor)} when first visiting a bean
-	 * which potentially has children.
-	 * <p>
-	 * After visiting the children (which could be none),
-	 * {@link WorkflowBean#accept(Visitor)} on the current bean will call
-	 * {@link #visitLeave(WorkflowBean)}.
-	 * <p>
-	 * Note that a bean can have some children which are visited with
-	 * {@link #visit(WorkflowBean)} and others which are visited with
-	 * {@link #visitEnter(WorkflowBean)} (depending on if they themselves can
-	 * have children).
-	 * 
-	 * @see #visit(WorkflowBean)
-	 * @see #visitLeave(WorkflowBean)
-	 * @param node
-	 *            the currently visited {@link WorkflowBean}
-	 * @return <code>true</code> if the children of this bean should be visited.
-	 */
-	boolean visitEnter(WorkflowBean node);
-
-	/**
-	 * Called by {@link WorkflowBean#accept(Visitor)} before leaving a bean
-	 * previously visited with {@link #visitEnter(WorkflowBean)}. This is called
-	 * after all of the bean's children have been recursively visited, even if
-	 * any of those aborted the visit by returning <code>false</code>.
-	 * 
-	 * @param node
-	 *            the currently visited {@link WorkflowBean}
-	 * @return <code>false</code> if the visits over the current beans' siblings
-	 *         should continue, <code>false</code> to immediately leave the
-	 *         parent.
-	 */
-	boolean visitLeave(WorkflowBean node);
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/WorkflowBean.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/WorkflowBean.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/WorkflowBean.java
deleted file mode 100644
index 61b696d..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/WorkflowBean.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-/**
- * The top level interface for all objects in a workflow.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public interface WorkflowBean extends Cloneable {
-	/**
-	 * Accepts a {@link Visitor} to this <code>WorkflowBean</code>.
-	 * 
-	 * @param visitor
-	 *            the <code>Visitor</code> to accept
-	 * @return <code>true</code> if this <code>WorkflowBeans</code> children
-	 *         should be visited.
-	 */
-	boolean accept(Visitor visitor);
-
-	/**
-	 * Create a deep clone of this bean.
-	 * <p>
-	 * The cloned bean will have equivalent properties as the original bean. Any
-	 * {@link Child} beans which parent match this bean will be cloned as well
-	 * (recursively), non-child beans will remain the same. If this bean is a
-	 * {@link Child}, the returned clone will not have a parent set.
-	 * <p>
-	 * Note that children whose {@link Child#getParent()} is <code>null</code>
-	 * might not be cloned, to avoid this, use
-	 * {@link Scufl2Tools#setParents(org.apache.taverna.scufl2.api.container.WorkflowBundle)}
-	 * before cloning.
-	 * 
-	 * @return A cloned workflow bean
-	 */
-	// @Override
-	WorkflowBean clone();
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/package-info.java
deleted file mode 100644
index d635b7f..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.apache.taverna.scufl2.api.common;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/configurations/Configuration.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/configurations/Configuration.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/configurations/Configuration.java
deleted file mode 100644
index 324ba0c..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/configurations/Configuration.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/**
- *
- */
-package org.apache.taverna.scufl2.api.configurations;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Configurable;
-import org.apache.taverna.scufl2.api.common.Typed;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.fasterxml.jackson.databind.node.ValueNode;
-
-/**
- * Configuration of a {@link Configurable} workflow bean.
- * <p>
- * A configuration is activated by a {@link Profile}, and provides a link to the
- * {@link #getJson()} containing the properties to configure the bean, like an
- * {@link Activity}.
- * <p>
- * A configuration is of a certain (RDF) <strong>type</strong>, as defined by
- * {@link #getType()} - which determines which properties are required and
- * optional. For instance, the type
- * <code>http://ns.taverna.org.uk/2010/activity/wsdl/ConfigType</code> requires
- * the property
- * <code>http://ns.taverna.org.uk/2010/activity/wsdl/operation</code>.
- * <p>
- * These requirements are described in the {@link ConfigurationDefinition} that
- * matches the getConfigurableType() of the {@link Configurable} found by
- * {@link #getConfigures()}. Its
- * {@link ConfigurationDefinition#getPropertyResourceDefinition()} should in
- * {@link PropertyResourceDefinition#getTypeURI()} should match the
- * {@link #getType()} of this {@link Configuration}.
- * <p>
- * Note: {@link #getType()} (and the potentially misleading {@link #getType()})
- * return the type of <b>this</b> Configuration, not the type of the
- * {@link Configurable} bean that it happens to configure. For instance, a
- * Configuration typed <code>http://example.com/WSDLConfiguration</code> might
- * configure an activity typed <code>http://example.com/WSDLActivity</code>, but
- * could also have configured an activity typed
- * <code>http://example.com/GlobusWSDLActivity</code>.
- * <p>
- * <strong>TODO: Where are the ConfigurationDefinitions found?</strong>
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- * 
- */
-public class Configuration extends AbstractNamed implements Child<Profile>,
-		Typed {
-	private static final JsonNodeFactory JSON_NODE_FACTORY = JsonNodeFactory.instance;
-	private Configurable configures;
-	private Profile parent;
-	private JsonNode json = JSON_NODE_FACTORY.objectNode();
-	private JsonNode jsonSchema;
-	private URI type;
-
-	/**
-	 * Constructs a <code>Configuration</code> with a random UUID as the name.
-	 */
-	public Configuration() {
-		super();
-	}
-
-	/**
-	 * Construct a <code>Configuration</code> with the specified name.
-	 * 
-	 * @param name
-	 *            the name of the <code>Configuration</code>. <strong>Must
-	 *            not</strong> be <code>null</code> or an empty String.
-	 */
-	public Configuration(String name) {
-		super(name);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	/**
-	 * Return the {@link Configurable} workflow bean that is configured.
-	 * Typically an {@link Activity} or {@link Processor}, {@link Workflow} and
-	 * {@link Port} can be configured.
-	 * 
-	 * @return the <code>Configurable</code> <code>WorkflowBean</code> that is
-	 *         configured
-	 */
-	public Configurable getConfigures() {
-		return configures;
-	}
-
-	@Override
-	public Profile getParent() {
-		return parent;
-	}
-
-	/**
-	 * Return the underlying JSON {@link JsonNode} which contains the properties
-	 * set by this configuration.
-	 * <p>
-	 * The JSON node is typically an {@link ObjectNode} or {@link ArrayNode},
-	 * but could also be a {@link ValueNode}. The default node for a freshly
-	 * constructed Configuration is an {@link ObjectNode}. * @return the backing
-	 * {@link ObjectNode}.
-	 */
-	public JsonNode getJson() {
-		return json;
-	}
-
-	/**
-	 * Return a string representation of the {@link #getJson()} configuration,
-	 * the string is valid JSON.
-	 * 
-	 * @return
-	 */
-	public String getJsonAsString() {
-		return json.toString();
-	}
-
-	/**
-	 * Return the {@link #getJson()} configuration as an {@link ObjectNode}.
-	 * This is the default type for a new {@link Configuration}.
-	 * 
-	 * @throws IllegalStateException
-	 *             if the {@link #getJson()} is not an {@link ObjectNode}
-	 * 
-	 * @return
-	 */
-	public ObjectNode getJsonAsObjectNode() {
-		if (!json.isObject())
-			throw new IllegalStateException("JSON is not an ObjectNode, but "
-					+ json);
-		return (ObjectNode) json;
-	}
-
-	/**
-	 * Return the type of the <code>Configuration</code>.
-	 * <p>
-	 * The URI will match the {@link PropertyResource#getTypeURI()}.
-	 * 
-	 * @return the type of the <code>Configuration</code>
-	 */
-	@Override
-	public URI getType() {
-		return type;
-	}
-
-	/**
-	 * Set the {@link Configurable} {@link WorkflowBean} that is configured.
-	 * 
-	 * @param configurable
-	 *            the <code>Configurable</code> <code>WorkflowBean</code> that
-	 *            is configured
-	 */
-	public void setConfigures(Configurable configurable) {
-		configures = configurable;
-	}
-
-	@Override
-	public void setParent(Profile parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getConfigurations().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getConfigurations().add(this);
-	}
-
-	/**
-	 * Set the underlying JSON {@link JsonNode} which contains the properties
-	 * set by this configuration. The JSON node is typically an
-	 * {@link ObjectNode} or {@link ArrayNode}, but could also be a
-	 * {@link ValueNode}.
-	 * <p>
-	 * If the provided ObjectNode is <code>null</code>, a new, blank
-	 * {@link ObjectNode} will be set.
-	 * 
-	 * @param json
-	 *            the underlying <code>JsonNode</code> which contains the
-	 *            properties set by this configuration.
-	 */
-	public void setJson(JsonNode json) {
-		if (json == null)
-			this.json = JSON_NODE_FACTORY.objectNode();
-		this.json = json;
-	}
-
-	/**
-	 * Set the type of the <code>Configuration</code>.
-	 * <p>
-	 * This will also set {@link PropertyResource#setTypeURI(URI)}.
-	 * 
-	 * @param type
-	 *            the type of the <code>Configuration</code>.
-	 */
-	@Override
-	public void setType(URI type) {
-		this.type = type;
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		Configuration cloneConfig = (Configuration) clone;
-		cloneConfig.setConfigures(cloning.cloneOrOriginal(getConfigures()));
-	}
-
-	public JsonNode getJsonSchema() {
-		return jsonSchema;
-	}
-
-	public void setJsonSchema(JsonNode jsonSchema) {
-		this.jsonSchema = jsonSchema;
-	}
-
-	public void setJsonSchema(String jsonString) {
-		setJsonSchema(parseJson(jsonString));
-	}
-
-	public void setJson(String jsonString) {
-		setJson(parseJson(jsonString));
-	}
-
-	protected JsonNode parseJson(String jsonString) {
-		ObjectMapper mapper = new ObjectMapper();
-		try {
-			JsonParser parser = mapper.getFactory().createParser(jsonString);
-			return parser.readValueAs(JsonNode.class);
-		} catch (IOException e) {
-			throw new IllegalArgumentException("Not valid JSON string", e);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/WorkflowBundle.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/WorkflowBundle.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/WorkflowBundle.java
deleted file mode 100644
index a642d2e..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/WorkflowBundle.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package org.apache.taverna.scufl2.api.container;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.annotation.Revisioned;
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.AbstractRevisioned;
-import org.apache.taverna.scufl2.api.common.Named;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Root;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-import org.apache.taverna.scufl2.ucfpackage.UCFPackage;
-
-
-/**
- * A workflow bundle is a collection of workflows, profiles and their
- * annotations.
- * <p>
- * A Workflow Bundle represents these resources as a whole, and have its own
- * identifier.
- * <p>
- * Workflows are listed under {@link #getWorkflows()}, one of which SHOULD be
- * {@link #setMainWorkflow(Workflow)}.
- * <p>
- * Similarly, profiles are listed under {@link #getProfiles()}, one of which
- * SHOULD be {@link #setMainProfile(Profile)}.
- * <p>
- * Annotations are included under {@link #getAnnotations()}, and additional
- * resources inside {@link #getResources()}.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public class WorkflowBundle extends AbstractRevisioned implements WorkflowBean,
-		Named, Root, Revisioned {
-	public static final String APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE = "application/vnd.taverna.scufl2.workflow-bundle";
-	public static final URI WORKFLOW_BUNDLE_ROOT = URI
-			.create("http://ns.taverna.org.uk/2010/workflowBundle/");
-
-	public static URI generateIdentifier() {
-		return WORKFLOW_BUNDLE_ROOT.resolve(UUID.randomUUID().toString() + "/");
-	}
-
-    private final NamedSet<Annotation> annotations = new NamedSet<>();
-	private final NamedSet<Profile> profiles = new NamedSet<>();
-	private final NamedSet<Workflow> workflows = new NamedSet<>();
-	private Workflow mainWorkflow;
-	private Profile mainProfile;
-	private UCFPackage resources;
-
-    /**
-     * Construct a new WorkflowBundle with a randomly generated name.
-     * <p>
-     * A WorkflowBundle can also be created using
-     * {@link WorkflowBundleIO#createBundle()} or loaded from an existing bundle
-     * using {@link WorkflowBundleIO#readBundle(java.io.File, String)},
-     * {@link WorkflowBundleIO#readBundle(java.io.InputStream, String)} or
-     * {@link WorkflowBundleIO#readBundle(java.net.URL, String)}.
-     */
-    public WorkflowBundle() {
-        super();
-    }
-
-    /**
-     * Construct a new WorkflowBundle with the specified name.
-     * 
-     * @param name
-     *            The name of the <code>WorkflowBundle</code>. <strong>Must
-     *            not</strong> be <code>null</code> or an empty String.
-     */
-    public WorkflowBundle(String name) {
-        super(name);
-    }
-	
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this)) {
-			List<Iterable<? extends WorkflowBean>> children = new ArrayList<>();
-			children.add(getWorkflows());
-			children.add(getProfiles());
-			children.add(getAnnotations());
-			outer: for (Iterable<? extends WorkflowBean> it : children)
-				for (WorkflowBean bean : it)
-					if (!bean.accept(visitor))
-						break outer;
-		}
-		return visitor.visitLeave(this);
-	}
-
-	public Profile getMainProfile() {
-		return mainProfile;
-	}
-
-	public Workflow getMainWorkflow() {
-		return mainWorkflow;
-	}
-
-	public NamedSet<Profile> getProfiles() {
-		return profiles;
-	}
-
-	public UCFPackage getResources() {
-		try {
-			if (resources == null) {
-				resources = new UCFPackage();
-				resources
-						.setPackageMediaType(APPLICATION_VND_TAVERNA_SCUFL2_WORKFLOW_BUNDLE);
-			}
-			return resources;
-		} catch (IOException e) {
-			throw new IllegalStateException(
-					"Can't create new UCF package, no access to tmpdir?", e);
-		}
-	}
-
-	@Override
-	public URI getGlobalBaseURI() {
-		return getIdentifier();
-	}
-
-	public NamedSet<Workflow> getWorkflows() {
-		return workflows;
-	}
-
-	public void setMainProfile(Profile mainProfile) {
-		if (mainProfile != null)
-			getProfiles().add(mainProfile);
-		this.mainProfile = mainProfile;
-	}
-
-	public void setMainWorkflow(Workflow mainWorkflow) {
-		if (mainWorkflow != null)
-			getWorkflows().add(mainWorkflow);
-		this.mainWorkflow = mainWorkflow;
-	}
-
-	public void setProfiles(Set<Profile> profiles) {
-		this.profiles.clear();
-		this.profiles.addAll(profiles);
-	}
-
-	public void setResources(UCFPackage resources) {
-		this.resources = resources;
-	}
-
-	@Override
-	public void setGlobalBaseURI(URI globalBaseURI) {
-		setIdentifier(globalBaseURI);
-	}
-
-	public void setWorkflows(Set<Workflow> workflows) {
-		this.workflows.clear();
-		this.workflows.addAll(workflows);
-	}
-
-	/**
-	 * WorkflowBundles are only equal by instance identity.
-	 * <p>
-	 * Thus, if you load or construct the same workflow bundle twice, say as
-	 * <code>wb1</code> and <code>wb2</code>, then
-	 * <code>wb1.equals(wb2) == false</code>.
-	 * <p>
-	 * There are two reasons for this. Firstly, a workflow bundle is a complex
-	 * object, as it bundles not just the {@link #getWorkflows()} and
-	 * {@link #getProfiles()}, but also arbitrary resources in
-	 * {@link #getResources()}. Two workflow bundles can for most purposes be
-	 * assumed "equal" if they have the same identifier in
-	 * {@link #getGlobalBaseURI()} - they might however vary in which
-	 * annotations they carry.
-	 * <p>
-	 * The second is that applications might use {@link WorkflowBundle}
-	 * instances as keys in a {@link Map} of open workflows, and want to
-	 * distinguish between two workflow bundles from two different (but possibly
-	 * identical) files; for instance a .t2flow and a .wfbundle.
-	 * <p>
-	 * Note that contained workflow beans such as {@link Workflow} and
-	 * {@link Activity} will likewise not be
-	 * {@link AbstractNamed#equals(Object)} across workflow bundles, as a named
-	 * bean is considered equal only if its name matches and its parents are
-	 * (recursively) equal. You may however detach the children by setting their
-	 * parents to <code>null</code> and check for equality in isolation.
-	 */
-	@Override
-	public boolean equals(Object obj) {
-		return this == obj;
-	}
-
-	@Override
-	public int hashCode() {
-		return System.identityHashCode(this);
-	}
-
-	/**
-	 * Get all the 
-	 */
-	@Override
-	public NamedSet<Annotation> getAnnotations() {
-		return annotations;
-	}
-
-	public void setAnnotations(NamedSet<Annotation> annotations) {
-		this.annotations.clear();
-		this.annotations.addAll(annotations);
-	}
-	
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		super.cloneInto(clone, cloning);
-		WorkflowBundle cloneBundle = cloning.getCloned(this);
-		cloneBundle.setGlobalBaseURI(getGlobalBaseURI());
-		cloneBundle.setMainWorkflow(cloning.cloneIfNotInCache(getMainWorkflow()));
-		cloneBundle.setMainProfile(cloning.cloneIfNotInCache(getMainProfile()));
-		cloneBundle.setResources(getResources().clone());
-	}
-
-	@Override
-	protected URI getIdentifierRoot() {
-		return WORKFLOW_BUNDLE_ROOT;
-	}
-
-	// Derived operations
-
-	private transient URITools uriTools;
-
-	@Override
-	public URITools getUriTools() {
-		if (uriTools == null)
-			uriTools = new URITools();
-		return uriTools;
-	}
-
-	/**
-	 * Resolve a URI to a particular part of this workflow bundle.
-	 * 
-	 * @param uri
-	 *            The identifier to resolve.
-	 * @return The part of this workflow bundle that this resolves to (e.g.,
-	 *         processor, activity, port).
-	 * @see URITools#resolveUri(URI,WorkflowBundle)
-	 */
-	public WorkflowBean resolveURI(URI uri) {
-		return getUriTools().resolveUri(uri, this);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/package-info.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/package-info.java
deleted file mode 100644
index 6cbebdf..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/container/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.taverna.scufl2.api.container;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/BlockingControlLink.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/BlockingControlLink.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/BlockingControlLink.java
deleted file mode 100644
index b968576..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/BlockingControlLink.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.Collection;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.impl.NullSafeComparator;
-
-
-/**
- * A {@link ControlLink} that blocks a {@link Processor} from starting until
- * another <code>Processor</code> has finished.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-@SuppressWarnings("rawtypes")
-public class BlockingControlLink extends AbstractCloneable implements
-		ControlLink {
-	// TODO Don't refer to impl from api?
-	private static NullSafeComparator nullSafeCompare = new NullSafeComparator();
-
-	private Workflow parent;
-	private Processor block;
-	private Processor untilFinished;
-
-	/**
-	 * Constructs an unconnected <code>BlockingControlLink</code>.
-	 */
-	public BlockingControlLink() {
-	}
-
-	/**
-	 * Constructs a <code>BlockingControlLink</code> with the specified blocked
-	 * and control <code>Processor</code>s.
-	 * <p>
-	 * The parent {@link Workflow} is set to be the same as the parent of the
-	 * block <code>Processor</code>.
-	 * 
-	 * @param block
-	 *            the <code>Processor</code> that is blocked from starting.
-	 *            <strong>Must not</strong> be <code>null</code>
-	 * @param untilFinished
-	 *            the <code>Processor</code> that controls the block. Can be
-	 *            <code>null</code>.
-	 */
-	public BlockingControlLink(Processor block, Processor untilFinished) {
-		setUntilFinished(untilFinished);
-		setBlock(block);
-		setParent(block.getParent());
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public int compareTo(Object o) {
-		if (!(o instanceof BlockingControlLink))
-			return o.getClass().getCanonicalName()
-					.compareTo(getClass().getCanonicalName());
-		BlockingControlLink o1 = this;
-		BlockingControlLink o2 = (BlockingControlLink) o;
-		int untilFinishedCompare = nullSafeCompare.compare(
-				o1.getUntilFinished(), o2.getUntilFinished());
-		if (untilFinishedCompare != 0)
-			return untilFinishedCompare;
-		return nullSafeCompare.compare(o1.getBlock(), o2.getBlock());
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		BlockingControlLink other = (BlockingControlLink) obj;
-		if (getUntilFinished() == null) {
-			if (other.getUntilFinished() != null)
-				return false;
-		} else if (!getUntilFinished().equals(other.getUntilFinished()))
-			return false;
-		if (getParent() == null) {
-			if (other.getParent() != null)
-				return false;
-		} else if (!getParent().equals(other.getParent()))
-			return false;
-		if (getBlock() == null) {
-			if (other.getBlock() != null)
-				return false;
-		} else if (!getBlock().equals(other.getBlock()))
-			return false;
-		return true;
-	}
-
-	/**
-	 * Returns the <code>Processor</code> that is blocked from starting.
-	 * 
-	 * @return the <code>Processor</code> that is blocked from starting
-	 */
-	public Processor getBlock() {
-		return block;
-	}
-
-	@Override
-	public Workflow getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns the <code>Processor</code> that controls the block.
-	 * 
-	 * @return the <code>Processor</code> that controls the block
-	 */
-	public Processor getUntilFinished() {
-		return untilFinished;
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime
-				* result
-				+ (getUntilFinished() == null ? 0 : getUntilFinished()
-						.hashCode());
-		result = prime * result + (parent == null ? 0 : parent.hashCode());
-		result = prime * result
-				+ (getBlock() == null ? 0 : getBlock().hashCode());
-		return result;
-	}
-
-	/**
-	 * Sets the <code>Processor</code> that is blocked from starting.
-	 * 
-	 * @param block
-	 *            the <code>Processor</code> that is blocked from starting. Can
-	 *            be <code>null</code>
-	 */
-	public void setBlock(Processor block) {
-		this.block = block;
-	}
-
-	@Override
-	public void setParent(Workflow parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getControlLinks().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getControlLinks().add(this);
-	}
-
-	/**
-	 * Sets the <code>Processor</code> that controls the block.
-	 * 
-	 * @param untilFinished
-	 *            the <code>Processor</code> that controls the block. Can be
-	 *            <code>null</code>
-	 */
-	public void setUntilFinished(Processor untilFinished) {
-		this.untilFinished = untilFinished;
-	}
-
-	@Override
-	public String toString() {
-		String blockName = getBlock() != null ? getBlock().getName() : "";
-		String untilName = getUntilFinished() != null ? getUntilFinished()
-				.getName() : "";
-
-		return String.format("%s %s-|%s", getClass().getSimpleName(),
-				untilName, blockName);
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		BlockingControlLink cloneLink = (BlockingControlLink) clone;
-		cloneLink.setBlock(cloning.cloneOrOriginal(getBlock()));
-		cloneLink.setUntilFinished(cloning.cloneOrOriginal(getUntilFinished()));
-	}
-
-	// Derived operations
-
-	/**
-	 * Get all the annotations that pertain to this control link.
-	 * 
-	 * @return The collection of annotations.
-	 * @see Scufl2Tools#annotationsFor(Child)
-	 */
-	public Collection<Annotation> getAnnotations() {
-		return getTools().annotationsFor(this);
-	}
-
-	/**
-	 * Get the URI of this control link.
-	 * 
-	 * @return The absolute URI.
-	 * @see URITools#uriForBean(WorkflowBean)
-	 */
-	public URI getURI() {
-		return getUriTools().uriForBean(this);
-	}
-
-	/**
-	 * Get the URI of this control link relative to another workflow element.
-	 * 
-	 * @return The relative URI.
-	 * @see URITools#relativeUriForBean(WorkflowBean,WorflowBean)
-	 */
-	public URI getRelativeURI(WorkflowBean relativeTo) {
-		return getUriTools().relativeUriForBean(this, relativeTo);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/ControlLink.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/ControlLink.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/ControlLink.java
deleted file mode 100644
index 49f74b5..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/ControlLink.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import org.apache.taverna.scufl2.api.common.Child;
-
-/**
- * A link between two workflow components where one component controls the other in some way.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-@SuppressWarnings("rawtypes")
-public interface ControlLink extends Child<Workflow>, Comparable {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/DataLink.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/DataLink.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/DataLink.java
deleted file mode 100644
index 95f49ff..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/DataLink.java
+++ /dev/null
@@ -1,332 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.Collection;
-
-import org.apache.taverna.scufl2.api.annotation.Annotation;
-import org.apache.taverna.scufl2.api.common.AbstractCloneable;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.URITools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.impl.NullSafeComparator;
-import org.apache.taverna.scufl2.api.port.Port;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-
-
-/**
- * A <code>DataLink</code> controls the flow of data in a {@link Workflow}.
- * <p>
- * <code>DataLink</code>s receive data from a {@link SenderPort} and send the
- * data to a {@link ReceiverPort}. More than one <code>DataLink</code> may
- * receive data from the same <code>SenderPort</code> and more than one
- * <code>DataLink</code> may send data to the same <code>ReceiverPort</code>.
- * <p>
- * If more than one <code>DataLink</code> sends data to the same
- * <code>ReceiverPort</code> each <code>DataLink</code> must specify its merge
- * position. If only one <code>DataLink</code> sends data to a
- * <code>ReceiverPort</code> and there is no merge then the merge position must
- * be set to <code>null</code>.
- * 
- * @author Alan R Williams
- */
-@SuppressWarnings("rawtypes")
-public class DataLink extends AbstractCloneable implements Child<Workflow>,
-		Comparable {
-	private ReceiverPort sendsTo;
-	private SenderPort receivesFrom;
-	private Integer mergePosition;
-	private Workflow parent;
-
-	/**
-	 * Constructs an unconnected <code>DataLink</code>.
-	 */
-	public DataLink() {
-		super();
-	}
-
-	/**
-	 * Constructs a <code>DataLink</code> with the specified parent
-	 * {@link Workflow} that connects the specified {@link SenderPort} and
-	 * {@link ReceiverPort}.
-	 * 
-	 * @param parent
-	 *            the <code>Workflow</code> to set as the <code>DataLink</code>
-	 *            's parent. Can be <code>null</code>.
-	 * @param senderPort
-	 *            the <code>SenderPort</code> that the <code>DataLink</code>
-	 *            receives data from. Can be <code>null</code>.
-	 * @param receiverPort
-	 *            the <code>ReceiverPort</code> that the <code>DataLink</code>
-	 *            sends data to. Can be <code>null</code>.
-	 */
-	public DataLink(Workflow parent, SenderPort senderPort,
-			ReceiverPort receiverPort) {
-		setReceivesFrom(senderPort);
-		setSendsTo(receiverPort);
-		setParent(parent);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		return visitor.visit(this);
-	}
-
-	@Override
-	public int compareTo(Object other) {
-		if (getClass() != other.getClass()) {
-			int classCompare = getClass().getCanonicalName().compareTo(
-					other.getClass().getCanonicalName());
-			if (classCompare != 0)
-				// Allow having say InputPorts and OutputPorts in the same sorted list
-				return classCompare;
-		}
-		DataLink o1 = this;
-		DataLink o2 = (DataLink) other;
-
-		int senderCompare = portCompare(o1.getReceivesFrom(),
-				o2.getReceivesFrom());
-		if (senderCompare != 0)
-			return senderCompare;
-
-		int receiverCompare = portCompare(o1.getSendsTo(), o2.getSendsTo());
-		if (receiverCompare != 0)
-			return receiverCompare;
-		// TODO Don't refer to impl from api?
-		return NullSafeComparator.compareObjects(o1.getMergePosition(),
-				o2.getMergePosition());
-	}
-
-	@SuppressWarnings("unchecked")
-	private int portCompare(Port a, Port b) {
-		// TODO Don't refer to impl from api?
-		Integer nullCompare = NullSafeComparator.nullCompare(a, b);
-		if (nullCompare != null)
-			return nullCompare;
-
-		// All known Port implementations are also Child instances
-		WorkflowBean aParent = ((Child) a).getParent();
-		WorkflowBean bParent = ((Child) b).getParent();
-		// TODO Don't refer to impl from api?
-		int parentCompare = NullSafeComparator.compareObjects(aParent, bParent);
-		if (parentCompare != 0)
-			return parentCompare;
-		// OK, just to boring Port compare then
-		return a.compareTo(b);
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		DataLink other = (DataLink) obj;
-		if (getSendsTo() == null) {
-			if (other.getSendsTo() != null)
-				return false;
-		} else if (!getSendsTo().equals(other.getSendsTo()))
-			return false;
-		if (getReceivesFrom() == null) {
-			if (other.getReceivesFrom() != null)
-				return false;
-		} else if (!getReceivesFrom().equals(other.getReceivesFrom()))
-			return false;
-		if (getMergePosition() == null) {
-			if (other.getMergePosition() != null)
-				return false;
-		} else if (!getMergePosition().equals(other.getMergePosition())) {
-			return false;
-		}
-
-		return true;
-	}
-
-	/**
-	 * Returns the position that this <code>DataLink</code> should join a merge.
-	 * 
-	 * If there is no merge then the value must be <code>null</code>.
-	 * <p>
-	 * When more than one <code>DataLink</code> sends the data to the same
-	 * {@link ReceiverPort} then each <code>DataLink</code> must specify its
-	 * merge position. Merge positions must be sequential staring from zero.
-	 * <p>
-	 * For a merge with only one <code>DataLink</code> input the merge position
-	 * is zero.
-	 * 
-	 * @return the position that this <code>DataLink</code> should join a merge
-	 */
-	public Integer getMergePosition() {
-		return mergePosition;
-	}
-
-	/**
-	 * Returns the parent <code>Workflow</code> of null if this
-	 * <code>DataLink</code> is an orphan.
-	 * 
-	 * @return the parent <code>Workflow</code> of null if this
-	 *         <code>DataLink</code> is an orphan
-	 */
-	@Override
-	public Workflow getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns the <code>SenderPort</code> that this <code>DataLink</code>
-	 * receives data from.
-	 * 
-	 * @return the <code>SenderPort</code> that this <code>DataLink</code>
-	 *         receives data from
-	 */
-	public SenderPort getReceivesFrom() {
-		return receivesFrom;
-	}
-
-	/**
-	 * Returns the <code>ReceiverPort</code> that this <code>DataLink</code>
-	 * sends data to.
-	 * 
-	 * @return the <code>ReceiverPort</code> that this <code>DataLink</code>
-	 *         sends data to
-	 */
-	public ReceiverPort getSendsTo() {
-		return sendsTo;
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result
-				+ (getSendsTo() == null ? 0 : getSendsTo().hashCode());
-		result = prime
-				* result
-				+ (getReceivesFrom() == null ? 0 : getReceivesFrom().hashCode());
-		return result;
-	}
-
-	/**
-	 * Sets the position that this <code>DataLink</code> should join a merge.
-	 * 
-	 * If there is no merge then the value must be set to <code>null</code>.
-	 * <p>
-	 * When more than one <code>DataLink</code> sends the data to the same
-	 * {@link ReceiverPort} then each <code>DataLink</code> must specify its
-	 * merge position. Merge positions must be sequential staring from zero.
-	 * <p>
-	 * For a merge with only one <code>DataLink</code> input the merge position
-	 * is set to zero.
-	 * 
-	 * @param mergePosition
-	 *            the position that this <code>DataLink</code> should join a
-	 *            merge. Can be null.
-	 */
-	public void setMergePosition(Integer mergePosition) {
-		this.mergePosition = mergePosition;
-	}
-
-	@Override
-	public void setParent(Workflow parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getDataLinks().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getDataLinks().add(this);
-	}
-
-	/**
-	 * Returns the <code>SenderPort</code> that this <code>DataLink</code>
-	 * receives data from.
-	 * 
-	 * @param receivesFrom
-	 *            the <code>SenderPort</code> that this <code>DataLink</code>
-	 *            receives data from
-	 */
-	public void setReceivesFrom(SenderPort receivesFrom) {
-		this.receivesFrom = receivesFrom;
-	}
-
-	/**
-	 * Sets the <code>ReceiverPort</code> that this <code>DataLink</code> sends
-	 * data to.
-	 * 
-	 * @param sendsTo
-	 *            the <code>ReceiverPort</code> that this <code>DataLink</code>
-	 *            sends data to
-	 */
-	public void setSendsTo(ReceiverPort sendsTo) {
-		this.sendsTo = sendsTo;
-	}
-
-	@Override
-	public String toString() {
-		return String.format("%s %s=>%s", getClass().getSimpleName(),
-				getReceivesFrom() != null ? getReceivesFrom().getName() : "",
-				getSendsTo() != null ? getSendsTo().getName() : "");
-	}
-
-	@Override
-	protected void cloneInto(WorkflowBean clone, Cloning cloning) {
-		DataLink cloneLink = (DataLink) clone;
-		cloneLink.setMergePosition(getMergePosition());
-		cloneLink.setReceivesFrom(cloning.cloneIfNotInCache(getReceivesFrom()));
-		cloneLink.setSendsTo(cloning.cloneIfNotInCache(getSendsTo()));
-	}
-
-	// Derived operations
-
-	/**
-	 * Get all the annotations that pertain to this datalink.
-	 * 
-	 * @return The collection of annotations.
-	 * @see Scufl2Tools#annotationsFor(Child)
-	 */
-	public Collection<Annotation> getAnnotations() {
-		return getTools().annotationsFor(this);
-	}
-
-	/**
-	 * Get the URI of this datalink.
-	 * 
-	 * @return The absolute URI.
-	 * @see URITools#uriForBean(WorkflowBean)
-	 */
-	public URI getURI() {
-		return getUriTools().uriForBean(this);
-	}
-
-	/**
-	 * Get the URI of this datalink relative to another workflow element.
-	 * 
-	 * @return The relative URI.
-	 * @see URITools#relativeUriForBean(WorkflowBean,WorflowBean)
-	 */
-	public URI getRelativeURI(WorkflowBean relativeTo) {
-		return getUriTools().relativeUriForBean(this, relativeTo);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Processor.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Processor.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Processor.java
deleted file mode 100644
index d3eccb1..0000000
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/core/Processor.java
+++ /dev/null
@@ -1,459 +0,0 @@
-package org.apache.taverna.scufl2.api.core;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.AbstractNamed;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Configurable;
-import org.apache.taverna.scufl2.api.common.NamedSet;
-import org.apache.taverna.scufl2.api.common.Ported;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.Visitor;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-
-/**
- * A <code>Processor</code> is a {@link Workflow} component that controls the
- * invocation of activities.
- * <p>
- * When a <code>Workflow</code> is run, a particular {@link Activity} will be
- * specified as bound to the <code>Processor</code> by the {@link Profile}.
- * <p>
- * A <code>Processor</code> contains an {@link IterationStrategyStack} to
- * describe iterations, and may have {@link InputProcessorPort input} and
- * {@link OutputProcessorPort output} ports. The <code>Processor</code> can be
- * configured with a {@link Configuration} within a {@link Profile} to specify
- * execution details such as retries or parallel jobs.
- * <p>
- * The {@link #getType()} of a Processor is normally fixed to the value given by
- * {@value #PROCESSOR_TYPE}. The configuration of a processor should
- * correspondingly be of the type given by the constant {@value #CONFIG_TYPE}.
- * <p>
- * The default (implied) configuration of a Processor is as of Taverna 3.0 alpha
- * 2:
- * 
- * <pre>
- * { 
- *  "retry": {
- *     "maxRetries": 0,
- *     "initialDelay": 1000,
- *     "maxDelay": 5000,
- *     "backoffFactor": 1.0
- *  }, 
- *  "parallelize": {
- *      "maxJobs": 1
- *  }
- * </pre>
- * 
- * These defaults mean that the processor would not retry the operation, and
- * would only perform one concurrent invocation within a given workflow run.
- * <p>
- * You can provide a partial configuration, e.g. to activate 5 retries using the
- * default initialDelay, add a {@link Configuration} of this {@link Processor}
- * to the {@link Profile} with the keys:
- * 
- * <pre>
- * { 
- *   "retry": {
- *     "maxRetries": 5
- *   }
- * }
- * </pre>
- * <p>
- * Additionally, do..while-style looping can be configured using the key "loop":
- * 
- * <pre>
- * {
- *   "loop": {
- *     "comparePort": "outputB",
- *     "comparison": "EqualTo",
- *     "compareValue": "15",
- *     "delay": 0.5,
- *     "runFirst": true,
- *     "isFeedBack": false,
- *     "conditionActivity": "looping-loop"
- *   }
- * }
- * </pre>
- * <p>
- * Note that this is different from looping over incoming values, which happens
- * according to the {@link #getIterationStrategyStack()}..
- * </p>
- * The above loop configuration would repeat calling of the activity bound to
- * this processor until its output "outputB" is equal to the string value "15" -
- * with a delay of 0.5 seconds between each try.
- * <p>
- * if <code>"isFeedBack": true</code>, then outputs from the processor will on
- * repeated invocations replace the original input values where the port names
- * match. Note that the processor ports should be connected in the containing
- * workflow.
- * <p>
- * <code>"runFirst": true</code> means that the activity is called at least
- * once, which is generally needed to get a port value to compare.
- * <p>
- * The <code>"conditionActivity"</code> indicates the name of an
- * {@link Activity} within the {@link Profile}, here called "looping-loop". This
- * activity is invoked with the current processor output values as input ports,
- * and if its output port "loop" contains the string value "true", then the
- * processor is invoked again. If the condition output port matches a processor
- * input port, then the returned values are used instead of the original
- * processor inputs. The conditionActivity is then repeated on the new output
- * values, repeated until "loop" no longer is "true".
- * <p>
- * As of Taverna 3 alpha 2, the "conditionActivity" is called directly without
- * consideration of the other parameters. This typically contains a beanshell
- * script generated from the above parameters and performs the actual
- * comparisons.
- * <p>
- * FIXME: This conditionActivity currently has to be regenerated when the other
- * parameters have changed. This now happens within the Taverna 3 workbench user
- * interface when configuring looping. The ideal SCUFL2 behaviour would be to
- * EITHER provide a custom conditionActivity OR the parameters.
- * 
- * @author Alan R Williams
- * @author Stian Soiland-Reyes
- */
-public class Processor extends AbstractNamed implements Child<Workflow>,
-		Ported, Configurable {
-	public static final URI PROCESSOR_TYPE = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2#Processor");
-	public static final URI CONFIG_TYPE = URI
-			.create("http://ns.taverna.org.uk/2010/scufl2#ProcessorConfig");
-
-	private final NamedSet<OutputProcessorPort> outputPorts = new NamedSet<>();
-	private final NamedSet<InputProcessorPort> inputPorts = new NamedSet<>();
-	private IterationStrategyStack iterationStrategyStack = new IterationStrategyStack(
-			this);
-	private Workflow parent;
-	private URI type = PROCESSOR_TYPE;
-
-	/**
-	 * Constructs a <code>Processor</code> with a random UUID as the name and no
-	 * parent {@link Workflow}.
-	 */
-	public Processor() {
-		super();
-	}
-
-	/**
-	 * Constructs a <code>Processor</code> with the specified parent
-	 * {@link Workflow} and name.
-	 * 
-	 * @param parent
-	 *            the <code>Workflow</code> to set as the <code>Processor</code>
-	 *            's parent. Can be <code>null</code>.
-	 * @param name
-	 *            the name of the <code>Processor</code>. <strong>Must
-	 *            not</strong> be <code>null</code> or an empty String.
-	 */
-	public Processor(Workflow parent, String name) {
-		super(name);
-		setParent(parent);
-	}
-
-	@Override
-	public boolean accept(Visitor visitor) {
-		if (visitor.visitEnter(this)) {
-			List<Iterable<? extends WorkflowBean>> children = new ArrayList<>();
-			children.add(getInputPorts());
-			children.add(getOutputPorts());
-			outer: for (Iterable<? extends WorkflowBean> it : children)
-				for (WorkflowBean bean : it)
-					if (!bean.accept(visitor))
-						break outer;
-			if (getIterationStrategyStack() != null)
-				getIterationStrategyStack().accept(visitor);
-		}
-		return visitor.visitLeave(this);
-	}
-
-	/**
-	 * Returns the <code>NamedSet</code> of input ports.
-	 * 
-	 * Returns an empty <code>NamedSet</code> if there are no input ports.
-	 * 
-	 * @return the input ports
-	 */
-	@Override
-	public NamedSet<InputProcessorPort> getInputPorts() {
-		return inputPorts;
-	}
-
-	/**
-	 * Returns the <code>IterationStrategyStack</code> or <code>null</code> if
-	 * there is no <code>IterationStrategyStack</code>.
-	 * 
-	 * @return the <code>IterationStrategyStack</code> or <code>null</code> if
-	 *         there is no <code>IterationStrategyStack</code>
-	 */
-	public IterationStrategyStack getIterationStrategyStack() {
-		return iterationStrategyStack;
-	}
-
-	/**
-	 * Returns the <code>NamedSet</code> of output ports.
-	 * 
-	 * Returns an empty <code>NamedSet</code> if there are no output ports.
-	 * 
-	 * @return the output ports
-	 */
-	@Override
-	public NamedSet<OutputProcessorPort> getOutputPorts() {
-		return outputPorts;
-	}
-
-	/**
-	 * Returns the parent <code>Workflow</code> of null if this
-	 * <code>Processor</code> is an orphan.
-	 * 
-	 * @return the parent <code>Workflow</code> of null if this
-	 *         <code>Processor</code> is an orphan
-	 */
-	@Override
-	public Workflow getParent() {
-		return parent;
-	}
-
-	/**
-	 * Sets the input ports.
-	 * 
-	 * @return the input ports. <strong>Must not</strong> be <code>null</code>
-	 */
-	public void setInputPorts(Set<InputProcessorPort> inputPorts) {
-		this.inputPorts.clear();
-		this.inputPorts.addAll(inputPorts);
-	}
-
-	/**
-	 * Sets the <code>IterationStrategyStack</code>.
-	 * 
-	 * @param iterationStrategyStack
-	 *            the <code>IterationStrategyStack</code>. Can be
-	 *            <code>null</code>
-	 */
-	public void setIterationStrategyStack(
-			IterationStrategyStack iterationStrategyStack) {
-		this.iterationStrategyStack = iterationStrategyStack;
-		if (iterationStrategyStack != null)
-			iterationStrategyStack.setParent(this);
-	}
-
-	/**
-	 * Sets the output ports.
-	 * 
-	 * @return the output ports. <strong>Must not</strong> be <code>null</code>
-	 */
-	public void setOutputPorts(Set<OutputProcessorPort> outputPorts) {
-		this.outputPorts.clear();
-		this.outputPorts.addAll(outputPorts);
-	}
-
-	@Override
-	public void setParent(Workflow parent) {
-		if (this.parent != null && this.parent != parent)
-			this.parent.getProcessors().remove(this);
-		this.parent = parent;
-		if (parent != null)
-			parent.getProcessors().add(this);
-	}
-
-	@Override
-	public URI getType() {
-		return type;
-	}
-
-	@Override
-	public void setType(URI type) {
-		this.type = type;
-	}
-
-	// Derived operations, implemented via Scufl2Tools
-
-	/**
-	 * Find all configurations of this processor in a profile.
-	 * 
-	 * @param profile
-	 *            The profile to search within.
-	 * @return The configurations that were found.
-	 * @see Scufl2Tools#configurationsFor(Configurable,Profile)
-	 */
-	public List<Configuration> getConfigurations(Profile profile) {
-		return getTools().configurationsFor(this, profile);
-	}
-
-	/**
-	 * Find the configuration of this processor in a profile.
-	 * 
-	 * @param profile
-	 *            The profile to search within.
-	 * @return The configuration.
-	 * @throws IllegalStateException
-	 *             If there are more than one configuration for the processor.
-	 * @throws IndexOutOfBoundsException
-	 *             If there aren't any configurations for the processor.
-	 * @see Scufl2Tools#configurationFor(Configurable,Profile)
-	 */
-	public Configuration getConfiguration(Profile profile) {
-		return getTools().configurationFor(this, profile);
-	}
-
-	/**
-	 * Create a configuration for a processor.
-	 * 
-	 * @param profile
-	 *            The profile to create the configuration within.
-	 * @return The created configuration.
-	 * @see Scufl2Tools#createConfigurationFor(Configurable,Profile)
-	 */
-	public Configuration createConfiguration(Profile profile) {
-		return getTools().createConfigurationFor(this, profile);
-	}
-
-	/**
-	 * Get the configuration of the activity bound to this processor in the
-	 * given profile.
-	 * 
-	 * @param profile
-	 *            The profile that provides the binding and the configuration.
-	 * @return The <i>activity</i> configuration.
-	 * @see Scufl2Tools#configurationForActivityBoundToProcessor(Processor,Profile)
-	 */
-	public Configuration getActivityConfiguration(Profile profile) {
-		return getTools().configurationForActivityBoundToProcessor(this,
-				profile);
-	}
-
-	/**
-	 * Create an untyped activity for the processor.
-	 * 
-	 * @param profile
-	 *            The profile to create the activity within.
-	 * @return The created activity.
-	 * @see Scufl2Tools#createActivityFromProcessor(Processor,Profile)
-	 */
-	public Activity createActivity(Profile profile) {
-		return getTools().createActivityFromProcessor(this, profile);
-	}
-
-	/**
-	 * Get the workflow nested within this processor.
-	 * 
-	 * @param profile
-	 *            The profile that bound the nested workflow to this processor.
-	 * @return The nested workflow, or <tt>null</tt> if it does not exist (e.g.,
-	 *         if this processor is holding a different type of activity).
-	 * @see Scufl2Tools#nestedWorkflowForProcessor(Processor,Profile)
-	 */
-	public Workflow getNestedWorkflow(Profile profile) {
-		return getTools().nestedWorkflowForProcessor(this, profile);
-	}
-
-	/**
-	 * Get the control links that prevent this processor from running. Does not
-	 * judge whether they are <i>currently</i> blocking the processor.
-	 * 
-	 * @return The list of control links blocking this processor.
-	 * @see Scufl2Tools#controlLinksBlocking(Processor)
-	 */
-	public List<BlockingControlLink> controlLinksBlocking() {
-		return getTools().controlLinksBlocking(this);
-	}
-
-	/**
-	 * Get the control links that this processor will notify once it completes
-	 * running.
-	 * 
-	 * @return The list of control links waiting for this processor.
-	 * @see Scufl2Tools#controlLinksWaitingFor(Processor)
-	 */
-	public List<BlockingControlLink> controlLinksWaitingFor() {
-		return getTools().controlLinksWaitingFor(this);
-	}
-
-	/**
-	 * Get the binding for this processor in the given profile.
-	 * 
-	 * @param profile
-	 *            The profile to search within.
-	 * @return The processor binding.
-	 * @throws IllegalStateException
-	 *             If there are more than one binding for the processor.
-	 * @throws IndexOutOfBoundsException
-	 *             If there aren't any bindings for the processor.
-	 * @see Scufl2Tools#processorBindingForProcessor(Processor,Profile)
-	 */
-	public ProcessorBinding getBinding(Profile profile) {
-		return getTools().processorBindingForProcessor(this, profile);
-	}
-
-	/**
-	 * Get the activity bound to this processor in the given profile.
-	 * 
-	 * @param profile
-	 *            The profile to search within.
-	 * @return The activity.
-	 * @throws IllegalStateException
-	 *             If there are more than one activity for the processor.
-	 * @throws IndexOutOfBoundsException
-	 *             If there aren't any activities for the processor.
-	 * @see #getBinding(Profile)
-	 * @see Scufl2Tools#processorBindingForProcessor(Processor,Profile)
-	 */
-	public Activity getActivity(Profile profile) {
-		return getBinding(profile).getBoundActivity();
-	}
-
-	/**
-	 * Get the collection of processors that can be downstream of this
-	 * processor.
-	 * 
-	 * @return A set of processors that it is legal to have a datalink or
-	 *         control link from this processor to.
-	 * @see Scufl2Tools#possibleDownStreamProcessors(Workflow,Processor)
-	 */
-	public Set<Processor> getPossibleDownStreamProcessors() {
-		return getTools().possibleDownStreamProcessors(getParent(), this);
-	}
-
-	/**
-	 * Get the collection of processors that can be upstream of this
-	 * processor.
-	 * 
-	 * @return A set of processors that it is legal to have a datalink or
-	 *         control link to this processor from.
-	 * @see Scufl2Tools#possibleUpStreamProcessors(Workflow,Processor)
-	 */
-	public Set<Processor> getPossibleUpStreamProcessors() {
-		return getTools().possibleUpStreamProcessors(getParent(), this);
-	}
-}


[48/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/147eda4d-f40f-418b-bca2-dc12e19122de.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/147eda4d-f40f-418b-bca2-dc12e19122de.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/147eda4d-f40f-418b-bca2-dc12e19122de.txt
deleted file mode 100644
index 6181cf3..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/147eda4d-f40f-418b-bca2-dc12e19122de.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getResultResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><output>iVBORw0KGgoAAAANSUhEUgAAA50AAAEgCAYAAAA35xfIAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAEZ0FNQQAAsY58+1GTAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAIABJREFUeNrsnQd4VEX3xk8ggKAU6UWKFKkCgY8O0pv03nsR6YIIiELoHSmC0qs0kS4gIC1SFDE06b13UboI/ved75v932zu3b2bbEIC7+959iF7y9yZ2d3hvHPOnPFrOXt2qefPn5cSQgghhBBCCCHEh8xr0ybQXwlOP78B7A5CCCGEEEIIIT4m0F//lS1lSsmeKhW7hBBCCCGEEEJIuDh69aocu3ZN/e0UnRCcNfPmZe8QQgghhBBCCAkX//77r1N0xngZG/j333/L/fv35fnz55H63J9//jlSnrN582Y5duxYlOlv9DX63LUvIrv/CSGEEEIIIVGPmHlq1MCazlLwdCLEVvPaa6/J2bNnpUaNGhFeCTxryJAh6jVmzBj13IoVK0rMmDG9FpuNGjVSr3HjxsnAgQMlX7588s4770Ro/SGuqlSpInHjxpVChQpFeH9lypRJnjx5ItWrV4/Q5+zdu1eyZs0qp0+fNv0e7Nu3T4oVKyYjRoyQwMBACQ4Olnr16jm+Tn6yfPlyGTRokPos8J4QQggh5GUG9uC2bdvk7bffjrRnNmnSROrUqROmeydOnKj+feutt0K04ccff5QzZ86o1/nz5y3bs337dsmQIYPb/kBZr7/+urzxxhvO40eOHJHr169L8uTJw9X23bt3y08//aTsVNTD398/hCbYtGmTZM6c2VZZaCucOidPnpSMGTOG0CBbt26VX3/9
 VdKnTy+xY8f2+Ax39QoP7trkqb3u2ueuja7cvn1bleX62Vkdh5cTrwOrVg209HRC1Pzzzz+2OiFNmjRKXIQVPAs/mOPHj0uDBg1k2rRpsmrVKq/L+e677+Tbb7+VpUuXyuPHj9UPJSAgIMJ/8EOHDpU//vhDunbtGikDzL1792TSpEkR+oybN29K3bp1JWHChJbfg8GDB0vhwoXlzp078ssvv8iKFSvUAATQF/gCom8IIYQQQl52YC9Vrlw5Up+5Zs2aMN8L58HVq1dDtaFSpUqycuVK9XJnj8Ne99Qf5cuXl/79+4c4Xr9+fZ/Yhxs2bJA4ceLIgQMHpGzZss7jS5YskcaNG6vn2AU2LTh06JCUKFHCeXzAgAGqjxHVV61aNWdkn7tnWNXLDmvXrjU97u55dtpr1T53bTQD2sDss7M6bsS29E6WLJnyYl1zqNXVq1dL6dKl5YcffpCPP/5Yrly5ogQHZkLgpZw7d6588sknSojBE7Zs2TJJkiSJsxx46KCGMfOhOxezAFDXaCy+xLrBZtcvWrRIlY8fSqpUqWTYsGHSrFkzZzhnUFCQqivEsAY/nJ49e6py4JHEbADqhhc8dPhhlClTRtUVszFW7Y0RI0aoWZzRo0fL5MmT1fvOnTurvsBMQrx48VS5aBfqhJkFq74xayc+vOHDh6u+QFl3795Vz0A/o73w5gKr/nD3uUGco64I09WfjZGGDRtKy5Yt1ZfTivjx46sZPcxYXbp0Sc1u5M+f33kewrNTp07Sr1+/UP1GCCGEEPIqsH//fvn999/lzTfflPfff99pP27ZskXKlSvnFIDwisEm27hxo5rU//7775XnqkCBAuoa2IPr1q2TBw8eyLvvviu5c+dWx//6669Q1+LY+vXr1TMrVKjgrIs+bmb7OcWBwyb/8ssvQx1HvfLkySM7d+6U2rVrS4sWLTy2He2AzfnVV18pWxDtfPTokdv+gdcN7dDeUUTewYnk6jFERCNAX
 caOHes8DgcWXgkSJLD9Gc2ePdv59xdffKEcJ6gvbOwTJ06o43COzZ8/X9q0aeP2GVb18vSdwDHcA80CezpFihS22mR1Dp8Xvl9oh1n78B2AHrFqo/F+LVxTp04davmc1XFXbCuBW7duybx589TsR/fu3ZWLFq9Ro0Yp8QHBhIoePHhQiRWoZnjAIGq0ONLlQJHXqlVL+vbt6zwO4QqhBZGF2YEiRYqYXo/yoebhWYWgw7/NmzdXHxS8pcWLF1deQPwQIfTA4cOH1f34wuKLDkGo3c/jx4+Xhw8fKpcyxBh+iO7a6wqeAc+j9qhC4KEtCxYsUO+/+eYbJTbxctc3ru2Ep/azzz6TXr16qUHmt99+C9GHeCZw1x/u2oEvB75I6GtX+vTpo4Sv/tFYgVBofMHQ1xCpaKvxC48++fPPP53eT0IIIYSQVw1E4sGuQjgrbD2gbTYNHA1wgoCaNWsqexG2IP6GIIAtiCVjEGBwnsDW1OW4XotjWPaFf/Fs2Nb6WtjJsM1w3Y4dO7xqB8rv0qWLUzTCu+UJCEc4deD4ABA0qK+7/oFI1XY0xFG7du1MQ1ThmYNAhd0KIeULLl++rPoXYhA2fl5DklXYtXb6zE69zL4T2rZHm915G+0CMekqBI3t0zrGqo3G+5GrBY6oDh06hCjP6ni4RKdW0u3bt5dSpUo5v7z6S4DYYMQAa9GGHw46G+s1Xb1lKAdeMHj6jOKtVatWyjMHLyREmtn1uny9xhACC+ALimdB4GCN4blz5+S9995TQgizPwA/FFwDD6iePYgVK5byxOkvBX607trrCmYIgI5pL1mypKq7nlGA4GvdurX621PfGNuJvsySJYsaKDp27Gj55XPXH+7aAdc6vkzGGHuA/sMPAAIeMy3wnl64cEGJW1dQN3xeGCgxCwLvKkKaNenSpVP/YnAjhBBCCHkVgScI3ix4sbRDxB0w9GfOnKnsYtiyp06dUmGusF1hc6EcOBOsrkXEHW
 xMXI8cKdomhPCDhxQ2IWxLXG8G7EQ8Ay9Xh8ucOXPUOlJvaNq0qbKHUVeIZmNUnFn/wIOKyEAAe1rb0a5AnMFbjIg7LNULL1haBkfO4sWLlV0LcW1c+whHjR0xaKdeZt8J2Obank6bNm2424O+M4p11/YBd23U90PrIKJyxowZoTSQ2XErvFrZqivoLlRSCzPt3UMHwqtmVo6rENVfMKvnAt0RuhP1Ylf9oeLa3r17q05Fwh2EvuoF1q6zJBBYEGJIgoPQA/yQvG0vftQA4aXZsmVTf2MGB/Hr8NxiMbEWhp76xvgc/A3vK7y2U6ZMUR8ovpSuiYo89YfddmggMDHzgrBp46zLwoULnWEcAIPahAkT1CAILzf6GyIZYQR6YbqehXO3IJkQQggh5GUFCXMgCBHBB1sRzg5PwG7SnigNvGeu9rS7a2Ef6pBJLHXSNh2Wa3kUBw6bEgkhzY7bud8V2InwVsLZgYg+T/0DWxchxIhUnDVrluzZs8e0XCxf02sVsfQMEXxhTR6qc5kgDDhHjhzqGPKaGO1p9J+rsyYs9QrLd8IXgtq1fXbbCCcUhDRsfQhNOPYQqYnvndnxHj16mOs5XzQEqvja//Zg0TMvWJuIUFOISe3x8gU6Lh1xxgCLdQHWgsLLhk7VYhA/DvxA9T1ff/21mmXBCz9IuLah7j/66COnZ9Vbd7YOUcViYY0OG0A8NGYrtOjypm9QD/zg4IXFTMPTp09Nt0lx1x/ugBjGAIB+MIL6og/1C+1DPeE91uVjVgZx6EB7ahEXji8uXhp4dNE3xrUEhBBCCCGvCnBAQER9/vnnUrBgwRDnnj175hQh8AC6A0Jh165dISLy3F2LKDN4M/GCPQogEiAMABwhcCD4CnhEsV7UVGzEiKFsxw8++CBU4lGr/oF3E/WGMLO7NtPTmkJ3dYQwxq4LRkEGGxj2vdYGuD8smYJd6+XuOxFRmLXPbhshkDEBgHpj6R085BCWVsctJzN
 80RCsQUSSHsx+YH3k1KlTlbsVYglfNFQesxu+AB8SQmF1nDSeB0GEsFaEF7Rt21YJHxyHkMS6Q3SwvkeHGCCBD77Q8G4mTZpU1REpozEbpJPw2AHCFiGxSH4EcQbgEkf8OlzrqI8G4QR2+waDCmZH0Kf4Gx5Zsy1S3PWHOzDQwHuKa+3M2mggmBG2gUEMX158yfBlwyCGRd9Yg6pBnyBZka9SRRNCCCGERGUg5qpWrep8j1BU2Fs6aQzW+iHsErZpzpw5lUMCdhj+9mT/Ikz1P//5j7oX0WVW2UJxLZwbEGzwsMGJAbsX9YKtCBsRNihysvgKZKnFWkDXzKga2Newy7HEzeiowXpCRBy69g9scdjLZgmNNMgMixwtWAKGNaw64hAOEtigsJ8hdqFRsHTNqo5YlwhvKjx2GuSpweeC5Jy4D04iiEftQLJ6hrt6eWozPld8RrD3kf/FGIbs7nlW57AEDms44QSyah9sdKs26vt9FbHo13zmzEDx8xtQKyBAahoWknqLVsjGikEAoTEREV6JTkH5EGWu4bfoXAhIY/Zaq3swOOA46oh/cb8OmbULykRWWAgxO5m8vOkbXIe6eqqTVX9ExuCK2Tn8oIzhHQiVRlgwfkhhCcUghBBCCHkZ0FF2sPtgZxptPwgFb+xOM3vb3XPN7Fpvn2kHeCWRXNRdVlxv+gdiB4JNJ8a0ug9iDQLPTnvCWkd4R5GY05hvxlN7PNXLl98JX+BtG+2ywqHJVjo+w3mtW/vFzFOjRimH6CyVPVUqyZYyZZgLRZiq60ajiFF2PeYr/Pz81AeEf13rAcFp5oo3uwcCTdcRx8PilUM7ES6ADwszT3bvsdM3uM5Onaz6I6JB/8Gzi0xYRrCeE+tasT6UEEIIIeRVBbaZdgi42n7e2p1m9ra755qVHxERaHiW3snBF/0DjyyiBl2TDrneh+367LYnrHXEUjHXdbOenuOpXr78TvgCb9tol2PXrqnXgVWrBnLz
 RB8BF7XeZ4eI6gtvwnYJIYQQQl5G4NHSW9bhhSgwYGdLOU/XeJtJ1ggSPyK01E5dPdXNbAmYLgtrVo3AC4i1gO5AeCmy7LoD+UmwRA2JblzXusJ7qPOcuKsjwNIxLL9DOWa5XdAHOO+aB8XsGe7qFF7MnmfnnKc2errX0/1W/eMKRSchhBBCCCERBJYiYZ0cDHa8kPkfYB2eJzxds2bNmjDXa9++fWprPDt1DUvdUBbWCiLyzUj9+vUt16N6A4SSTuaJdZQa7HuJ9Yt4jh10plkkx3Rd7wnxiz6GoEKSTi24rJ5hVSc7IEeKFe7aZKe9Vm2021dW91v1j1eiE5lgURGdJjc6g5kY46yNfiG9r6dZGG9nadBXxuN2ZzzwHNfZJDxDDwb44brOdu3cudMZE26njvo6T8/FMxFLTwghhBBCwg9CJpEUB6/x48erY8Y8INiFAOvqYDMaM9kar8EuBth/3lWcmN2HY7Dj9e4Grsdd7UFPddV1hK2pt1Oxk8ekcOHCygumM7hC6GJvSCNYt4l2rVu3Tr2HXWr0mqFdettBI0hmicQ5ED6u+94jcZJdkNwTiZeQTfbkyZNO3QOdgH7FNiDI1IoETfPnz3f7DKs6ueLaZrzHfXjvas97apPVOXxeut+t2uiuXE/3u+sf26ITYqVy5cpKrSKzkicXeFQHChyiD52CZD969gZbgniahfF2lgZ74BiP253xwHPQ50ZGjhzpHBQgWF23QUEdcJ/dOmJTYFwHsWp8LmLmjbNVeKYnNzshhBBCCAk7sBk1NWvWVFvuwd7D33qPTX0NbNaGDRuqHBp6e0Btx7neh2NIwoN/sT3g8OHDndcWL15cbaeC65DJ1RtQfpcuXZyi0Vh/K7DUCnYmbFAAUaK3FtSgjsgBgnBfCGKI1AULFqhzEDfY4s9snSOEKQSq3sEhvMDhgv7VaxuDgoJUplkN1oN66jO7dXJtM/bH1O31dvtGKyAIXbdrcW1jeO73t
 n9MRSfiu+E6Rbpi7BOpt9+wM2uC9MBQ6K5eNcxsaFVtVY7VLA86HyIRMwIo31MZrh2EbVMwW4PYcCxI1rM3eqNWT7MwdmZpAFzPrhv32p3xCC926jhp0iS1RQs22jWC5EeYuXANsSCEEEIIIeEHgg/2IF5mXkbYb9j6Dx4j7HfouocmbGHY0ci8imvc3Yet7ZD9NEWKFFKxYkXndoEQfu+++66yh+GEwfXe1hVbDXq7jhRbvcybN0/VFfa9a3Ig2M/IBYLnQcjAg4pdEAA8bNji0Az0B7YnhLPsyZMn4fp8IOQRZrp48WJngh/Y0cYkP3AieRKEduvk2mboLjwX2gsJOn0B+s4o1s3aGJ77ve0f0ydibxe4ziHWtIixO2tSo0YNFVKK48YNYOFxw1YmVuVYzfKg8vny5VNfUihrZEV1V4aZKg/vLIydWRoIdYjKDh06hHkWBvXGF0+/zNzrYW0DwqXxGU2ePFmJd2PYQvr06dVmrti0lxBCCCGE+BYY77Ct8SpXrlyo89iBwJ33CdsALl26VEW1YZs+bceZ3YdzsJ9hR1+7dk3tkQngTbOzjZ1VXXE8LNvgIYEP7FrY6LVq1QpxDrYuxBei++AwAQjTxN6iiLSEo8TV5jbarxBvsH1Hjx7t9A6HRXDCa/vVV1+FWK+YMGHCEMIR/ecpSaadOpm1OaKxamN47ve2f0xFJzyACMFEWCrcpshYFN5ZE41VOVazNVjAjGshWjEbgMXN7spwVeW+moVxdx4xzdjAFpv/hmcWBmXjGfqFfvdVG1C3tm3bqj6rUKGCLFy4MMS9vXv3lgsXLoToS0IIIYQQEjUoUqSIyu8RP3582bZtm+V1OXLkUI4G2OV4YX9KAHF67tw59TccN67e1PAAjyiiEE3FRowYyoaHc8PokAJYnwqRiYi7ggULOo/Du4l6o81m2yBa2dFhqSNE8aBBg1S/GYHgxvI47b3D/YgY9AazOlm1OSKxamN47ve2fy
 zVGYQnvthQ63Bz48PXsybA21kTs9kXYznuZmtcQ1bdlRGeDwMx42azMJ7O62RLcDlDgOIHjfWj8B7qGQ/w9ttvqw9Ih/WazSxNnz7d+d7TAm0MGPgh6y+0VR1xHjNF2KQWX/RLly6pNZyuqagRP481nxCgGNAIIYQQQsiLB1GEn332mdqLHoLSnZMHggZJXyDYYHPCa4hkMVWrVlVRd1g2B/vRl7Ye7Ees57PyosFWz5gxo/LYQqho4NwKDAxUOWSgARAdCEcNwkzh0MFyOCuQKwW2LZbeIQIyW7Zs6jjyksDOReQkxG7Pnj1VFKdZHRGpuGfPHmXDa44fP648drDLhw0bpu5Lly6dsqfh/HL3DKs6GbFqMz4f2PJYkufq/LJ6nrtzyZIlU2swEWlq1UZ35dq536p/bItOiBntLYT7F2snjbMmRtzNmjx79kz9CzeyXqNpVY672ZohQ4aozoB3Myxl2ME4C4OONP4gPJ2HZ1bH10Plw1sLwRmWWRgrIOxRB6y7TJUqleoPvMfnpGcYrOoIoYkv8tSpU53lIV4cPwjjjyFXrlxKiMKrPGLECI7whBBCCCHhBE4Vsx0MjF43499wHrgeh4DctGmTsvm0PezuPuRk6du3b4jrYSdC4Bhtart1dX2W63s4p1y9aCgLdQa5c+dWL60t9N72EFdYAgb7WNu0uA9iB+UVKFDAsl9RNsQaRJ6xPRA+ZuLHrI4Q6P/++6/lM5DdFYk+b926pUSzp2dY1cmIVZsxMWD12Vg9z905nXDKXRvdlWvnfqv+sS06sf4QMcYZMmRQ6nbUqFFez5qg83LmzKkaAiWMv93NvribrUHY6H/+8x/1RUHSG4giqzK0KsfzvcVqFsbueW9mYcIiiseOHav6GTMQWD+K2QU7dfz6669VQiMjiI+H9xOfrRHMrjDElhBCCCEkagFb0ErIeHO9N2XYBTldkOQorO3SiW20/Y5lYZ6cS7gHDpOIriPCe+2G+Nq
 tk1mbI+qziWjs9o9f85kzA8XPb0CtgACpaUh7C9WNNYUQdcYMR1DlrrMsQCtzhIQitBOJgIzHXbEqxwrtzTN+MN6W8SJAHV1nPKZMmRIiGxhCbu16beFNxsJqCPCwCGtCCCGEEEIIiWhWBAfLyv37ZV7r1n6WazohaMy8cp5mTfCvMZGPlSD0drbGTGB5W8aLwGzGQy/sDgvoW+OeOIQQQgghhBASlfH3dYHGdYOEEEIIIYQQQl5tTLdMQUgoFhpHFt5uMmsEWWMRbmoEdce6RONelO6OE0IIIYQQQgiJRNGJdYPIRBRRIJuqEewHGlawUSkSC2mQCAflQVhWq1bNuRbU6jghhBBCCCGEkEgWnVYgNTK2T9m4cWOI43iPc0jVrLdGMV6PpDnI3oqtU/bv36+29Vi3bp16b7zW9X6U626LEex/adzDE3tkogzskYktTJD5dv78+ZbHCSGEEEIIIYREEdEJ7ye2/MC/3333nQwfPtx5DplqsQUHMtXi7xMnTihPYtGiRZXgw140yGiLjW3v3bun7kFYrPY2okzX+wGEopXoxGau2DakQ4cOzmNBQUEhkuwEBASoTWCtjhNCCCGEEEIIiVhsJxJasWKFyhSbIkUKqVixogwZMkRtOgsgDGfOnClvvvmm8k6eOnVK7RGZJ08epyjUIq9EiRIqo2uzZs2cZZvdj61aZs+ebVoXCNlPPvlEhcsa98t89OiRxIwZ0/k+Tpw4SthaHSeEEEIIIYQQEkVEJ9ZCQqhpL2SnTp2c57CdCQSj6/Xx4sWzVbbZ/e5YuXKl8pQ2btxYCdBz586p0FnsXfnkyRPndfCqvvHGG5IwYULT44QQQgghhBBCoojohKD7888/be8vCU/lhAkTVMjspUuXVDgsQmx9AdZl4gWwXhRe0h49eqgwXYhhiGMIWZxr1KiRlCtXzvQ4IYQQQgghhJAXJDoh4KpWrep8j3DaevXqSZEiRZSgfPDggSxbtsyy4GLF
 ikmDBg0kZ86cUqZMGcmVK5f4+//3cSi3evXqKqNs/vz5LctIliyZXL58WQlFW41xlD9s2DApX768pEuXToXtVqpUSZ2zOk4IIYQQQgghJOLwaz5zZqD4+Q2oFRAgNQ3JdqyAYIPHEOs77VyL9ZsAiXyWLl2qBCuAB9ROGWEBmXBv3bolGTNmtHWcEEIIIYQQQojvWBEcLCv375d5rVv7+Xt7M0SkXbEIb2eaNGnk4sWLykuqBSeIKMEJEiRIoF52jxNCCCGEEEIIiRj8I7JwbJFCCCGEEEIIIeTVJQa7gBBCCCGEEEJIROHW03n+/Hn55ZdfVFIhbDtSoUIFFV67ZcsWdf7111+XQoUKOddtWt2jEwgdOXJEDh06pPbJxHHjlirYAuXq1asq4ZAntm/fLk+fPnW+T548ueTOnVv9vXXrVrVus3Llys5tUbC2VNcZYM/OkiVLhjiWPXt2FQqscb3HeN7dOVeM7QpLPTRYR4vrXBMg6TKRodcVd+esyjM77k1foE2lS5fmL4sQQgghhBDyX42Qp0aNUuLnVyp7qlSSLWVK54mvv/5aunbtqhIAxYoVSzZs2KBEXNq0aZXogGDEsYEDB0r79u2V2LC6B4l7sK3J1KlTJSAgQM6ePSuJEydWYlFTpUoVCQ4Olrp163qsNJ65d+9edf33338vv/32m1ozimy4ELXY87NPnz5qH0/UCwIVdUZdjh07JidPnpSyZcs623Hw4EFV92+++UZl1Y0bN67zHrPzENHu7jVibFdY6gGWLFkigwcPlhEjRkjfvn1DlL9q1Sr1DJ2Z1845q/KsjtvpC2ObmBmYEEIIIYSQV5tj166p14FVqwaaejrhrfzkk0+UOEySJIk61qRJE/UvPGEQGlOmTFHvkSxo27ZtkjVrVst74PWECLTa/gRCJ3Xq1MprZmTjxo3KS2f0pILZs2c7/65du7YEBgbKH3/8IYsWLZITJ06o48ePH5f58+dLmzZt1HvU+
 csvv3Te59oO0LlzZ+nXr5/zmNX58ePHe7zXql1hqQe2nsHLLAnSpEmTpE6dOjJr1iz1Wdg5Z1Weu+d46gtjmwghhBBCCCFEY7qmc8eOHcpDpsWjFQgbPXPmjNpr0909CL/E/p7wpLVo0UL9q/n555+Vd7JDhw6h7oOIdBWiRlavXq32Ac2RI4cEBQUpD6sGHlXUyRtQh4ULF4bpvOs5d+26f/++ekGMh6UexsmBP//8UyZPnqw8jyjTzjlfYLeOhBBCCCGEEIrOUHjahxNiCQIvU6ZMsn79eiU03d3z8OFDJQBTpUqlPGPwmC1fvlx5J+EdnTFjhul98Gjq9aBmwm3QoEHSu3dv9f7Ro0cqlFaDdaOok7HO8IritXnzZtMyM2TIoPYPtcLdeeM5d+1CPTp16qReO3fuDFM9NCi/bdu2kiJFCrVG1igC3Z3zBcY62ulbQgghhBBCyKuJqaJDeOX169etb3IIwf3790vNmjVl165dSoC6uwchtUWLFnUmtIGXDGIVnjgk2sHaSwi1c+fOybhx46RHjx4eKz5kyBB1n04WhKRFT548cZ6/d++e85yuM4SuUVi7grZky5bN8pnuzhvPrVy50rRdCElFPebOnRuuegB4gBE2mzlzZlm7dq1cunRJpk2bptbXujvnK4x1dO1bQgghhBBCCHErOitWrCgffPCBClktUaKE8zi8i8Y1mUgMlC9fPilTpozbe+Bpa9eunfKMwRuKtZ0Ii23VqpV6AXjIkGzIjuC8efOmWkN47do15zEIWngPIeJQR5TXqFEj2x2Bug0fPly6devm9XnXc1btMhOY3tZDAzFZtWpV9RlokOQJiX4gcq3O6Sy/4cFuHQkhhBBCCCHE0tO5YsUKadq0qVqviSyqR48eVYlpChQo4LwOoZsIl61fv77KIGt1D5LYjBo1Sm2lgfWXFy5cUNd6IlmyZKbJh5BgCELW1ZM5bNgwZ6ZWePs8ZVFFWCjEGYA3EB5YLR
 bdnYd49HSvnWcCJBvyVBayAMNTCbGHENaePXuqDLLI4mukZcuWysOJZEpW5/B5mZWHz8jquKe+IIQQQgghhBAr/JrPnBkofn4DagUESE1DIh7NxYsX1b/wlNnF6h6s7bxy5YoK+4wo/vrrL7VPJ7ZpIYQQQgghhBAS+awIDpaV+/fLvNat/fw9XeyN2PR0D/Z5jEjBCeClNdvygxBCCCGEEEJI5BODXUAIIYQQQgghhKIgVtweAAAgAElEQVSTEEIIIYQQQghFJyGEEEIIIYQQQtFJCCGEEEIIIYSikxBCCCGEEEIIRSchhBBCCCGEEELRSQghhBBCCCGEopMQQgghhBBCCEUnIYQQQgghhBBC0UkIIYQQQgghhKKTEEIIIYQQQghFJyGEEEIIIYQQQtFJCCGEEEIIIYSikxBCCCGEEEIIRSchhBBCCCGEEELRSQghhBBCCCGEopMQQgghhBBCyMuNf2Q+7Pnz57JlyxbJmTOnpEqVKsLK14T3Obq8WLFiScmSJZ3Hjxw5IleuXJGCBQtKggQJwlXnf/75R+rXry+9e/eWQoUK8RtJyCvA9evXZefOnfLkyRPJkyeP5MiRI9LrcPnyZfnpp58kRowYkjFjRsmfPz8/GEJIlMHVposbN66yk/z9/SP0mbNnz5Zy5cpJ+vTpI/w+Ql4lYuapUaOU+PmVyu4QZ9lSpozQhz19+lTeeecdZWTh5Y6VK1dK7Nix5c033/S6/MOHD8umTZukV69eSjC+99574arvnDlzpFWrVpIoUSJ1vGzZsjJmzBh5//333Q4udtoA0dmkSROpUqWKZMuWjd9IQl5y5s6dK6VLl5aHDx/KhQsXpGfPnnL27FmpXr16pNUBY2TevHnl7t27SnwGBwdH6vMJIcSuDXbw4EE12T9hwgQZNGiQsrty584dIc989uyZDBs2TI2Pb731lm071Zv7CHmVOHbtmnodWLVqoP+LqgRmhb799lspXry47Nu3T/7
 44w+pU6eOvPHGG/Lzzz9LrVq1pFOnTtKiRQspUKCA3Lx5UzZs2KDuhdjDj1zfj9n6woULO72a8Bo2aNBAypcvL9OmTZO+ffuGuhaD1u3bt1WZf//9t5rltxrEUjrE+OLFi1W5GPhOnDgR4vy6deuU5wKDj66bWRv++usvWbNmjTx+/FgyZ84cwnsKVq9eHaIfIoJt27apF4xe1+cTQiIWjB1t2rRRY9LgwYPVMYxBlStXVuNTo0aNZMWKFWqiDONZUFCQmtUvUqSIutZ1HEySJEmIsVR7LjFmlShRwvlMjCvGSAo9Di1fvlxee+21EHU0ewa4ePGibN68WdKkSSMJEyZUE2YY18JTX9ex32qMtKoTISR6ERYbBBNzzZo1U38jMgw2FcYzjBFWY8OZM2fUeITxRtt3ZuOL6/iJCDbYj1o4Gs/v2rVL3VujRg05evRoCBsPzzDeZ2Vfuhv/CHnZeWFrOmGwNGzYUP144Un84IMP5NNPP3UaSeD48eNy6tQpuXr1quTKlUsNCBgwMFDo++F1REgDwl2NwIuA+7Jnz256LQYqDAKLFi2Saw4Fni9fPpk/f75pXTEgLFmyRP2N6ytUqOA8d//+fWV0wdD64osvpGbNmqZtwPMQ7jt69Gj1/D179oR4xpAhQ0L1Q0QN+AMHDlT/EkIiFxghmBFv376981ilSpUkfvz4amy7d++eGqvgeQQjR46UiRMnqr/NxkHjWKrHN0yCYcINxhFo166dMmyMlClTRtWjaNGiyvDRWD0DBtR//vMfWbBggTLkUP7YsWPDVV/Xsd9qjLQqhxASPUVneGwQTP5j7Nq9e7fl2ICxBB5HHH/w4IEa46zGF9fxE5NreL93794Q5zExCDuwW7duauxytfH0dbjPnX3pzvYl5GUnUsNrMVBAXGF2CAMF/u7Ro4cKmfj111+VAYOZIoTeYlAKDAxUoacwYmBIDR8+XHkRZ82aJbVr15apU6eqH+vkyZMlbdq0
 zvJ/++036d+/v5rBRyhb4sSJ1XHjtV9++aXyLOK5GGwQvoHZpy5duoSqL8QkwiYaN24s/fr1UzNb8BAg5DZLlixStWpV+fPPP5XQXb9+vfJiuLbhq6++ku+++04OHTrk9GoYn2HWDxE14G/fvl39nSFDBvXCMQx++hjf8z3fh/29O2B4wChBeL6fn5/zOMY3TFxhbBw1apQaMzC2LFy4UOLEiSN169Y1HQdxHDP7xvENYyvGrEyZMqln4Jl4bwSz8RiDli5dqp4HgYq1SFbPgFjGtYjgwHinDTKE5Ia1vq5j3p07d0zHSKtykidPbjnG8fvI93wfNd/j7wMHDkipUqXUy67NqJdkIY8GxgIsScIEmNnY8O+//ypxibXyrVu3VmObJxtMj5+I2MB7CEMsedLnEZmCSTWMb7A9MdYNHTrUaePp63AfIkKs7MvItvkIedFEifBaDUIcAELCrMC6J22wgebNm6sQBYAEGK7gfIcOHSRFihTqPcIbXK9F6AWMPB3SgHCxS5cumT4fIWS4F4MEwnJ1uQCDCQYVDGqu3lYjJ0+eVOtLkyVLFuZ+8LX4xKwgBn098wj4nu/5Pnzv3YGxBGBNpTHcCjPxMKzc4W4cNI5vGEvgwZw3b57s2LFDhaaZgTELs/SYaYcxVa1aNctnoL7AavwKS31dxzyrMdJTOVaeFH4f+Z7vo977c+fOhct2QYgrwOTVL7/8Yjo2YCz8/vvvlZDMmjWrfPbZZ3Ljxg23NpiZLWlET3Jp+w+OBivs2JeRbfMREhXwj6oVixkzpgpRAJiVwtrMli1bqnUAAAkwrMDslFEYmlGxYkVVJtZoYjYM/7rLHgsvJ2anMJNmZNKkScpzijAKzIQZQ9WMbdDPW7t2rfIUIMQiIjOwecI4y8h/+S//9d2/7sBvHzPyiMRAtAQMjnHjxsmjR49UyK02QBDOivAxiEbM6FuNg4iuMANrjCAm4dGcOXNmqPMoH0Yb1qEjvBfeB
 0zOWT0DYyO8AIiSwHgHTycEtK/q626M9LYcfg/5L/+Nuv/C26mjrbwFdtonn3yiBCLGCGA2NmDtJsY1rPGEFxJLAbA0IDw2GESrntTCGA4b02jjhce+JORVwa/5zJmB4uc3oFZAgNTMmzdCHwajBqEJmIFHKAH+xnpIrINEuCyAIQYQuvrNN9+ofxHKAC8jwqwQWoFyELoAD6O+31g+kv4YQxX0ceO1AAk9cCx16tTqPco0znbp+7CtAWL2p0yZIiNGjFBrAbCmCQYWBi4YRViThQEObUMoLkJsXdvQsWNHmTFjhgrfwGB3+vTpUHVz7Qdfg1AQHfY7YMAA/gIIiWQgziAKMVMO4wUz/wj9wjgBYJxgBh+eSBg1uAaTWsB1HEQ4P653Hd+w1hzLCjARhjVQrmAs+/jjj9UEHbyYqM/06dMtnwGBqRNfIMwN3gKMeRinwltf45hnNkZalaMTJRFCog/e2CDaPtLgb4T0Q0Ri8stqbACY/MJYgyUBsMk6d+5sywazeo8ElJhcQ+QFPKv16tULYePBAWG8z8q+jGybj5AXzYrgYFm5f7/Ma93aL1JFZ1hEKgYGPZuOsAmsPYoXL57PngHRiJdrBkdvywCoq2udI6MN3oAZRszUYdaRCTkIeXFgqxKE5MMIgkhDch/M2MMQwRhhNSbZGUMwsw4jCSFdVnsJY2zC2iqISHg87TxD18vVUApvfe1c/6LHTkJI1LRBrMYGeD0xLhlDWL0dR4wiEY4Foz1nZuP52r4k5GUSnf5RuaKuhhB+1L42ODBYhDfM1Xi/a50jow3egEGeYpOQFw+2HsELXkTM3G/cuNHpqXRnpNgZQz788EM1q28lOPXYpNeY2n2Grhc2aTc7Htb62rn+RY+dhJCoaYNYjQ2+GkcQ1QE7z9WeM7PxfG1fEvIyEaU9ncS3YEZuy5Ytaq0DIYQQQkh4QMip3rpEs3XrVrl165ZaemTcf9LqOCHk5cXo6WTarFcE7C
 +FZEjYWJkQQgghJLxgixJsHaLBOk3smYl15ciIrXcPsDpOCHl1oOh8RUBipWXLlrEjCCGEEBJukKhMJ8oBf/zxh1qfjozcSK6DRD5IumN1nBBC0UkIIYQQQogpyAp76NAhtSe6JigoSPIalmkFBASoLP9WxwkhFJ2EEEIIIYSEAp5L7JeJzNtGsN8wtk3SIOsrwmitjhNCXi2YVosQQgghhNhi5cqVKoEQ8kRAgGKvYYTO5siRQ+1rrrl3755KGJQwYULT44QQik5CCCGEEEJCgXWZeIHNmzfLzJkzpUePHmpPyk6dOikvJrYSwblGjRpJuXLlTI8TQig6yUvIhg0bZNq0aWpTZGzs3rNnTylWrBg7hhBCCCHhNyj9/WXYsGFSvnx5SZcunTx//ty5RZvVcUIIRSd5ycAAz0GeEEIIIb4CXky8NMiUj304sR9nxowZPR4nhFB0EkIIIYQQ4hUJEiRQL7vHCSGvBsxeSwghhBBCCCGEopMQQgghhBBCCEUnIYQQQgghhBBC0UkIIYQQQgghhKKTEEIIIYQQQghFJyGEEEIIIYQQQtFJCCGEEEIIIYSikxBCCCGEEEIIRSchhBBCCCGEEELRSQghhBBCCCGEopMQQgghhBBCCEUnIYQQQgghhBBC0UkIIYQQQggh5IXib3xz59FD9gghhBBCCCGEkDCTOG68EO/p6SSEEEIIIYQQEmFQdBJCCCGEEEIIoegkhBBCCCGEEELRSQghhBBCCCGEOPH3dMHDe/dk8/oNcv7cOfZWNCFV6tRSoVpVSZAwITuDEEIIIYQQErVFJwRnhfLlJbVDyEQ37t+/L2+88Ybl+efPn0uMGP/v7P3777/ln3/+kXjx4nn1nMePH6uyrO7zVA9fc+XqVVmzZq3Ua9rklf5yL17wjdRt2ED8/f35Sw8nT/73HY/r4bfxwPFdnzxholxzfAe7fNRd3s6UiZ8nIYQQQghFp3vg4YxMwZkgQQI5e/asJEm
 SxPk+fvz48ujRI8mSJYuMGzdOihUrFuJ49uzZZerUqZIrVy51z4kTJ6Rx48bq+uPHj8uyZcskY8aM6tzhw4dl6NCh8sMPP8isWbOkZs2a6njZsmVVeRChx44dU+fTpk0bom779++XokWLyo0bN5wiskWLFvLgwQMlPPHcH3/80Xmfu3pEJKlTpZJrV65Yni+UN6/cv3df/f3HnTvyZuLE6u/Ejn+D9v7y0ny5e/fsIdVq1hD/SBT8UYF30qaT4KNH5PUwtPvQwYNSqXQZOXH+nPP+ju3aycMHD5XwPHXqlKxc972keest0/uHDhykxGmN2rXltbhxfdqWV/XzJIQQQgh56UVnZANvo+t7CDaIvIEDB0q3bt3k119/DXG8R48eEhgYqEQdaNasmUyaNEmKFCkimzdvVsIwKChInUuWLJmMHz9e2rRpE+I5ixcvVufAJ598IkOGDFFCVgNvZdu2bSVz5swh7ps7d67z70aNGqnntWrVymM9XiQ/O8Sz7ttUid6U30+f4i8hGpAzU2Y1KZD4f5MEVoRVcMJL2e3DjqEmRqZMn+78u12LlrJ9y1Zp3LyZaRnnz56VJi2aS8kypX3S5rC2hRBCCCGEUHSGiRw5csicOXNCHc+TJ4+cOXNG/X3x4kX5/fffldAD5cqVk6pVq8rNmzeVqEyRIoVp2VpwgoQJE8r169dDnO/SpYv07NlTvvnmG8v6wQOqDXZP9YjKNKlbT+o3biT9+34q476cJCscYj74131y69Yt+aTfp9KmffsQ17bv2FE+7dVL7ty5I184rq9UpYqMcIj2bxctVl6vKTOmS5FixZzXt/6gvfTv01fu3r0rM+bNlfVr18r82XOkYOHCsmj5d8rb/OOmTeqahw8fyoddOqtneHO/ZvPGjTLo8/5q0mDw8OGqXd600ap9wKqOZv0JIfa541pjPVzrULZ8eSXo+vftK3/99ZekTZ9OvpoxQ3kVp0ycKLcddWvb3CHoSpeR
 bj17WD6/fctWMmvBfInz2mtu6+9Kb8f3u1O3rrJs8RLL78bNmzck/dsZTM9NmzJFft27V65evSqHDx5S/dj5gw8s+9XO52hsi5EhgYHqO4U+A98tXer4rv0r9Ro24KhOCCGEEELRGTYgKuGhbO4wujXbtm1T4bUIl53iMHjBoUOHQok6hM3u27dPKlWq5PE5EIUzHIb+ihUrnMcWLVqk1pHBk+kqOhFW26lTJxWSi/MlS5b0ST1eJD8F7XAInvSy7/fDqt3ZsmdXwufihQtSvECBEKIT1yZ8M5Fs3L5NNqxbJ3NnzpLSZcvKpC/Gy+Xbt0zLTp0mjWzdvUvmzZolTevVdwiOeTLIIcRKFCgoW3/8UfIEBEiPzl3kJ4eAiRsvrhTJl1+qVK+u6mDnfi1EwPGjx+TnA/vl5IkTUrpIUSldrqwkS57cdhvN2gfRBhFlVUezNqNNrvVwrQPKbN6ooSozbbp0smr5ctU+tLVj164y0vE9R1vh6XT3fJSLtclx3NTfFYg2/5j+Uqd+/VCiE2G1vT76SE4eP+E4X0+KlShh+r2BuN26+Udp1qqlvF+tmjrW9/PPLfvVzudobIuRjBkzyeQJE5yf9biRo2TB0iUc0QkhhBBCKDrDBjyZWLdZr1496d69ewgxuGvXLvnIYRDDk6gxerq8AR4arPFEWG3evHnVMaxhGzt2rKxfv155qWAA37t3T1577TUlFPDvsGHDZMeOHdKvXz955513pEKFCuGqR1Sg34ABzoQtCRIklLWrVsnt27fl6d9PQ107bPRoFQKZNGkyefL3E+WVypEzpzSoWUs+7ttHChQqFOL6wKFDJHbs2JIkaVIp9t57SoCBt9KmVZ7RoG3bVN8NdtQBPH/2TA4dOOAUdJ7uNwLPHdqRPUcO9frNIforVq7sVRtd2wc81dEVs3q41gFlFnYIUghOUM3xXUQ466OHD0Ml8PHm+Wb1N3L29GmV/GfpqpUqxBbfcXzX4/zvO
 45/Px84UHb99JMMCRwomTJncfa5J9z1qzefoytIKNS318dy+dIluXTxoiRJltSnSYsIIYQQQsgrJjoPOIxps+yvEIdHjx6VihUrSp06dSRNmjSS0yF2XENjIRLz58/vUXBWdogRhO9qwQkQJpsyZUrnOk14V/H3iBEjnNchZBeCGCGRX3/9tRKdYa1HVCFGDD/17zms0atbT4nHosWKm14byySb6PebN8l8R1+2bd5CPujUUXnqvCG5o0/LV6qo/sa/ufPkCf+XPVasEBMBdtsYyyJbaljraKyHroPzWQ4R5jp5YiXA7D4/lodsr5cvXVbf4S7tP1DvdwYFSWfH3/2HDJZ3c+dWx+AdRnKge3/dk9kzZtgSnXa+O2EFYrVWnbqyaP4COXPmtLRq25ajOSGEEEIIRWfEUKBAAWnfvr00bdpUtm7dKunTp1fJfpBpFqJw+/btEhAQ4HEdZcOGDaVDhw4hBCcoXbq0emlQDhIWmYngkydPqvWgIKz1iGrs2blLcuTKJbXq1pWrV6549EAZRQFCKZMmTSrfLl7ilejEmr7unTopb6mV59Au2LojU5YsKhz1xPFjobyuYW2jt3W0U4+8ju8HyoS3EZ7JvT//rPZc1Yl04sSOIxfPn1fhtb7so+Il31MvDTLGzln4jWkCnzOnT0mChAki9LtjF4TxYlIDIe5fGpJ+EUIIIYQQik6fM2jQICXsRo4cKb1795aZM2eqtZ/wKgYHB8vChQud1+7evVutAd27d69cu3ZNlixZojLQIjwWx5C5FmB95lQbhmy+fPmUVxNeTKzrXLdunfOcu3pEFwoVKSwD+vWTetVrSFIVwphRxgwfobxXVkA0lSleXHLmeldtwTFm/HivngkRNXnaNKn5fhXlabt544Z83KdPmDKijhkxQh49eizHjx2VMRMmSqJEiXzSRm/rqLcScVcPhIdiTSO2LMmSNascP3pUps2Z7TzftkMH6di2nRJbHTp39lkfeQ
 JrULPlyO74jt+XkyeOyxLDemdff3e8IX+BAmryp06D+tE6lJ0QQggh5GXHr/nMmYHi5zegVkCAvJf1nVAXTBo1Wgb8b91YdALr0hCWC+9iRBqkEBLYjxNr31y3U4nMeriC7WW6fNLLZ218+vffam0f2oP3sQ1hoO7EJ9YihrXdeI5ezxievsPWMLjf302YaVjbaKeO6VOkkCOnT6vQWU/10GUieY/rOk6A47ocX/aRp/qcPnnKUe+YXq+bDGu/2qVA7jzy7aqVkuHttzmaE0IIIYREERLHjScrgoNl5f79Mq91az//l7WhMOwjY/0kDP1s2bK98HqEMPT//dfnbdRbVngSTEbCu78inuuLPRrtiJywttGbOtoVWyjTTHAC161DfNVHnuqTxWRCKiK/O3bY8P33kuatNBSchBBCCCFRXZt5uuCtdOnk0uXL8laaNOytaAAE59lLFyVl6tTsjCgCvJwRLQxfRbA1D16EEEIIISSai86ylSvJhvXr5fKFi+ytaAIEZ8VqVdkRUQQKzojB1etLCCGEEEKiqehMkDCh1G7YkD1FCCGEEEIIIcRrmPKREEIIIYQQQghFJyGEEEIIIYQQik5CCCGEEEIIIcSJ/6vUWOwRGLRtu/o73uvx1Obyu3fulH+e/hPq2nfz5pEjhw5L8ZLvOY8dP3pMEr2ZSFKkTGlalnGfROwNGbR9u5QtX955bO/PP8uF8+clbty46rhZIpQ7d+7I9WvXJHuOHG7L0vU58vthiRMnjsriabXNBiGEEEIIIYRQdEYC2Jy+Xo0a0qJ1a7l586bs27tXKlet4jjjJ+fPnpUzZ844t2BIkTKF1K9ZU678ccd5/4RxY6VU6TJSv3GjEGVdvXpVTp44LkG//KL2YlyxbJmsWr5Ctv64Wc5fv+68/8dNmyTXu+/K4YOHZNIX42X9lh9D1bFl48aSIkVKmT53jnpvVdaCOXNl44YNUr9RQznnqPu5c+dCCFVCCCGEkOh
 Kknivuz1/++ED59+nT56Un4KClE0GDgQHy+PHj5XNNWn8eOnz2WfOa2dOmyZt2rdXf2Oif870GXL82FGJ5bDfatSuLUWLFZPFCxc6r3niKGfBvHnO9wD24+mTp5Q9CB7cvy8DP++vbMA8AQFSvWaNEI4F1+utnh20bZuj3k9CtPM/BQpIlerVVPmaOvXrqba5PhP2KGxN1BV98M28+SHKGjB4kGU5IHOWzJI1W3YpWaY0v4CEojPcDfb3l9ETxqu/a77/vpQqU0ber1ZN1q1Z4xB438moL8apc/AuelNW5TJlZeeOICldrqzUqltXvdKnSBHiej3oVXWI1ckTJ4Qqb8zwEZIqVSp5/vxf5zGzsiB4B33+uRw+fUoNNq706fmxdPmou6R56y3Luj9//kxmDO4hU2cvlsu3H8rTZ8/5ayCEEEJIhBAjhp+kT51C+g0ZJrXqN7B1z9T2+U2PfzBtX4j3ly5ekh83bnKKzjOnTzuE4APJkjWrjB42XNKlSy+NmzdT5zZv+EGJMth51cpXkL79P5fuvT5WUWaIRnviOK6v0TaX8T0YPGCAijar27CBinLDPYcOHJB+juOrli9XkW3anjS73urZ1WrWVM8bN3KUFHGI3yLFi0ny5Mmd5fd3iEaQ4e23TZ9Zq24dZ13TpE2r3gMIUdio7sr5bGCgPHz4UBbOnydrV61y2reEUHSGE8xcnT97TlKlTu1GmD1X4beam9dvmF6HwQLexjz5Atw+EzNhwft+ky2bN8lQx4BiBLNgR37/Xdp92EFmTZvuthyE9RYoVEhWOkTytq1bpHzFikqYan7Zs0daNm4ijZo1laYtWpgKUwjOMVPmScuSGeSd1PH5SyCEEEJIhHLmxgP5rFdPiRkrtlSvVStSnlmuQgUZO3KklK9UUZI5BJzm+9WrJXfePMoRAGAP4gUPpDsuXrggcV+LK2UrlJc1K1cqDyVIlCiRWpL15O8nsnThQrfXWz1bkyxFcsmW
 I7sSngB1Qvn6vfGY2TNB0qRJ1evu3bvSuf0H8t3aNc56mpVTrEQJ9R5LufJkzabEsDvnBSEUnR7ADNKHbdqoENeWbdtKQP78bkXnkm/+/0eMEFbXskoWKiynTp2SDQ7xlzhxYrfPxg97x/ZtarYLM1AaDAiB/T6ThcuWyeFDBz224dGjh7Lrp5+kfceOMmz0aGlWv4HEihXLOXiBZ8+eqRDcH3/YKB27dpVi75UIUQY8nBSchBBCCIksMiZ/XVqVTCPDBg2KNNGZJFlSqVO/vvTs2k3mLV7kPP7z7j1SomQp03sOHjgg7Vq0VH8/ffo0xLn5c+ZIizat5U2HzTdy6FCn6Lxy+bJ8/eWXyuM6xCFy3V3v7tlWGOukl2C5PvPOnduh7uvRuYt0/qi78mrCDjUrxwg8sbCN4Qih6CQUneFpsL+/jJkwQSXdMSb+sbp2/JTJzvcd27ULdX77z3ukqUP0wbv4bu7cbstLmy6dfNr/v3HzAdlzSKnSpSVTliyybvUauXP7trRv2VIJUIRYTJk4UYlFMxD7X7BwYWfMfcu2bWSzQ1waRacRCFAjGPTO3bhPwUkIIYSQSCV9krhy8vjhSH0m1lIiRwbCRjUpU6aUCxfOm16fO08epyBDlFrb5i3U33BGLJq/QIXr3rp5S/bs3KU8ma+/8YbEjhNHEiV6U/766y/Jmj2b2+vdPdsKY500rs80RucBtPme41yrtm3dluPK3bt/qLBeQnzJK7llCgYHT4LTG774cpKKvz95/IRX9+m1m1hnsHPfr7Jo+Xdq3WfR4sUtBSdAsqPDhw6pEGFw9cpVFYZhJGbMmNK4WVOZMW+uvFe6VIhzvfv1k6yZ0sqJK/f4CyCEEEJIpPFP6oKSJes7Pi0zZ+535ezp0873t2/dkvgJQk6sj3PYagM+7aeEIChfuZJ8t/RbJSrtsnH9erWkCU4EvFq3b69EJUAoa8OmTaREqZIyYsgQt9eH5dlmmD1Tg6VfQ
 wYEypfTpnpVZvC+fXLzxg2VnIgQX+LPLgg/WCMwbPQoad20qWzdvUu2b90qc2fOcojCJ9K8YSPp1K2rFCpSRCUuypgxk/x++LCUr1TJ1qCLxd9mZQUOHSrVK1VWM1uXLl6U+YsXO++BF7Rj1y6SLn16y3L7jxgrPTt2kOYlXpNMSWPxQySEEEJIhBEjVmx5kjyfjJy5WgYNH+7TsjcIPmgAACAASURBVCG+SpQqJY1q11FrI8+dO6vsoieGpJA43rVnD5V0RwnVXLmUrVSpdBkJ+E9+NZGf1mE3uZv0nz19hoyZOEEJSC12yxYrLm0/7OC8Bs6D0kWKKrFpdf0n/T41ffZngYGWzzaGxRYoVFDqNmwY6plIRqmZMHacEti9un/kPIboPbNy9LEnT56oe5avXcsvLPE5fs1nzgwUP78BtQIC5D0fzzyRkOCHfPzYMYfwzGi6R6e3PHr4UK5dvSpvZ8oUpvt/WL9eRg0dJocPHlTrUwkhhBBCIgIsSXo7U0a1zMjOek5vtkzRICvsM4c9482+5bDNYE9h6ZJZ4sWItgtf1LMJiWgSx40nK4KDZeX+/TKvdWs/ejojEYT0+nIvTQyqYRWcoGLlyupFCCGEEBKVMBOVnlDCzUvxBtsMy65elF34op5NSGRD0WkDzERhmxIQ7/V4kr9AATVQGI8DrKNE6mrw0/Ydcvv2LZWqWw8oO4OC5J+n/+9RTJo8mQrv8HTu5927VYayHDlzORenu7ueEEIIIYQQQig6oxEIPa1Xo4badPjmzZtqT01krX3DISZxvOX/soIhdASiE4u579+77xCJOaVR3bqybPVqNfu2aMECtTYTICwWa0FnLZiv3ludQxbbs6fPqEy1WDM6ZcZ0tbjbXVmEEEIIIdEZb8JrkZBn4Of/3R0gc5bMkjVbdmeG/9MnT8pPQUHKhgMHgoPl8ePHkuvdd533gDr166mcGUhItHvnLmXTIestuHXrlnz5xRdy9coVqV
 C5stqCBY6HSV+MlyOHD0mmzFmkW88ezqVTM6dNU9vjgWIliju3VSGEopN47ijH4DN6wnj1NxIC7dm5U8pVrKiOj/pinPM6bHmCjGR7Dx5Q70+dPCFLFy6Spi1byJdT/z+DGJICIYusxurczh1BMmTkCBVGe+zIUTl39qwSne7K6tPzY+nyUXfur0SiDc+fiYz6aKPMXTzUYUgclmfPH7NTCCEkjMTw85fUKbLKgGF9pXbDWtG2He3z/2t6fNo+vxDvkTDo0IED8tnAQHn48KEsnD9PbY8Cu+3SxUtqH0stOs84ROWD+w8kS9as6p7+gwep49jHEpw7e07OnDktf/35l1N0Yj90ZL/Nmi2bnHfYYZpSDmELsTlm+Aj5YswYldAHbN7wg7T+oL36G9ulEEIoOr0GGcbOOwYkZEEzA2LUuF/nu3nyyKYfflCiU7Ph++/VFic6VNaI67mW7dpKwzp1pFuPnnL61Enp0fsTt9cD7BnasnETadSsqTRt0YKL00mUB4Lz63kfSckMsyV1/FLsEEIICSc3HuyRvj0bin8csZW4J7qTKFEiKVaihPq7bPnykidrNune62OP9xQpVizEsdLlysqjRw9l25at6j32vszwdgbJlDmz2g9T59LAMiu9rQjssI0bNoQoB9lrCSH/Twx2gT0QYvthmzZSrsR7Kpw2IH9+53F4GvHa7higHj16pNZ2auLEiSNP/37qfI8QkFHDhjtEZI9QzzA7h/CN3HnyyuQJE+TJk79VljM7ZT179kwWzJkrrRziE95SQqIy8HBScBJCiO9I/nphKZlmsQwbNOjVM24dghB22pHff3d7HfY879iunXpZgSVMB/cfkIljx0n/vn1D9ee9v+7JtK++CmGLYd9M2IVwACACjhBCT6f9jvL3lzEO4YeMsRjMjMfnLV7kfI99NbHPkQZrO19//f/XJYwdOVLqNqhvmq3M9RwEbY/OXeTA8WPqmZ0/+EBGDh3q3N/KXVm
 uAtQIysBWKYREJSg4CSHEtySKlVdOHj7hcX1kZILlQNinMqK5e/cPSZ48udz9w1r0YV3nlOnTPQrYPPkC5OO+fdT7rOkzqG1fANZ6duvwoXwxaZJkypLFeQ/2+sRr2pQpKjeHvp4Qik5iCztprUuWLi2fdP9I7RWFsNZtW7eoBed6cJr+9VQ5dvZMqPvMzmGvKQhPCFuAcJHNP/zgsSwAb2uDxo2kSfPmofarwoBvXANKyIumQNb35Mq9bRSehBDiQ9IU3SdZHr4je4KDX6l2B+/bJzdv3FDhr7CXkBxIc9vxHskX7QJhitwcmngGmwrRZBO/mmK5fV2SpEnl1MlT/CISQtEZAR3qEIhYyF6najV5K+1bKjwWYhFs3fyjlC5b1lS8mp1DFrR6DRtKlXLl1eL1QwcPOmfk3JVVsHBh6di1i6RLz8XrJHoweFxf6f5BSyn+2hxJFovCkxBCwmWLxBZJmm+nzF7TRAYNH/pKtPnggQPSrkVLFW0G22v52rXqeFKH8CtRqpQ0ql1H5eM4d+6szF+8WCUfMgOZZ5cv/VZuOETruJGjVC4NiMpe3brL7du3pe/nn6vrsKTqsMMu+7TXf3NtIKQW3k2AKDVsZYdt9abNmc0vJCEO/JrPnBkofn4DagUEyHtZ32GP+AjE+GOfTp0NLTwgedGlixdDhG4Q8rLxw/r1Kuwb/4nDw08IISSMotPf3yGUMqqwzuiaRMibLVPsgAg0RJC5Rn95Y4v5xYhhKzljeJ9FyMtA4rjxZEVwsKzcv1/mtW7tR09nBBE/QXz18gXweFJwkpedipUrqxchhBDiraj0hBKL4cjmr/fgjIxnEfIywuy1hBBCCCGEEEIoOgkhhBBCCCGEUHQSQgghhBBCCCEUnYQQQgghhBBCKDoJIYQQQgghhFB0EkIIIYQQQgghFJ2EEEIIIYQQQig6CSGEEEIIIYRQdBJCCCGEEEIIIRSdhBBCCCGEEEIoOgkhhBBCCCGE
 UHQSQgghhBBCCCEUnYQQQgghhBBCKDoJIYQQQgghhLyc+BvfJI4bjz1CCCGEEEIIIcRn0NNJCCGEEEIIIYSikxBCCCGEEEJI9CNEeO3Dhw/ZI4QQQgghhBBCwky8eCGXbdLTSQghhBBCCCEkwqDoJIQQQgghhBBC0UkIIYQQQgghhKKTEEIIIYQQQghx4u/pgnv37smGDRvk3Llz7K1oQurUqaVq1aqSMGFCdgYhhBBCCCEkaotOCM7y5csrIUOiB1evXpW1a9dKkyZN2BluuHLlimzfvl0aNWrEziCEEEIIIeRFiU54OF9mwZkgQQI5e/asJEmSRP0dP358efTokWTJkkXGjRsnxYoVC3E8e/bsMnXqVMmVK1eUbVOqVKmUoIoI0qVLJ0eOHJE33ngj2n/2x48fl969e1N0EkIIIYQQEoG88ms6//777xB/Q4jcuXNH3n//fenWrVuo44UKFZLAwMBXtr/sCs7MmTOr/ooMIvNZhBBCCCGEEO/wf1kaUr16denatat0795dbt++rbyROAY2b94sH3/8sfz555+SIUMGmTdvnqRNm9ZteTly5JA5c+aEOp4nTx45c+ZMtO8vrPlECC7Yu3evrF+/Xvr376/e16tXTzp27Ci9evVSYm7SpElSpUoVda5Vq1Yyf/58ee211yyvmzhxoty6dUuaN28uZcqUkR49esimTZukb9++8vDhQ+ncubO6D+C5ffr0kThx4kjRokXl+vXrsmjRImc94IX89NNPVdnLli2Tffv2qbJxrH379l49C/zwww/Kuxk7dmzJmjUrRwBCCCGEEEIoOu2xbds2efPNN2XPnj2yZs0amTZtmhKdN2/elNq1a8uhQ4ckffr08u2330qNGjXkt99+sywLonL8+PFKyBjLR3jt0KFDZcqUKdG+v7Zu3er8G4LxwIEDzvc7duyQRIkSqTavW7dOZs2a5RSdOPfPP/+4vQ7iH/0EcZ84cWIlCrt06aLEbdy4c
 SV//vzqs/H395eWLVuq4wjbxf1GLzLKx2d2+PBhdS1Cm9966y25cOGCFChQQIlOu8/CfWgnngfhipBxfEewppMQQgghhBBC0WkLCEWEfiZLlkyePHmijm3ZskWKFy+uxAuoU6eO8p7BCxYvXrxQZcCTCXEDLxu8php433bt2iUfffSRlCtX7qX/YowePTpUX4b1OojSGDFiyIABA9T7Z8+eKZELEQ/vJgQnePvtt0Pdi3sgOAGy8a5atUp5sp8+ferVsyA6g4KC1PP0GmWs2yWEEEIIIYRQdNomVqxYpscRSqmBIAHPnz83vRYCxWzNIsJ1jx49KhUrVlTCNU2aNC/3F8Pf36fXpUiRQvUdwL8Q9z/99FOIz8YMPz8/9S+SPWEiAKG4mETw9lkAothufQkhhBBCCCG+4aVPJITwSng779+/r97v3r1bCcawZF/VIZ1NmzZ9KQT63bt35fHjxyrM1Ndgjeb58+fV34ULF1YJiHLmzKlEIF4pU6aUggULqvWXBw8elEuXLqnwWj0p4Aq8zMgYXLduXfXZGScN7DwLwJMKoau/Czt37uQIQAghhBBCSATz0rt9kNl0zJgxKqwyW7ZsSpAsXLgwzOUNGjRI8ubNKyNHjlQJaaIrzZo1U4l34PnDmsfg4GCflt+hQwdp166dWkOJZD4QtljvmTt3brlx44byWJYuXVpmzJihrsV6zEqVKimPphkQk/369VPrcZMmTSoZM2aUESNGqHLsPguTBjVr1lTHUQYyERNCCCGEEEIiFr/mM2cGip/fgFoBAVLhnXdCXYA1e3p9XHQGnjF49czWcb6MDBw4UGWVdQfWtSILrZV3MbygvxE+awxp1mtpzZ6JrLgbN25U/1p9hti+BnVGMiO81+G53jwL10JsM9SWEEIIIYQQ3wMbfEVwsKzcv1/mtW7t98pY3RAer4rg/Pfff21/GSISiEPXz8A1rBlbtyDcGSLxl19+sRSc+n5dpqtgtPMsq2
 sJIYQQQgghEYdH0YnMopcvX37pE+e8TILz4sWLzgytUZ2VK1eq9ZpYY4pkTRHldSWEEEIIIYREUdGJdXbr169XQoZEDyA44UGMFl9Af3957733+KERQgghhBDyqopO7I3YsGFD9hQhhBBCCCGEEK9hLCMhhBBCCCGEEIpOQgghhBBCCCEUnYQQQgghhBBCiJMou2UKttDYvn27+htbexQoUEBlNg0KClJ7NLqSJ08eOXz4cIikNMeOHZNEiRJJ8uTJTcsygv0fcU358uWdx37++Wc5f/68xI0bVx133Wrjzp07cu3aNcmRI4fHsnR9UMc4ceJI2bJlTbcsuXDhgto6BNcUK1ZM1V/XHcSMGdPZxh07dsitW7ekQoUKltuDEEIIIYQQQghFpwkQljVq1JDWrVvLzZs3Ze/evbJnzx5Zt26dPHnyRM6ePStnzpxR4g2kSJFCatasqYSgZuzYsVKmTBmpU6eOs6yrV6/K8ePHlbCLHTu2um7ZsmWyYsUK2bx5s1y/ft15/6ZNm+Tdd9+VQ4cOyfjx4+XHH38MUcfGjRtLypQpZc6cOc5jVmXNnTtXNmzYoJIyoe7nzp0LJVYhSlFmr169VNsgOAsVKqTq3rZt2/9+YP/L9jpkyBC5f/++5MyZU+rWrSurV692tocQQgghJDrz+uuvuz3/4MGDEO8nTpwoBw4cUHbZ0KFD5eTJk8pRAdsPBAcHy+PHj5Vd179/f0mcOLFyWFSrVk3ZUzimqVevnhQpUkT9Dfvz1KlT0qhRI/VeX9ujRw956623nPYb7Lzhw4crGw/2Y/v27dW1CxcuVH+DCRMmSPXq1eXtt99W72FXwtbLnz+/89m4BzbnZ5995jw2bdo0Zxmwc7/++ms5ceKEvPPOO9KxY0dVRt++fZV9bAROFmO93ZUblraa9ZvuX5A5c2bJnj27lC5dml9oEnVFpxZY+IGA999/X3bu3Km+5GDNmjXy3Xffybhx49R7eBftlgW
 hioFIC1aINrwgXI3oHyZEHwYKIyNGjJBUqVKpfTGNmJUFAf3555+rH7KrMMSAgx8jPK/4scO7qX/sul2ou24nuHv3rnz77bdqcAUYeBYtWiQtWrRQ7z/++GPp3r27c4Aw4/nzZ/LVkB4yZfZiuXz7oTx99py/BkIIIYRECDFi+En61CkkcMgwqVuvga17prbPb3r8g2n7QryfP3++clBMnz5dRamBS5cuKfGnRefp06eVUM2aNauyn2DjTZkyRUW0YcIfxwYNGqSu1aIQDBgwQAmtBg0aKFsNdtmsWbOUjQUxBvAedYCNeuXKFfnhhx+UmMO1+m+QIUMG6dOnjyxZskTZcqNHj1bOFCO4B+WkT59emjVrpo7pMmBPYku8wYMHy6effqraB/t427ZtyvGC86NGjVK2JF6I9LNTbljbivOu/aaPBQYGysOHD2XevHmyatUqpw1OKDqjNJiZgmcQ+0+6AyG5EKaaGzduhLoG4bCYhQoICPD4XMzg/Pbbb+pHjR+xcSbo999/lw4dOqgBzhMIj4XHEiJ5y5YtUrFiRSVMwdKlS6VkyZLqx124cGHp16+fmhnq0qVLqBBgDdqYO3du53vM1GHg0KITHuEmTZpI06ZN1TEzDygE58gp86RlyQzyTur4/CUQQgghJEI5c+OB9O7VU2L6x5ZatWr5rNx79+45bT7toXQHPIOY8If3Uy91wjEINSNY8qSXWK1cuVJq166tjuNe2G8QYrA9sZd9rFixPD4XTgwIXTg+YBPCIWFm62HZ1MiRI5W9aBSOqAMi3LTTBPVavny5inbTdiWuh3fRtS3uyg1PW137DZ5YHCtRooSzjtmyZVMOEXfOEPIKTDxF5cphxqZNmzYqnBThpcbwAyvRiTAG/YJQNZYFUZcrVy71Y0JYhSfww8HsEWZ9dMgCZqb07JhdMNPz008/qZAPzGpBqGLWR83iTZ2qPJkgS5YsyvOJWS/UFeJY1x3eT7y2bt0qjx49
 Ums7NVj/+fTp0xDPfPbsmQp/gPjE4OYKPJwUnIQQQgiJLDImf11al0zj9Iz5CjgBIJgKFiwou3fv9ng9HActW7ZUXlHtCcVSqnbt2qmXBsuncB7XwsOnSZo0qYp2O3LkiKxfv155G+3yxRdfyIcffqhsOTNhqMuHE6Jbt24hjmNpmDF3CYC9CGeDHazKDU9b4dXEPXiZCg2HqIb9jj4nFJ1RFogxhLXix6Td+p6unzx5svOFwcd4DuVgdsjujzNdunQqLh2hrAgLwPoAhPXevn1b/bhwDmIS6wjcAU8jBgXMFmH2B0J648aNptdCeMJriRkmHfKAuiN8Fi+UkTBhwhBx+/DIulv7AAFqBGsdzt24T8FJCCGEkEglXZK4almQT41Zh7CBnYZJfUR4IWmjO+AthLBCZBmWSwGsRcT9OoINjowFCxaohI2o765du5Q3UIMcHbDL4OTAWka7IJ8HwmwRjeYOOBoQqqqdFADOC3gajSBXSdq0aW0/36zc8LQV0XYQrMb8Jq788ccfoTyrhKIzyoGsrFZhpmFh0qRJKlQ2LAMe1m8iDv7XX39VYRHweBYvXly6du3q9j4IXcygIUxYDxAIfXDFmJUXoQ/4kZoB4Yny9DpWhOwilt8IPKEY0ODtLFWqVIhzmOXKljGtnLhyj78AQgghhEQa/6YuqBLgRARYOgWbCzYeRCTWcWogqOLHjx9CqCLZ5L59+0zLglcPthgcEHjBEQBhpkGSSiSOhJ3quruBJxChZse2hc0Kmw2iEGA9J6L1jGIR4bWop7e2sLHciGwr+hehz3aWtZGXG/9XrcGYaYHohCDDTA68iFiziRkveA8xAwQRiTUBCCHIlCmTmjGrVKmSrUHSqix4FytXrqzi2jFLtXjxYnU9ftw6wRBi+7G+AIu8Ea6Ae0w/NEedsUAbGdcQH49Bw7g9C7yqWBOKcqwYPHKsdO3YQZqVeE0yJY3FXwIhhBBCIoyYsWLL0+T5ZPjM1
 TJs2HCflg37CYmDIIqQyAc2EQQmJt0hmJATBEuWYHvpRDdYfoRjyPpqxowZM1S0Hew0ABELRwNCebUthqSNnpZ+6fBTgAg8ZJu1C+qNSD8ISwA7FPYdbFLYk1j+1alTJ/W3N7iWG562urYPXlF9DLYwbNS1a9fyB0DEr/nMmYHi5zegVkCAVIigmafoCn4o+EFnzJjR65kdM7C2E15OCFkrMBhiLSpCPjzNgmHhPGbujFnWvAEzW8OGDZODBw+a7n1KCCGEEOILIFxgT2Fpkp0kQt5umQL7CbaM6x7oVseju30KmxJt8mU0ICG+BN/PFcHBsnL/fpnXurWfP7vEGvyQXffSDG/nuxOcAB5Pu2EnmMUzhop4CzyveBFCCCGERCVcRaUnYD+ZZeu3Oh7d7VN4dQmJVt9bdkHk0qpVK3YCIYQQQggh5JWBns5wgPBUbz2FrpsAE0IIIYSQkHgbXhudwK4DWJs5e/bsaFFfJMJE5lq9vQwhFJ2RCNZBIlHQkiVLVEYuJCjCHpv4e/PmzSosF3uCYpE2QmCNiX6wFhOCFaG2elG23XvtXIcNeLHg+2XahPfZ83+k68S2snTqSnl05an864MlqH4xRJKnSyrDB46UBnUb8ktNCCEc96NNW8LSrqhSD7tkH2MeQnr04/sh3mPNJravs7O9XlQSctFGLPj7m+66QAhFZyQA4Qju3Lnj3LqkQYMGKqNsuXLlVObbKlWqqP2LkC0XQBRiz0ykosZ5XA/xib057dxr9xnYhxRZ2ZChF/tVvQxrGfCf5Ddjv5PUDeJIvExxfFbuo/MPpMcnH0nsmHFsJTYghBDCcT+qtMXbdkWVeviar7/+Wr2OHj2qtgPBnp3ITIv9KzER36dPH5XIEYmMhg8frgQfRCq2psNkPrYPqVGjhrLnunXrphL1FC1aVNlcKOvu3buybds2GThwoNqyBDsN4DkFChRQzx8yZIgcP35cZX/FzgMo3919EHB4BhwE2E
 mhZ8+e6ln6PtQ9VapU6n479Targ5nINfYLtv0zuwfH0I/IYIs6fvrpp0rUBwUFqd0YYG8iOy3A8+EAMasXIgGNfQl7lLzacE1nGClWrJhayA1vp9GjOHnyZCX4MBDVrl1bpZvGjw1ZZgF+fF999ZXa7xPpqM+cOWP7Xm+ug7jFHp24DgNFdAezsv/9TzKmT8uNmz6mJGsUQwYNGsQvNSGEcNyPVm3xtl1RpR6+BpP5EEnTp09XAglbgEBEQVhh9wGILUSmYVIedhiumTJlirRt21ZWr17t3JMS9tJff/0lU6dOVSIJ182ZM0dtf4fyevfuLYMHD1ZbtOA4gMjCdfPnz5dHjx6pMuzcB7GH+u3YsUMdxz3GumNrPLv1NquDK679YnYPjmFbv2+++UZteaL3MMV1EMzG82PHjpXmzZs7z7vWy7UvCaGn04fEjBkzREpus/TcsWLFkkSJEoXpXm+uMwIBagQDDrZKiW5E1KxszJT/yLETJzyuHyGEEMJxP6q1xdt2veh6wAsG71lEgkn5pEmTqr+xfnLkyJHKu4coNb1FHLx2WOYE7yYEHShbtqx8//33aiJ/9OjRKpIMS5qwryVEYt68eVW5CDfV7N27VwksiLSnT586tzDxdB+8nbqOEMzwakIg67p7U2+rOrjrF7N7ICyxtylInDhxqPtxHn0DUqZMqbywGtd6ufYlnDWEopO8pAIYXljMQrkKUwz4eEUnsubLLA9P342Q2dn34lX/v/bOBUar4uzjs5aLUKAxxmC9UGIsRRGUiwU1iIoICFLQoogV5SJeq8Va7y2UAioaQgyVQgUVaC21goKi1aZq1SKlfIuIItSPICIUrDEqoliVz/8k835nz845Z8677y67+/5+ycnuey5zZp5n5pl55nbMVx3+aY0pAABg9xtSWvKkq77Eoy6ZNWuW6dixo5359ec//znz/hkzZpht27aZwYMHm5deeinzfn3mTk5hdEqrHMYsnMMoNOV
 VAxLRdZ554u2LQzHxlhP5j3/8w7YfV61aVe2Z9u3bm/Xr19v/5Vy2aNEiWJZr167FqJU5TK+tAZqvPnz48HrnrPTq1cssWLDATrttLB9DnjFlpvloaTPz5dtNSxZm8yYHmt7Nhpin7nnRfqwaAACw+w0lLcWkq77Eo9Ro74qdO3eaq6++utq1nj172nWUWj8pZ3Du3LmJ4Wiq69ixY+101/PPPz/o3VrmtHXrVjtieOWVV3qdNR8aAdX9akdqV9joKGjeeBcTB98zOidHtEePHub111+v9szQoUPted2vezXFtpSyhMZNxah58yaZioqJw7p2NWd16IBEcqJeKU2HgNpHmy5pWrB2DnbTTGqCDLwW56tiZBMhAADsfkNKS7Hpqi/xyKKYT6YoPXHnzZ3X9FEdGmFMmn4qdF2HL5w0ou8IJetdeeIdv3/+/Plm5cqVhWtyYH3t1Xi8nQy1flNfR9A+IsWmtVhZQuNAA19LKyvNY2vXmgVjxlTgdAIAAAAAlDmaMqvRyTZt2ljHUlNv3RpQgJo6nXQ9AAAAAACUOZqmrN1sAWoD1nQCAAAAAAAATicAAAAAAADgdAIAAAAAAADgdAIAAAAAAABOJwAAAAAAAOB0AgAAAAAAAOB0AgAAAAAAAE4nAAAAAAAA4HQCAAAAAAAA4HQCAAAAAAAATicAAAAAAADgdAIAAAAAAADgdAIAAAAAAMB+pUn0R8uWLZEIAAAAAAAAlAxGOgEAAAAAAACnEwAAAAAAAHA6AQAAAAAAAHA6AQAAAAAAAKcTAAAAAAAAcDoBAAAAAAAAcDoBAAAAAAAApxMAAAAAAABwOgEAAAAAAABwOgEAAAAAAACnEwAAAAAAAHA6AQAAAAAAAHA6AQAAAAAAAKcTAAAAAAAAcDoBAAAAAAAAcDoBAAAAAAAApxMAAAAAAAAaOU0QQXlQUVGRen3fvn327+7du83NN99sDjroINOxY0fzgx/8wJ7XuWbNmpnu
 3bub8847zxx44IH2/Pvvv29mzZpl3nzzTXv/tddea5914YgOHTqYY4891px55plBz9x0003myCOPtPe+8cYbZv78+eaee+4pWzlv3rzZPP3002bUqFHm7rvvNr/85S8L4d13333mqquuMjfccIP57LPPqryrZ8+e5uKLLzYzZswwlZWV5tvf7UuZfgAAGyhJREFU/raZPn06+T5QH7t27bJyl3zddV8ZgLotH44LL7zQnHLKKfb/VatWmU2bNtn8Hn2+IduS+qQPEbcjoTJO0k20LN1+++2J9gt9VNdHkr1XeXA2S/Xsb37zG6uTJk2amOHDh5vBgwd75f/FF18El61yKl/7s90k+vTpY957771CHbRgwQL7f1wPPr0B4HTCfmX8nH3e83Mv/3/DunfvXtuwmDJlinnqqadsBTZz5szCuUceecSsXLnSGkxVVP369TN33nmnmThxor23b9++5pVXXimEM23aNPPJJ5+YBx54wCxZssTce++9qc/MnTvXVmKqzGzcvv794IMPNqiKrPs/u3vPr+mxpig5v/vuu2bFihXmggsuMJMnTzbt27c3o0ePtuHovCoh13CYOnWq6d27tzn11FNN27ZtrdzlPD300EM2vHJk4017vee/d1fzVH2MHz++IN/o9ahuoAg71D3BDq0Js0OyHeKoo44q3H/rrbfaRu9FF11kDjjggEZjS+qC/zFdvee7mcrC/z47Eipjn27iZUnXfParHOlyTyvv+XU37C78n2TvXV0xbtw467CovrjlllvMjh07zJYtW6qVLSd/dWSGlq08um8M7Jvjr88rLi+uPg9pNzk9yDmN1kHu//h7fXoDqI8wvRaqoR63008/3YwcOdJ88MEHVc4NGTKkcO7RRx81nTt3NmeddZb9PWDAANO1a1ezdOnSwjOq+M4++2yzcOFCs3z5clsxpT2j0dCHH37Y/v/VV1+ZrVu3mqZNm5a1nKMMHDjQVmI7d+6scv6kk06yj
 Q81PDp16mT/1wjzxx9/XLiXHtD8+vBdT9IN1E35UN7WoRE38fbbb5sWLVpYWyKb5CgnW1LbJNmRLBkn6SZelpLsF/jJkpfqU9Wr5557rnUUDz/88Cp689myPGUrTfeff/65GTt2rO0YnTdvHu2mItpNTg8HH3xw0HvjegPA6YQGg6ZzLFu2zPzsZz+z0zXEtm3bbM+djttuu82eU8/daaedVuXZk08+2bz88svVM9rXFd+JJ55onnnmmdRnDjnkEHPYYYeZ9evXmyeeeMKcc845ZS/nKJLPpEmTzJVXXhn0jmuuucY2Grp06eLVC6TrI0qWbqD29fHqq6+aSy65xB6O+++/345Ka3RHnVrRslIutqS2SbIjWTJO0g1lqXaRjs4444zE6z755ylbabp//vnnzYcffmhHx+V80m7K127y6SENjXTqfb46CwCnE+o9mrKhnu1f//rXdkqNaN68ue1RU2Wi9ZlCvWrq3Yyyfft2065dO2+46unTtaxn9M5FixbZ9QuN2ZCGyjmO1taoN1nTlTML+NfOvtZ9alrciBEjzLp168jgOfQRJUQ3ULv6OP74421e1iE0wqIpfWrwaX3Uiy++aEdnys2W1HpDIcWOJMk4TTeUpdpFdbObTiukr+heAD755y1bSbrXCN6hhx5qunXrZp+h3ZSv3RTXQxYaJdWIsxt1BsDphAbFEUccYY1mdLqOejXV86beU61DEFosH51yo0pKaxc0nTbO6tWr7fQsrUfIekZrF3WudevWjXqzllA5+5gzZ47tUZX8QtBGBmoMbNy4kQyeQx9RQnUDdaMPoREW2Y7vfOc79pB9UUO53GxJXeGzI0kyTtMNZal2GTRokFm8eHFhsyE5PRpBy2PLsspWmu61dvHxxx83l112Ge2mGrSbABobbCQEuVBvqXowZSC1W96ECRPsmoVjjjnGbNiwwVx33XW2R08L4N20D/UAyrA+++yzdm1J2jM2UzZpYh0qTcdFzv
 6KSHLUBg6qrNLQznbvvPOOadWqld1kon///mTiEpcB2H9od87Zs2fbRrHQKEGPHj3sdFBsSenw2ZH//ve/qTLO0g1lqfbQNGjtiKppm7169bIjaxpxS7JlvvX+SfqLOqk+3T/33HN2F1vV+cwuyN9uSsO1qYTW9crJjZ+T3gHqKxWj5s2bZCoqJg7r2tUMPeEEJNJYFZ1ja/y8qHLZs2ePadmyZWF3u9p4ptzlXCyaiqsd8yRr8v3+1wd2CH00RH2Usx1pqOXD1bP6bIeOukLv1SGnFH2UVxsIIM7Sykrz2Nq1ZsGYMRU4nQAAAAAAAFBrTifdKwAAAAAAAFBrsKazTAidJrJ79267E537ALE2ItD6jOgHiVetWmU2bdpkd1F1z2jNj9YY6mPRQh+T1nPRD0UnPae1Jh07drQL7LVmqFzkHE+70DlNg9KGHfoAuNucQWs9tDmDdhHU/Vq34dbozJgxw67r0K5406dPN5s3b7YfnNZft5GEQ+tJhg0bZt/j0HqQxvoNzzzTo+JyVF7V9v/6ZIBYs2aNlafWNiXpLipTd19cn073cfnHy0dW2VKZlJ71N15uhcqevtPnPhiuzxUpzvtzfWNN9OHytdKo8qA1Z5KFpvANHz7cDB482Mrh7rvvrrJTp3ZdzbJfcdk1RttUE33ccMMNqbbElz/1aaekuiSrzgitU8q5nk7Kn778nVQm0vTq092oUaOC7Vy51R9pNikqs6FDh9pdfX36SKobbrzxRrumWrpWmYjXI9q8SGtC9e1UgPoMI51lxPivDaTviKJNf1asWFH4rTU80d/i1ltvtUbQ7ZyqZ/QNr9///veFe/Rb3/jKek6NSu3spp31Qr89Wd/Z98/u3iMu53ja3Tl970zf7FKDwOmgX79+dpMAbYuuRkHfvn3tGit9C23Xrl12e3Xn/GijD+lMlb92F3zrrbdsw13/61n3Hv3W4ZyScsYnR22+ISfHITnK6U/TXVSmSfpMkn+
 8fGSVLadnX7kVCvf666+3/+tzRXfccYdtFO5vNt6013tk6cOlV/m+T58+dhOOhQsXmmnTphU6YCSHyZMn2+cdIfYrfk9jtU0+utzTyntESbMlSfkzrS7JqjNC65TGyJzx3b1HaP705e+kMpGmV5/u8ti5xsJNB/yv94iSZZOiMtO3TZP0kVQ3qONTdb/04DYPdPfKuT366KNteNGOMwCcTmjw6Dtd+kj4gAEDqmz7rR42950oVXZqsDdt2jTzORlm7eI2cuRI2zAuJ3xpd+eGDBlSOCd5de7c2X6qQEiG+jbX0qVL7XfB9CkaER+tlJPau3dv07ZtW9OpUyf7v9vOXe/Rbx1qbJQ7aXLMo7u4TH369N2bVD5CylYSGuXUO1944QX7YXI1dBrKhhVp+lC+V/5X+pQe7eQcvWfgwIFmypQphedD7FeojsuVNFtSbP7Meq7YcMu5/kjK30llIk2vae8NtXPlQpZNispMsk6zUT75yqkUGk3Wp1mi98rZ1a64cnaXL19uR0QBcDqhweC24NZx6aWXVrmmnmb1uo0bN872PDv0PSr14K1fv95+30u9niHP6cPTy5Yts9uul9v26r60b9u2zcycOdMechTEypUrzWmnnVblWW2Fr15lfX5AjQxtka/fxegYTG45+nTnk6lPn0KjE/p+m4608hFSttLQh8rHjBljPv30U9uIaQz60G+N8CQheWlqp290Mk3OIToGv7yT8mdaXZKVr2uS78u1/kirn5PKRN52QB47Vy5k2aS4zNL04ZOvpuPKqX/ttdfsX29j/mtnV0sndA9AfYU1nVAN9di5HmatGxgxYoT9X73N+jh0+/btbYUnQ6ieVbeWRN+MWrRokZ2qo7+a4pP1nKaIaFRDjeOsHtbGRjztWhPSvHlz23upj3lrjYZQb6d6+aNs377dtGvXzlY0Wg+i9YZaK/Lkk0/m1jGY3HL06c4nU58+hdZBaepoWvlw38dLK1tZHHfccXaK
 VrzB35D1ofKwZcuWwu9169bZkYbo9wO1nm3x4sVmyZIlhXNZ9itLx5BMUv5MqktC83Wx+b4c64+s/O0rE8W0A/LYuXIhyyZFZea+xZmkD5981WGo75/edddd1qmfOnWqNx4aZdZIKkC9rdsRAYSi3mZN41BjWIfWD6iSc2gNgtYbtG7duspGAmnPaaqIGhbl2KjzpV09oBr9Uq+pq7C0pi06VUqNC8lZMnVorZ6m327cuJGMWgOicpRjqMauQw25Nm3a5Mq3Pn3mLVdpZSsENQgb6nfgfPl60KBBtrHmNkBRQ1cjx3HmzJljR4Hc2rYQOWeVT/BTbP7Meq4m+b7c6o+Q/B0vE6UixM41ZkJtUpaNykJToKPObZTVq1fb6br1Yd0+QBKMdEIw2plt9uzZhREYNcp79Ohhp8LZzNSkiTWg8d0xs56D6mhnu27dutlGhDZ2mDBhgp1Wo40KNmzYYK677jrbo6zd67SGQ73Z2milf//+QZWdm8IjtK5Hu+GWMz45ysFUI0o7EGqNjnZPVe+1RhhCZKoGoU+fbn1OVvmINt6SylZj1WlavtaUW6VNU8x79eplZwG4TTuiSGfa6dFtvJFmh9J0BwENiYD8WcxzxYZL/eyvZ+NlohhC7ZzqrXIhyyZFZaZ70/QRl+8VV1xhRo8ebWesaMaHdBy/V3WSHNdnn32WggD1mopR8+ZNMhUVE4d17WqGnnACEmmsis6x9TfUTzmrUtmzZ49p2bJllZEr7ZynXe10HorXR5IckW/90ke8PGhzDR1AvYA+YH/qo7ZsUlLdD9AQWFpZaR5bu9YsGDOmAqcTAAAAAAAAas3ppMsEAAAAAAAAag2cTgAAAAAAAMDpBAAAAAAAAJxOAAAAAAAAAJxOAAAAAAAAwOkEAAAAAAAAnE4AAAAAAAAAnE4AAAAAAADA6QQAAAAAAACcTgAAAAAAAACcTgAAAAAAAMDpBAAAAAAAAJxOAAAAAAAAAJxOKHs+/
 /xz89hjj5nFixebdevWJd731Vdfmb/85S+F47nnnmtwaY2m4c033yycf+GFFzKfDblHMhk6dKi58MIL91saQ+KZJp9S6bUm8Qhl8+bN5pFHHrH5V/nYpw9d3717d9D5N954w5YDhbdnz55aebfuffrpp3OFFVoWffk7Tad1oaNoGiXbJUuWmI8++mi/2oG6SHeoLbjoootqbMsauj3euXNntXK4fv36zOeLlV2pw0qqV0LzWinTURObXpvxAACcTihzVq5caX7yk5+Ygw8+2Jx88slmzZo15vrrrzdffPFFtXt1bsCAAbZhrOPxxx9vcOl1aVADf/To0Wbw4MH2/Ny5czOfDbln0qRJZsaMGeZ3v/tdnaXpiSeeyB3PNPkMHDiw5PGIXwsNI4tf/epX9u9rr71mevfuXeXaxIkTzfLly63Td8455xScuaTz8+bNM7fffrtp2rSpdZB0lPrdcrpGjhxpzj///OCw0vJxvCz68neaTmuSV/LwwAMPmHPPPdfKYfv27aZXr17m5ZdfLkl+KOaeukh3mi2Ixkf5pCa2rKHb4379+plf/OIXVc6rfEydOjXz+WJlV+qwkuqV0LxWynTUxKbXVjzy2nUAnE6ARsYHH3xgG8EzZ840f/vb38wzzzxjmjVrZiZMmGDuuOMO7zNNmjQxs2bNsoeecz28Djmt77//fuG3wlQvtkY3xGeffWYrZr03ft97771nG2hyhB0aEdG9uh5l7dq19t4VK1ZUCUP3P/zww2b16tWJ6VYa5syZYxu9bsTpkksuKVxPimP0Ht+7NEpcWVlp47Zjx47M9Eblot+6rvDcaLOei4+IxdOt32rM67cbLYjG041i6xkXrnri9TukIZAk03gYafGIX0vKM74wkvQfdWaGDx9ufv7zn5t//etfBRkrbyvOavSrEdizZ0+zcOHCxPNqmN18883mD3/4g42DOl6OO+64TEcqz7vFBRdcYP70pz8Fh5VGvCym5e8kon
 klK1/4ylxIuXvnnXfMjTfeaG3MxRdfbK655hrz0EMPmR/96Ef2ep78EJLv8paRtDIaYk98z/tsQVSOvnzue09W/vflgTSbXJf2OFSG6oBQHBRvF99PP/00Uz9xfHGL27+s+iokPVH5ZdUroXktKz9F06f4Ky2Kh0YwozMpJGNfh3Ge8uzTe566LKT8hYRVk7QB4HQC1DNUCagBeNddd5lTTz3VjB071k6vOfLII6tNd4qiikCHKgAd0elj6p1WY8uh6WU//vGPbSNCDQCNpqpS0/99+vQpNMh039VXX20rIzVGly1bZsMeNGiQ/fvoo49WcYT1+5vf/Ka59957bcXlwrj00kttGPp/06ZNiWlQ4+O+++4z48ePt79/+MMfFhopSXF09yS96+OPP7bX/vOf/5i9e/dmptfJxf2+9tpr7X19+/a1upAO5AhFGzDxdLt3quJ2o2nRtHTr1s1W1i1atLAjTIrLiBEj7G/9n4Uvnb4w0uIRv5aUZ3z3Jek/zrvvvmvjc9BBB9nfL774ojnhhBMK17t27WqdnqTzf/3rX81JJ51kZapGostTIYS+u5iwsoiWxbT8nYTTUUi+8JW5kHL3/PPPmzPPPNO0adOmcO7EE0+0elbjOTQ/hOa7vGUkrYxm2ZOk5+O2IIovn/veE5r/43kgzSbXpT0OlWGrVq3MGWecYd8h1EGjZ7L0E8UXN5/9y6qvQtITtdtZ9UpoXsvKT+68OrTefvttM2zYMOsUynFbtGhRIT9ddtll1vkNwZdGySeu95ByEpVJVvkLDasmaQNoyJDLoVGiBoAqYK2fueWWW6pc69ixo62A4kbeVUpizJgxtqGexYMPPmhatmxpK5FjjjnGXHXVVfb8W2+9ZaceaSqi+OMf/2j/qsGtnnE11g488EDTtm1b079/fzNlypRCPDUdURXWrl27bCNfI0iq8DVFUs+rx1Thd+jQwdtA0QiU0q+RpSiaopYWx2jjIv6us88+2zR
 v3txOn1RDKiu9Ti6O3/72twU5adRL07U0shN1AuLp1gjHAQccYEeQ4igtkl10mpqcGlXgmk6t3ucsfOk8/vjjq4WhKaFJ8YhfS1qzGL9PckjSf7xnXjLXKKWeF2q0fOMb3yjcI73ovUnntX5TjqEcf40YqfGjabZKn8KPj9JIN3pXnndn4QsrjXhZVOMtK38nofhl5QtfmUvKI9Fyp2ei+dxx6KGHmm3btllbE5IffHnXl+/ylpGkMhpiT9Kej9qCtHQlvWfp0qWZ+T8pD9QHexySNxxycBYsWGCGDBliy9ptt91m66VQe+yT1dFHH13N/oWUw7T0+Ox2SL0SWrck3XPsscdau3vFFVfY864TSx1kWh6j85otoTwQSlIa43qXTrLiHpVJVvkLrRelv2LTBoDTCVDP0AiMKng1oNU7qwa3Gr6HHHKIXVvm61XUOU2NC63Edb+rjNQbH62sjzrqKPPSSy8V7nOo8aCGu+5X+K533DWuNAKoyl0Orxqtcg6EpgaHjBC5NCj8Tp06VVnHkhbHKCHvykpv9Fr8t3qK4ySlO+39hx12WJVzhx9+uG1UaARVDQGlPd4ozkpn3jCKJUn/cUdNIwmzZ8+2DTPHt771rSojTOptVxyTziud6n3XiJxQQ+epp56yzo16/X2jK3nfneVw+sIKycdZ+ds3FTBOlk7T8l5WWdAIp2/0NM3hLCaOxZaRpDJa0zIeStJ7QvJ/Uh6oD/Y4j02WY6ORLDk5GsXLK19f3Hz2L4S09MTtdFa90qVLl1xpSbqnXbt23vdq6v4nn3xiN12aP3++eeWVV2qURp/e89RlIeUvNKxi0wbQ0GF6LTRKVNHff//9todTvYpax6aRNa0Z6d69e3A4X375ZaHCSVv7pHds2bKl8Fu9tZpmJ9RL7Nb0aAOXzp0728b3hx9+aHtEdWjKqdB6LlVI6k3+/ve/X3T61WBt3bq12bp1a1Ac81LKsIpJt+T397//3TpNUdQg
 0I6KSrumPhZDTcMIyTNJ+o/n4cmTJ1dz1OQ8vvrqq4VOEeXp8847L/H8WWedZc87WWlUTQ1Hoenmenf0kNOT991ZZdEXlnu+mN1eXf7Wmsqa6rQmZU7THrV2TiNXDq35UllQgzOPDcnKd3njWdMyWuoynjf/16R81Sd7rPKkDp7LL7+8yvTXUPn64pZk/7JkU9P0+OqV0LQk3aPRYcVVadHI4KpVqwr3aARQ6VXZiE5hL6Yu8ek9jx5CZJenzCSlrVibCNAQYKQTGmdvytcV/bRp0+zIgSo1Gf4nn3zS9g5r1NOHKqXoznx33nmnbZxrtFSVrWuo+9C0Mk0R0jRU9Waqchs3blzhutaTqqdTlZ3WkmganaaZqsJR/NTrqU1YtF5OO0O+/vrrthddGw5EG7RZuDRs2LDBjm4pPqFxzEMpwxJJ6VZa5LRoelK0s0CVv6at9ejRwzbAvvvd79p7tUPrEUccYRtpWsubF60l8oWRFA/ftaQ8E71P8ffp36GGl3q/NYXRsXHjRhum8pHytnbG1CiBZK/3iaTz06dPN6effrqVlRqMmrKXRLHv1vpcTSVT41GN7J/+9Kf2/qSwhMJRwyy+q62vLEpO8fzt3l2MTrPyXsiorPK+9Kb0qRGr0RM59W4EVqNhIflBTnxWvstbRmpaRot9PhqfJLLyf1Ie0AZYITa5tu1x6Ii9Q6OT6oTQiLY6bfLIN0lWcfunqbZZsik2PWn1Smhaku5RXa3OYcVX61+lYzcqqWmr2qhL01iz4hbVrTqc42nU6GZc73n0EFL+8pSZpLQl2USAxkDFqHnzJpmKionDunY1QyMbRAA0FrSmTZWMKtaQ9WRx1IhWhRWCGwFSY9OhXkz1XPrCUaWkZ6LndU6HKkddi4ZVCnxxrA9hJaU7Tf7x9/vkWUw8fGGkxSN+Lene+PmaxFd5Spu5uBG1rPMqB9pwRL3xNSXpHfWVLDmXosxpJoUao1prF2pDoudD8l0py
 khdlPFQm1ls/g8NvzHZY1/cfM9myaY20xOSFt89io+rm+Xcaaq5HGx14Gg2gXaJLUVdkiafkLiHlr+QsIpNG0BDY2llpXns63y+YMyYCkY6odGjHsesT0SkkadB5KtkNB0pKRxVtPHzOucq4FI3cEodZinDSkp3mvzj7/fJs5h4+MJICzd+Lelen66Lja8az74pZ0nn3QYWpSDpHfWVLDmXosylreEMyQ8h+a4UZaQuynhoni42/4c+05jssS9uvmezZFOb6QkJz3fPKaecYkeBNV1eo7puQyaNWLpNeUpRl6TJJyTuoeUvJKxi0wbQkGGkEwAAAAAAAEpKdKSTjYQAAAAAAACg1sDpBAAAAAAAAJxOAAAAAAAAwOkEAAAAAAAAwOkEAAAAAAAAnE4AAAAAAABowBS+07lhxw6zb98+JAIAAAAAAAA14s1//7u606mT0QsAAAAAAAAAAAAAAAAAAAAAAAAAAADlx/8BTbAPg53vE4sAAAAASUVORK5CYII=</output></ns2:getResultResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/14b9027d-11bb-4586-bff7-89130856409b.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/14b9027d-11bb-4586-bff7-89130856409b.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/14b9027d-11bb-4586-bff7-89130856409b.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/14/14b9027d-11bb-4586-bff7-89130856409b.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/18/18d41521-e314-4122-a4ff-cb7718982935.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/18/18d41521-e314-4122-a4ff-cb7718982935.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/18/18d41521-e314-4122-a4ff-cb7718982935.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/18/18d41521-e314-4122-a4ff-cb7718982935.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/1f/1f536bcf-ba43-44ec-a983-b30a45f2b739.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/1f/1f536bcf-ba43-44ec-a983-b30a45f2b739.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/1f/1f536bcf-ba43-44ec-a983-b30a45f2b739.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/1f/1f536bcf-ba43-44ec-a983-b30a45f2b739.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/21/219626eb-a4fc-4c83-9132-67b2b40d5a68.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/21/219626eb-a4fc-4c83-9132-67b2b40d5a68.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/21/219626eb-a4fc-4c83-9132-67b2b40d5a68.txt
deleted file mode 100644
index d3745e5..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/21/219626eb-a4fc-4c83-9132-67b2b40d5a68.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>FINISHED</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/26/268a47b4-34aa-42d0-96ad-98b99601a4e5.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/26/268a47b4-34aa-42d0-96ad-98b99601a4e5.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/26/268a47b4-34aa-42d0-96ad-98b99601a4e5.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/26/268a47b4-34aa-42d0-96ad-98b99601a4e5.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/28/28ccca88-6e06-4d5a-a43e-93ad263c6abd.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/28/28ccca88-6e06-4d5a-a43e-93ad263c6abd.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/28/28ccca88-6e06-4d5a-a43e-93ad263c6abd.txt
deleted file mode 100644
index 425f797..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/28/28ccca88-6e06-4d5a-a43e-93ad263c6abd.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-<parameters><sequence>&gt;sp|Q9BTV4|TMM43_HUMAN Transmembrane protein 43 OS=Homo sapiens GN=TMEM43 PE=1 SV=1
-MAANYSSTSTRREHVKVKTSSQPGFLERLSETSGGMFVGLMAFLLSFYLIFTNEGRALKT
-ATSLAEGLSLVVSPDSIHSVAPENEGRLVHIIGALRTSKLLSDPNYGVHLPAVKLRRHVE
-MYQWVETEESREYTEDGQVKKETRYSYNTEWRSEIINSKNFDREIGHKNPSAMAVESFMA
-TAPFVQIGRFFLSSGLIDKVDNFKSLSLSKLEDPHVDIIRRGDFFYHSENPKYPEVGDLR
-VSFSYAGLSGDDPDLGPAHVVTVIARQRGDQLVPFSTKSGDTLLLLHHGDFSAEEVFHRE
-LRSNSMKTWGLRAAGWMAMFMGLNLMTRILYTLVDWFPVFRDLVNIGLKAFAFCVATSLT
-LLTVAAGWLFYRPLWALLIAGLALVPILVARTRVPAKKLE</sequence></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a8831af-c11f-4d0e-be9d-d90c170c1002.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a8831af-c11f-4d0e-be9d-d90c170c1002.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a8831af-c11f-4d0e-be9d-d90c170c1002.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a8831af-c11f-4d0e-be9d-d90c170c1002.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a91a135-c649-4735-a02f-6db45b9c847e.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a91a135-c649-4735-a02f-6db45b9c847e.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a91a135-c649-4735-a02f-6db45b9c847e.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/2a/2a91a135-c649-4735-a02f-6db45b9c847e.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/32/321106aa-13f1-49e5-a10b-bf08693f7df6.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/32/321106aa-13f1-49e5-a10b-bf08693f7df6.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/32/321106aa-13f1-49e5-a10b-bf08693f7df6.txt
deleted file mode 100644
index 17e6b8d..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/32/321106aa-13f1-49e5-a10b-bf08693f7df6.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId><type xmlns="">txt</type></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/37/3792ebd6-6210-4af9-bc3f-74e3934a52ef.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/37/3792ebd6-6210-4af9-bc3f-74e3934a52ef.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/37/3792ebd6-6210-4af9-bc3f-74e3934a52ef.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/37/3792ebd6-6210-4af9-bc3f-74e3934a52ef.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/3d/3df7b202-58f3-4425-b063-4f4f7ab4cd5a.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/3d/3df7b202-58f3-4425-b063-4f4f7ab4cd5a.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/3d/3df7b202-58f3-4425-b063-4f4f7ab4cd5a.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/3d/3df7b202-58f3-4425-b063-4f4f7ab4cd5a.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/4a/4acb798d-0fd2-4b9c-91e5-587e5aa8366a.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/4a/4acb798d-0fd2-4b9c-91e5-587e5aa8366a.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/4a/4acb798d-0fd2-4b9c-91e5-587e5aa8366a.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/4a/4acb798d-0fd2-4b9c-91e5-587e5aa8366a.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/51/51845ad9-e0a3-4094-8ce8-f2f5bd06e61e.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/51/51845ad9-e0a3-4094-8ce8-f2f5bd06e61e.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/51/51845ad9-e0a3-4094-8ce8-f2f5bd06e61e.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/51/51845ad9-e0a3-4094-8ce8-f2f5bd06e61e.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5a/5aec892f-fad5-4f90-b1c1-8241b8917f8b.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5a/5aec892f-fad5-4f90-b1c1-8241b8917f8b.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5a/5aec892f-fad5-4f90-b1c1-8241b8917f8b.txt
deleted file mode 100644
index 3907f45..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5a/5aec892f-fad5-4f90-b1c1-8241b8917f8b.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId><type xmlns="">xml</type></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b5357f1-3062-43ab-adab-e0f3e3721dcc.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b5357f1-3062-43ab-adab-e0f3e3721dcc.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b5357f1-3062-43ab-adab-e0f3e3721dcc.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b5357f1-3062-43ab-adab-e0f3e3721dcc.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b8444ec-0592-4154-8f02-638c79f4171a.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b8444ec-0592-4154-8f02-638c79f4171a.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b8444ec-0592-4154-8f02-638c79f4171a.txt
deleted file mode 100644
index f2ba67c..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5b8444ec-0592-4154-8f02-638c79f4171a.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId><type xmlns="">visual-png</type></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5bb72df1-fc1d-43d8-9206-dcab6ced0437.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5bb72df1-fc1d-43d8-9206-dcab6ced0437.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5bb72df1-fc1d-43d8-9206-dcab6ced0437.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5b/5bb72df1-fc1d-43d8-9206-dcab6ced0437.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5d/5d572af1-f6fb-48a4-b338-a7ce140932ec.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5d/5d572af1-f6fb-48a4-b338-a7ce140932ec.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5d/5d572af1-f6fb-48a4-b338-a7ce140932ec.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/5d/5d572af1-f6fb-48a4-b338-a7ce140932ec.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/67/67958fa2-98dd-4f82-b9f6-96537cea9528.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/67/67958fa2-98dd-4f82-b9f6-96537cea9528.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/67/67958fa2-98dd-4f82-b9f6-96537cea9528.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/67/67958fa2-98dd-4f82-b9f6-96537cea9528.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/71/71540c58-5ff6-4dee-a26e-f1360b135e54.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/71/71540c58-5ff6-4dee-a26e-f1360b135e54.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/71/71540c58-5ff6-4dee-a26e-f1360b135e54.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/71/71540c58-5ff6-4dee-a26e-f1360b135e54.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/73/731b11bb-a3be-4054-b1e4-3331a8f3c0c0.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/73/731b11bb-a3be-4054-b1e4-3331a8f3c0c0.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/73/731b11bb-a3be-4054-b1e4-3331a8f3c0c0.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/73/731b11bb-a3be-4054-b1e4-3331a8f3c0c0.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/77/77ede682-e556-4d89-b429-219adfbe48be.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/77/77ede682-e556-4d89-b429-219adfbe48be.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/77/77ede682-e556-4d89-b429-219adfbe48be.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/77/77ede682-e556-4d89-b429-219adfbe48be.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7c/7ceba67b-46e2-4c4b-9cec-e5f0e11c43e9.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7c/7ceba67b-46e2-4c4b-9cec-e5f0e11c43e9.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7c/7ceba67b-46e2-4c4b-9cec-e5f0e11c43e9.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7c/7ceba67b-46e2-4c4b-9cec-e5f0e11c43e9.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7e/7e7ee056-5a86-45a3-b4e6-e8de44679922.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7e/7e7ee056-5a86-45a3-b4e6-e8de44679922.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7e/7e7ee056-5a86-45a3-b4e6-e8de44679922.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/7e/7e7ee056-5a86-45a3-b4e6-e8de44679922.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/8618bc0b-9852-457d-b0b7-16af5526faaf.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/8618bc0b-9852-457d-b0b7-16af5526faaf.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/8618bc0b-9852-457d-b0b7-16af5526faaf.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/8618bc0b-9852-457d-b0b7-16af5526faaf.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/864a72a6-34b8-4d74-86f7-4b6ccfe91a1f.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/864a72a6-34b8-4d74-86f7-4b6ccfe91a1f.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/864a72a6-34b8-4d74-86f7-4b6ccfe91a1f.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/86/864a72a6-34b8-4d74-86f7-4b6ccfe91a1f.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8c/8c50b1fe-e91e-4840-86af-ec99c2b04a67.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8c/8c50b1fe-e91e-4840-86af-ec99c2b04a67.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8c/8c50b1fe-e91e-4840-86af-ec99c2b04a67.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8c/8c50b1fe-e91e-4840-86af-ec99c2b04a67.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8e/8ed106dd-7ada-4d61-a3f6-01740454cd76.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8e/8ed106dd-7ada-4d61-a3f6-01740454cd76.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8e/8ed106dd-7ada-4d61-a3f6-01740454cd76.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/8e/8ed106dd-7ada-4d61-a3f6-01740454cd76.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/91/91fdc8e6-159e-495e-842a-ef51fe3ec534.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/91/91fdc8e6-159e-495e-842a-ef51fe3ec534.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/91/91fdc8e6-159e-495e-842a-ef51fe3ec534.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/91/91fdc8e6-159e-495e-842a-ef51fe3ec534.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94a5377e-5752-433c-aa8b-c39bb461505f.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94a5377e-5752-433c-aa8b-c39bb461505f.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94a5377e-5752-433c-aa8b-c39bb461505f.txt
deleted file mode 100644
index f39324c..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94a5377e-5752-433c-aa8b-c39bb461505f.txt
+++ /dev/null
@@ -1 +0,0 @@
-xml
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94d65aea-ed02-488c-aa38-d3b9840e4b65.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94d65aea-ed02-488c-aa38-d3b9840e4b65.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94d65aea-ed02-488c-aa38-d3b9840e4b65.txt
deleted file mode 100644
index d650d2f..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/94/94d65aea-ed02-488c-aa38-d3b9840e4b65.txt
+++ /dev/null
@@ -1 +0,0 @@
-iprscan-S20130531-112044-0159-59919420-oy
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a2/a217d73f-1843-4162-9bae-a5b05541b538.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a2/a217d73f-1843-4162-9bae-a5b05541b538.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a2/a217d73f-1843-4162-9bae-a5b05541b538.txt
deleted file mode 100644
index da9f9a4..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a2/a217d73f-1843-4162-9bae-a5b05541b538.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getResultResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><output>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8RUJJSW50ZXJQcm9TY2FuUmVzdWx0cyB4bWxucz0iaHR0cDovL3d3dy5lYmkuYWMudWsvVG9vbHMvY29tbW9uL3NjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuZWJpLmFjLnVrL1Rvb2xzL2NvbW1vbi9zY2hlbWEvSW50ZXJQcm9TY2FuUmVzdWx0LnhzZCI+Cgk8SGVhZGVyPgoJCTxwcm9ncmFtIG5hbWU9IkludGVyUHJvU2NhbiIgdmVyc2lvbj0iNC44IiBjaXRhdGlvbj0iUE1JRDoxMTU5MDEwNCIvPgoJCTxwYXJhbWV0ZXJzPgoJCQk8c2VxdWVuY2VzIHRvdGFsPSIxIi8+CgkJCTxkYXRhYmFzZXMgdG90YWw9IjE2Ij4KCQkJCTxkYXRhYmFzZSBudW1iZXI9IjEiIG5hbWU9IlBST0RPTSIgdHlwZT0ic2VxdWVuY2VzIi8+CgkJCQk8ZGF0YWJhc2UgbnVtYmVyPSIyIiBuYW1lPSJDT0lMIiB0eXBlPSJtYXRyaXgiLz4KCQkJCTxkYXRhYmFzZSBudW1iZXI9IjMiIG5hbWU9IlBSSU5UUyIgdHlwZT0ibWF0cml4Ii8+CgkJCQk8ZGF0YWJhc2UgbnVtYmVyPSI0IiBuYW1lPSJHRU5FM0QiIHR5cGU9Im1vZGVsIi8+CgkJCQk8ZGF0YWJhc2UgbnVtYmVyPSI1IiBuYW1lPSJIQU1BUCIgdHlwZT0ic3RyaW5ncyIv
 PgoJCQkJPGRhdGFiYXNlIG51bWJlcj0iNiIgbmFtZT0iUEFOVEhFUiIgdHlwZT0ibW9kZWwiLz4KCQkJCTxkYXRhYmFzZSBudW1iZXI9IjciIG5hbWU9IlBGQU0iIHR5cGU9Im1vZGVsIi8+CgkJCQk8ZGF0YWJhc2UgbnVtYmVyPSI4IiBuYW1lPSJQSVIiIHR5cGU9Im1vZGVsIi8+CgkJCQk8ZGF0YWJhc2UgbnVtYmVyPSI5IiBuYW1lPSJTTUFSVCIgdHlwZT0ibW9kZWwiLz4KCQkJCTxkYXRhYmFzZSBudW1iZXI9IjEwIiBuYW1lPSJUSUdSRkFNcyIgdHlwZT0ibW9kZWwiLz4KCQkJCTxkYXRhYmFzZSBudW1iZXI9IjExIiBuYW1lPSJQUk9TSVRFIiB0eXBlPSJzdHJpbmdzIi8+CgkJCQk8ZGF0YWJhc2UgbnVtYmVyPSIxMiIgbmFtZT0iUFJPRklMRSIgdHlwZT0ic3RyaW5ncyIvPgoJCQkJPGRhdGFiYXNlIG51bWJlcj0iMTMiIG5hbWU9IlNFRyIgdHlwZT0iTkEiLz4KCQkJCTxkYXRhYmFzZSBudW1iZXI9IjE0IiBuYW1lPSJTSUdOQUxQIiB0eXBlPSJtb2RlbCIvPgoJCQkJPGRhdGFiYXNlIG51bWJlcj0iMTUiIG5hbWU9IlNVUEVSRkFNSUxZIiB0eXBlPSJtb2RlbCIvPgoJCQkJPGRhdGFiYXNlIG51bWJlcj0iMTYiIG5hbWU9IlRNSE1NIiB0eXBlPSJtb2RlbCIvPgoJCQk8L2RhdGFiYXNlcz4KCQk8L3BhcmFtZXRlcnM+Cgk8L0hlYWRlcj4KPGludGVycHJvX21hdGNoZXM+CgogICA8cHJvdGVpbiBpZD0iVE1NNDNfSFVNQU4iIGxlbmd0aD0iNDAwIiBjcmM2ND0iNzBGRERENEVEMUFBMTFERiI+Cgk8aW50ZXJwcm8ga
 WQ9IklQUjAxMjQzMCIgbmFtZT0iVHJhbnNtZW1icmFuZSBwcm90ZWluIDQzIGZhbWlseSIgdHlwZT0iRmFtaWx5Ij4KCSAgPG1hdGNoIGlkPSJQVEhSMTM0MTYiIG5hbWU9IlVOQ0hBUkFDVEVSSVpFRCIgZGJuYW1lPSJQQU5USEVSIj4KCSAgICA8bG9jYXRpb24gc3RhcnQ9IjEiIGVuZD0iNDAwIiBzY29yZT0iMi44ZS0yMDkiIHN0YXR1cz0iVCIgZXZpZGVuY2U9IkhNTVBhbnRoZXIiLz4KCSAgPC9tYXRjaD4KCSAgPG1hdGNoIGlkPSJQRjA3Nzg3IiBuYW1lPSJEVUYxNjI1IiBkYm5hbWU9IlBGQU0iPgoJICAgIDxsb2NhdGlvbiBzdGFydD0iMTIxIiBlbmQ9IjM3MyIgc2NvcmU9IjUuMmUtODIiIHN0YXR1cz0iVCIgZXZpZGVuY2U9IkhNTVBmYW0iLz4KCSAgPC9tYXRjaD4KCTwvaW50ZXJwcm8+Cgk8aW50ZXJwcm8gaWQ9Im5vSVBSIiBuYW1lPSJ1bmludGVncmF0ZWQiIHR5cGU9InVuaW50ZWdyYXRlZCI+CgkgIDxtYXRjaCBpZD0iUFRIUjEzNDE2OlNGMCIgbmFtZT0iU1VCRkFNSUxZIE5PVCBOQU1FRCIgZGJuYW1lPSJQQU5USEVSIj4KCSAgICA8bG9jYXRpb24gc3RhcnQ9IjEiIGVuZD0iNDAwIiBzY29yZT0iMi44ZS0yMDkiIHN0YXR1cz0iVCIgZXZpZGVuY2U9IkhNTVBhbnRoZXIiLz4KCSAgPC9tYXRjaD4KCSAgPG1hdGNoIGlkPSJ0bWhtbSIgbmFtZT0idHJhbnNtZW1icmFuZV9yZWdpb25zIiBkYm5hbWU9IlRNSE1NIj4KCSAgICA8bG9jYXRpb24gc3RhcnQ9IjMzIiBlbmQ9IjUxIiBzY29yZT0iTkEiIHN0YX
 R1cz0iPyIgZXZpZGVuY2U9IlRNSE1NIi8+CgkgICAgPGxvY2F0aW9uIHN0YXJ0PSIzMTMiIGVuZD0iMzMxIiBzY29yZT0iTkEiIHN0YXR1cz0iPyIgZXZpZGVuY2U9IlRNSE1NIi8+CgkgICAgPGxvY2F0aW9uIHN0YXJ0PSIzNTAiIGVuZD0iMzcwIiBzY29yZT0iTkEiIHN0YXR1cz0iPyIgZXZpZGVuY2U9IlRNSE1NIi8+CgkgICAgPGxvY2F0aW9uIHN0YXJ0PSIzNzUiIGVuZD0iMzk1IiBzY29yZT0iTkEiIHN0YXR1cz0iPyIgZXZpZGVuY2U9IlRNSE1NIi8+CgkgIDwvbWF0Y2g+Cgk8L2ludGVycHJvPgogICA8L3Byb3RlaW4+Cgo8L2ludGVycHJvX21hdGNoZXM+CjwvRUJJSW50ZXJQcm9TY2FuUmVzdWx0cz4K</output></ns2:getResultResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a5/a58b2fcd-fb4c-4445-be36-b5c00b96a813.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a5/a58b2fcd-fb4c-4445-be36-b5c00b96a813.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a5/a58b2fcd-fb4c-4445-be36-b5c00b96a813.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a5/a58b2fcd-fb4c-4445-be36-b5c00b96a813.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a746bcfc-5d24-48ae-a12f-e3d285ed3b4d.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a746bcfc-5d24-48ae-a12f-e3d285ed3b4d.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a746bcfc-5d24-48ae-a12f-e3d285ed3b4d.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a746bcfc-5d24-48ae-a12f-e3d285ed3b4d.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a7c9ef28-f3de-4566-aac6-90d5fa20318a.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a7c9ef28-f3de-4566-aac6-90d5fa20318a.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a7c9ef28-f3de-4566-aac6-90d5fa20318a.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a7/a7c9ef28-f3de-4566-aac6-90d5fa20318a.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a8/a8fba0e7-10a6-4fed-afd9-3a15fd24ba8e.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a8/a8fba0e7-10a6-4fed-afd9-3a15fd24ba8e.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a8/a8fba0e7-10a6-4fed-afd9-3a15fd24ba8e.txt
deleted file mode 100644
index 84c22fd..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/a8/a8fba0e7-10a6-4fed-afd9-3a15fd24ba8e.txt
+++ /dev/null
@@ -1 +0,0 @@
-txt
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/ad/add43936-5cc3-4635-bc4e-dc64a6664dd8.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/ad/add43936-5cc3-4635-bc4e-dc64a6664dd8.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/ad/add43936-5cc3-4635-bc4e-dc64a6664dd8.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/ad/add43936-5cc3-4635-bc4e-dc64a6664dd8.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b0/b07b9f2f-e0c1-4ec0-ba83-102d18e3cf11.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b0/b07b9f2f-e0c1-4ec0-ba83-102d18e3cf11.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b0/b07b9f2f-e0c1-4ec0-ba83-102d18e3cf11.txt
deleted file mode 100644
index efe3c46..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b0/b07b9f2f-e0c1-4ec0-ba83-102d18e3cf11.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getStatusResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><status>RUNNING</status></ns2:getStatusResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b3/b3dd41e8-e94b-4e14-9080-1e44efa8ab66.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b3/b3dd41e8-e94b-4e14-9080-1e44efa8ab66.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b3/b3dd41e8-e94b-4e14-9080-1e44efa8ab66.txt
deleted file mode 100644
index 4e1c184..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b3/b3dd41e8-e94b-4e14-9080-1e44efa8ab66.txt
+++ /dev/null
@@ -1 +0,0 @@
-visual-png
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b5/b5a4997d-d390-4d62-820c-85018453186f.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b5/b5a4997d-d390-4d62-820c-85018453186f.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b5/b5a4997d-d390-4d62-820c-85018453186f.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b5/b5a4997d-d390-4d62-820c-85018453186f.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b8/b8685135-065a-409c-9c11-1fedbd61bb90.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b8/b8685135-065a-409c-9c11-1fedbd61bb90.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b8/b8685135-065a-409c-9c11-1fedbd61bb90.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/b8/b8685135-065a-409c-9c11-1fedbd61bb90.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/c4/c4776372-5fa1-4b05-92bc-585ccb4344af.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/c4/c4776372-5fa1-4b05-92bc-585ccb4344af.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/c4/c4776372-5fa1-4b05-92bc-585ccb4344af.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/c4/c4776372-5fa1-4b05-92bc-585ccb4344af.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/cc/cc26451d-53c7-490d-8d9f-ac7a1f45e30e.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/cc/cc26451d-53c7-490d-8d9f-ac7a1f45e30e.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/cc/cc26451d-53c7-490d-8d9f-ac7a1f45e30e.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/cc/cc26451d-53c7-490d-8d9f-ac7a1f45e30e.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d3/d34be34f-e857-46ee-8ee2-5c3384e05655.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d3/d34be34f-e857-46ee-8ee2-5c3384e05655.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d3/d34be34f-e857-46ee-8ee2-5c3384e05655.txt
deleted file mode 100644
index 0e5ea08..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d3/d34be34f-e857-46ee-8ee2-5c3384e05655.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUNNING
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d6/d69fe838-97dd-43cc-9a08-567cfb842f1a.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d6/d69fe838-97dd-43cc-9a08-567cfb842f1a.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d6/d69fe838-97dd-43cc-9a08-567cfb842f1a.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/d6/d69fe838-97dd-43cc-9a08-567cfb842f1a.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/da/dac12490-1cbc-4607-a825-40f121f69fc4.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/da/dac12490-1cbc-4607-a825-40f121f69fc4.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/da/dac12490-1cbc-4607-a825-40f121f69fc4.txt
deleted file mode 100644
index d718ffe..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/da/dac12490-1cbc-4607-a825-40f121f69fc4.txt
+++ /dev/null
@@ -1 +0,0 @@
-<ns2:getResultResponse xmlns:ns2="http://soap.jdispatcher.ebi.ac.uk"><output>U2VxdWVuY2UgIlRNTTQzX0hVTUFOIiBjcmM2NCBjaGVja3N1bTogNzBGRERENEVEMUFBMTFERiBsZW5ndGg6IDQwMCBhYS4KCkludGVyUHJvICAgICAgIElQUjAxMjQzMCAgICAgIFRyYW5zbWVtYnJhbmUgcHJvdGVpbiA0MyBmYW1pbHkKbWV0aG9kICAgICAgICAgQWNjTnVtYmVyICAgICAgc2hvcnROYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uCkhNTVBhbnRoZXIgICAgIFBUSFIxMzQxNiAgICAgIFVOQ0hBUkFDVEVSSVpFRCAgICAgICAgICAgICAgICAgICAgICAgICBUWzEtNDAwXSAyLjhlLTIwOQpITU1QZmFtICAgICAgICBQRjA3Nzg3ICAgICAgICBEVUYxNjI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFsxMjEtMzczXSA1LjJlLTgyCgpJbnRlclBybyAgICAgICBOVUxMICAgICAgICAgICBOVUxMCm1ldGhvZCAgICAgICAgIEFjY051bWJlciAgICAgIHNob3J0TmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbgpITU1QYW50aGVyICAgICBQVEhSMTM0MTY6U0YwICBTVUJGQU1JTFkgTk9UIE5BTUVEICAgICAgICAgICAgICAgICAgICAgVFsxLTQwMF0gMi44ZS0yMDkKVE1ITU0gICAgICAgICAgdG1obW0gICAgICAgICAgdHJhbnNtZW1icmFuZV9yZWdpb25zICAgICAgICAgICAgICAgICAgID9bMzMtNTFdIE5BID9bMzEzLTMzMV0gTkEg
 P1szNTAtMzcwXSBOQSA/WzM3NS0zOTVdIE5BCgo=</output></ns2:getResultResponse>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f2/f273b491-edd2-4e18-aba5-106279f491d8.txt
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f2/f273b491-edd2-4e18-aba5-106279f491d8.txt b/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f2/f273b491-edd2-4e18-aba5-106279f491d8.txt
deleted file mode 100644
index 7da8010..0000000
--- a/taverna-databundle/src/test/resources/full-example/ebi-wfrun-2013-05-31/intermediates/f2/f273b491-edd2-4e18-aba5-106279f491d8.txt
+++ /dev/null
@@ -1 +0,0 @@
-<parameters xmlns="http://soap.jdispatcher.ebi.ac.uk"><jobId xmlns="">iprscan-S20130531-112044-0159-59919420-oy</jobId></parameters>
\ No newline at end of file


[13/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java
deleted file mode 100644
index d119c89..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/RESTActivityParser.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.t23activities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.HTTPHeaders;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.RESTConfig;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class RESTActivityParser extends AbstractActivityParser {
-	private static final String ACTIVITY_XSD = "/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd";
-	private static final URI restRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/rest-activity/");
-	private static final URI ravenUIURI = ravenURI
-			.resolve("net.sf.taverna.t2.ui-activities/rest-activity/");
-	private static final String className = "net.sf.taverna.t2.activities.rest.RESTActivity";
-	public static final URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/rest");
-	public static final URI HTTP_URI = URI.create("http://www.w3.org/2011/http#");
-	public static final URI HTTP_HEADERS_URI = URI.create("http://www.w3.org/2011/http-headers#");
-	public static final URI HTTP_METHODS_URI = URI.create("http://www.w3.org/2011/http-methods#");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return ( activityUriStr.startsWith(restRavenURI.toASCIIString()) ||
-				 activityUriStr.startsWith(ravenUIURI.toASCIIString()) )
-				&& activityUriStr.endsWith(className);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL restXsd = RESTActivityParser.class.getResource(ACTIVITY_XSD);
-		try {
-			return Arrays.asList(restXsd.toURI());
-		} catch (Exception e) {
-			throw new IllegalStateException("Can't find REST schema "
-					+ restXsd);
-		}
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-		RESTConfig restConfig = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", RESTConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-		parserState.setCurrentConfiguration(configuration);
-		try {
-		    ObjectNode json = (ObjectNode)configuration.getJson();
-		    
-		    configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-		    ObjectNode request = json.objectNode();
-		    json.put("request", request);
-
-		    String method = restConfig.getHttpMethod().toUpperCase();
-		    request.put("httpMethod", method);
-		    request.put("absoluteURITemplate", restConfig.getUrlSignature());
-		    
-		    ArrayNode headers = json.arrayNode();
-		    request.put("headers", headers);
-
-			if (restConfig.getAcceptsHeaderValue() != null && ! restConfig.getAcceptsHeaderValue().isEmpty()) {
-			    ObjectNode accept = json.objectNode();
-			    headers.add(accept);
-			    accept.put("header", "Accept");
-			    accept.put("value", restConfig.getAcceptsHeaderValue());
-			}
-            if (hasContent(method)) {
-				if (restConfig.getContentTypeForUpdates() != null && ! restConfig.getContentTypeForUpdates().isEmpty()) {
-				    ObjectNode accept = json.objectNode();
-	                headers.add(accept);
-	                accept.put("header", "Content-Type");
-	                accept.put("value", restConfig.getContentTypeForUpdates());
-				}
-				if (restConfig.isSendHTTPExpectRequestHeader()) {
-                    ObjectNode accept = json.objectNode();
-                    headers.add(accept);
-                    accept.put("header", "Expect");
-                    accept.put("value", "100-Continue");
-				}
-			}
-			if (restConfig.getOtherHTTPHeaders() != null
-					&& restConfig.getOtherHTTPHeaders().getList() != null)
-				for (HTTPHeaders.List list : restConfig.getOtherHTTPHeaders()
-						.getList()) {
-					String fieldName = list.getContent().get(0).getValue();
-					String fieldValue = list.getContent().get(1).getValue();
-
-					ObjectNode accept = json.objectNode();
-					headers.add(accept);
-					accept.put("header", fieldName);
-					accept.put("value", fieldValue);
-				}
-			if (restConfig.getShowActualUrlPort() != null)
-				json.put("showActualURLPort", restConfig.getShowActualUrlPort()
-						.booleanValue());
-			if (restConfig.getShowResponseHeadersPort() != null)
-				json.put("showResponseHeadersPort", restConfig
-						.getShowResponseHeadersPort().booleanValue());
-
-			if (restConfig.isShowRedirectionOutputPort())
-				json.put("showRedirectionOutputPort", true);
-			if (restConfig.getEscapeParameters() != null
-					&& !restConfig.getEscapeParameters())
-				json.put("escapeParameters", false);
-			if (restConfig.getOutgoingDataFormat() != null)
-				json.put("outgoingDataFormat",
-						restConfig.getOutgoingDataFormat());
-			return configuration;
-		} finally {
-			parserState.setCurrentConfiguration(null);
-		}
-	}
-
-	private boolean hasContent(String methodName) {
-		if (Arrays.asList("GET", "HEAD", "DELETE", "CONNECT").contains(methodName))
-			return false;
-		// Most probably does have or could have content
-		return true;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java b/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java
deleted file mode 100644
index 7451c2a..0000000
--- a/taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/XPathActivityParser.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.apache.taverna.scufl2.translator.t2flow.t23activities;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-
-import static org.apache.taverna.scufl2.translator.t2flow.T2FlowParser.ravenURI;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.translator.t2flow.ParserState;
-import org.apache.taverna.scufl2.translator.t2flow.T2FlowParser;
-import org.apache.taverna.scufl2.translator.t2flow.defaultactivities.AbstractActivityParser;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.ConfigBean;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.XPathConfig;
-import org.apache.taverna.scufl2.xml.t2flow.jaxb.XPathNamespaceMap.Entry;
-
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class XPathActivityParser extends AbstractActivityParser {
-	private static final String ACTIVITY_XSD = "/org/apache/taverna/scufl2/translator/t2flow/xsd/xpathactivity.xsd";
-	private static URI xpathRavenURI = ravenURI
-			.resolve("net.sf.taverna.t2.activities/xpath-activity/");
-	private static URI ravenUIURI = ravenURI
-			.resolve("net.sf.taverna.t2.ui-activities/xpath-activity/");
-	private static String className = "net.sf.taverna.t2.activities.xpath.XPathActivity";
-	public static URI ACTIVITY_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/xpath");
-	public static URI NAMESPACE_MAPPING_URI = URI
-			.create("http://ns.taverna.org.uk/2010/activity/xpath/NamespaceMapping");
-
-	@Override
-	public boolean canHandlePlugin(URI activityURI) {
-		String activityUriStr = activityURI.toASCIIString();
-		return (activityUriStr.startsWith(xpathRavenURI.toASCIIString()) || activityUriStr
-				.startsWith(ravenUIURI.toASCIIString()))
-				&& activityUriStr.endsWith(className);
-	}
-
-	@Override
-	public List<URI> getAdditionalSchemas() {
-		URL xpathXsd = XPathActivityParser.class.getResource(ACTIVITY_XSD);
-		try {
-			return Arrays.asList(xpathXsd.toURI());
-		} catch (Exception e) {
-			throw new IllegalStateException("Can't find XPath schema "
-					+ xpathXsd);
-		}
-	}
-
-	@Override
-	public URI mapT2flowRavenIdToScufl2URI(URI t2flowActivity) {
-		return ACTIVITY_URI;
-	}
-
-	@Override
-	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
-			ConfigBean configBean, ParserState parserState)
-			throws ReaderException {
-
-		XPathConfig xpathConfig = unmarshallConfig(t2FlowParser, configBean,
-				"xstream", XPathConfig.class);
-
-		Configuration configuration = new Configuration();
-		configuration.setParent(parserState.getCurrentProfile());
-		parserState.setCurrentConfiguration(configuration);
-
-		try {
-		    
-		    ObjectNode json = (ObjectNode)configuration.getJson();
-		    configuration.setType(ACTIVITY_URI.resolve("#Config"));
-
-			String xmlDocument = xpathConfig.getXmlDocument();
-			if (xmlDocument != null) {
-			    json.put("exampleXmlDocument", xmlDocument);
-			}
-
-			String xpathExpression = xpathConfig.getXpathExpression();
-			json.put("xpathExpression", xpathExpression);
-
-			
-			ArrayNode namespaceMap = json.arrayNode();
-			json.put("xpathNamespaceMap", namespaceMap);
-
-			// TODO look at why the schema translation here is so wrong
-			for (Entry list : xpathConfig.getXpathNamespaceMap().getEntry()) {
-				String namespacePrefix = list.getContent().get(0).getValue();
-				String namespaceURI = list.getContent().get(1).getValue();
-
-				ObjectNode map = json.objectNode();
-				map.put("prefix", namespacePrefix);
-				map.put("uri", namespaceURI);
-				namespaceMap.add(map);
-			}
-		} finally {
-			parserState.setCurrentConfiguration(null);
-		}
-		return configuration;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader b/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
deleted file mode 100644
index 81c18e6..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.api.io.WorkflowBundleReader
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.taverna.scufl2.translator.t2flow.T2FlowReader
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser b/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser
deleted file mode 100644
index 8d048f1..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/META-INF/services/org.apache.taverna.scufl2.translator.t2flow.T2Parser
+++ /dev/null
@@ -1,24 +0,0 @@
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.DataflowActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BeanshellActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.RshellActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SpreadsheetActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.StringConstantActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomobyActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SoaplabActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLXMLSplitterParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomartActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ApiConsomerActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.InteractionActivityParser
-org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ComponentActivityParser
-
-org.apache.taverna.scufl2.translator.t2flow.t23activities.ExternalToolActivityParser
-org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser
-org.apache.taverna.scufl2.translator.t2flow.t23activities.XPathActivityParser
-
-org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ParallelizeParser
-org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ErrorBounceParser
-org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.FailoverParser
-org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser
-org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.LoopParser
-org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.InvokeParser
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml b/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml
deleted file mode 100644
index ceaa7dd..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context-osgi.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:beans="http://www.springframework.org/schema/beans"
-	xsi:schemaLocation="http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd
-		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<service ref="dataflowActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="beanshellActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="rshellActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="spreadsheetActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="stringConstantActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="biomobyActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="soaplabActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="wsdlActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="wsdlXMLSplitterParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="biomartActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="apiConsomerActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-
-	<service ref="externalToolActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="restActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="xPathActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-
-	<service ref="interactionActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="componentActivityParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	
-	<service ref="parallelizeParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="errorBounceParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="failoverParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="retryParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="loopParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-	<service ref="invokeParser" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" />
-
-	<set id="t2Parsers" interface="org.apache.taverna.scufl2.translator.t2flow.T2Parser" cardinality="0..N" />
-
-	<service ref="t2FlowReader" interface="org.apache.taverna.scufl2.api.io.WorkflowBundleReader">
-		<service-properties>
-			<beans:entry key="mediaType" value="application/vnd.taverna.t2flow+xml" />
-		</service-properties>
-	</service>
-
-</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml b/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml
deleted file mode 100644
index f57e774..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/META-INF/spring/scufl2-t2flow-context.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans
-        http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<bean id="t2FlowParser" class="org.apache.taverna.scufl2.translator.t2flow.T2FlowParser">
-		<property name="t2Parsers" ref="t2Parsers" />
-	</bean>
-
-	<bean id="t2FlowReader" class="org.apache.taverna.scufl2.translator.t2flow.T2FlowReader">
-		<property name="parser">
-			<ref local="t2FlowParser" />
-		</property>
-	</bean>
-
-	<bean id="dataflowActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.DataflowActivityParser" />
-	<bean id="beanshellActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BeanshellActivityParser" />
-	<bean id="rshellActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.RshellActivityParser" />
-	<bean id="spreadsheetActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SpreadsheetActivityParser" />
-	<bean id="stringConstantActivityParser"
-		class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.StringConstantActivityParser" />
-	<bean id="biomobyActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomobyActivityParser" />
-	<bean id="soaplabActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.SoaplabActivityParser" />
-	<bean id="wsdlActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLActivityParser" />
-	<bean id="wsdlXMLSplitterParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.WSDLXMLSplitterParser" />
-	<bean id="biomartActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.BiomartActivityParser" />
-	<bean id="apiConsomerActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ApiConsomerActivityParser" />
-
-	<bean id="externalToolActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.t23activities.ExternalToolActivityParser" />
-	<bean id="restActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.t23activities.RESTActivityParser" />
-	<bean id="xPathActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.t23activities.XPathActivityParser" />
-
-	<bean id="interactionActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.InteractionActivityParser" />
-	<bean id="componentActivityParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultactivities.ComponentActivityParser" />
-	
-	<bean id="parallelizeParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ParallelizeParser" />
-	<bean id="errorBounceParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.ErrorBounceParser" />
-	<bean id="failoverParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.FailoverParser" />
-	<bean id="retryParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.RetryParser" />
-	<bean id="loopParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.LoopParser" />
-	<bean id="invokeParser" class="org.apache.taverna.scufl2.translator.t2flow.defaultdispatchstack.InvokeParser" />
-
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd
deleted file mode 100644
index e55d6db..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/componentactivity.xsd
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-
-	xmlns:tool="http://taverna.sf.net/2011/xml/activity/xpath" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities"
-	jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.interaction.jaxb"
-				/> </jxb:schemaBindings> -->
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-		
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2activities"
-		schemaLocation="t2activities.xsd" />
-
-	<xsd:element
-		name="net.sf.taverna.t2.component.ComponentActivityConfigurationBean"
-		type="ComponentConfig" substitutionGroup="tav:abstractConfigBean" />
-
-	<xsd:complexType name="ComponentConfig">
-		<xsd:complexContent>
-			<xsd:extension base="tav:AbstractConfigBean">
-				<xsd:sequence>
-					<xsd:element name="registryBase" type="xsd:anyURI" />
-					<xsd:element name="familyName" type="xsd:string" />
-					<xsd:element name="componentName" type="xsd:string" />
-					<xsd:element name="componentVersion" type="xsd:int" minOccurs="0"/>
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd
deleted file mode 100644
index 55a3a86..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/externaltoolactivity.xsd
+++ /dev/null
@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-
-	xmlns:tool="http://taverna.sf.net/2011/xml/activity/external-tool"
-	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-			<jxb:schemaBindings>
-				<jxb:package name="uk.org.taverna.scufl2.xml.t2flow.externalTool.jaxb" />
-			</jxb:schemaBindings>
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-
-	<xsd:element
-		name="net.sf.taverna.t2.activities.externaltool.ExternalToolActivityConfigurationBean"
-		type="ExternalToolConfig" substitutionGroup="tav:abstractConfigBean" />
-
-	<xsd:element
-		name="net.sf.taverna.t2.activities.usecase.UseCaseActivityConfigurationBean"
-		type="UsecaseConfig" substitutionGroup="tav:abstractConfigBean" />
-
-
-
-	<xsd:complexType name="UsecaseConfig">
-		<xsd:complexContent>
-			<xsd:extension base="tav:AbstractConfigBean">
-				<xsd:sequence>
-					<xsd:element name="repositoryUrl" type="xsd:anyURI" />
-					<xsd:element name="usecaseid" type="xsd:string" />
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="ExternalToolConfig">
-		<xsd:complexContent>
-			<xsd:extension base="tav:AbstractConfigBean">
-				<xsd:sequence>
-
-					<xsd:choice>
-						<xsd:sequence>
-							<xsd:element name="mechanismType" type="xsd:string" />
-							<xsd:element name="mechanismName" type="xsd:string" />
-							<xsd:element name="mechanismXML" type="xsd:string" />						
-						</xsd:sequence>
-						<xsd:element name="group" type="Group" />					
-					</xsd:choice>
-					<xsd:element name="repositoryUrl" type="xsd:anyURI" minOccurs="0" />
-					<xsd:element name="externaltoolid" type="xsd:string"  />
-
-					<xsd:element name="useCaseDescription" type="UsecaseDescription" />
-					<xsd:element name="edited" type="xsd:boolean" />
-
-				</xsd:sequence>
-			</xsd:extension>
-
-		</xsd:complexContent>
-
-	</xsd:complexType>
-
-	<xsd:complexType name="UsecaseDescription">
-		<xsd:sequence>
-			<xsd:element name="usecaseid" type="xsd:string" />
-			<xsd:element name="group" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="description" type="xsd:string" />
-			<xsd:element name="command" type="xsd:string" />
-			<xsd:element name="test__local" type="xsd:string"
-				minOccurs="0" />
-			<xsd:element name="preparingTimeoutInSeconds" type="xsd:int" />
-			<xsd:element name="executionTimeoutInSeconds" type="xsd:int" />
-			<xsd:element name="tags" />
-			<xsd:element name="REs" />
-			<xsd:element name="queue__preferred" />
-			<xsd:element name="queue__deny" />
-			<xsd:element name="static__inputs" type="StaticInputs" />
-			<xsd:element name="inputs" type="EntryMap" />
-			<xsd:element name="outputs" type="EntryMap" />
-
-			<xsd:element name="includeStdIn" type="xsd:boolean" />
-			<xsd:element name="includeStdOut" type="xsd:boolean" />
-			<xsd:element name="includeStdErr" type="xsd:boolean" />
-			<xsd:element name="validReturnCodes" type="ReturnCodes" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="EntryMap">
-		<xsd:sequence>
-			<xsd:element name="entry" minOccurs="0" maxOccurs="unbounded"
-				type="Entry" />
-		</xsd:sequence>
-	</xsd:complexType>
-	
-	<xsd:complexType name="ReturnCodes">
-		<xsd:sequence>
-			<xsd:element name="int" minOccurs="0" maxOccurs="unbounded"
-				type="xsd:int" />
-		</xsd:sequence>
-	</xsd:complexType>
-	
-	<xsd:complexType name="StaticInputs">
-		<xsd:sequence>
-			<xsd:element name="de.uni__luebeck.inb.knowarc.usecases.ScriptInputStatic"
-					type="ScriptInputStatic" minOccurs="0" maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-	
-	<xsd:complexType name="Group">
-		<xsd:sequence>
-			<xsd:element name="invocationGroupName" type="xsd:string" />			
-			<xsd:element name="mechanismType" type="xsd:string" />
-			<xsd:element name="mechanismName" type="xsd:string" />
-			<xsd:element name="mechanismXML" type="xsd:string" />
-		</xsd:sequence>
-	</xsd:complexType>
-	
-
-	<xsd:complexType name="Entry">
-		<xsd:sequence>
-			<xsd:element name="string" type="xsd:string" />
-			<xsd:choice>
-				<xsd:element name="de.uni__luebeck.inb.knowarc.usecases.ScriptInputUser"
-					type="ScriptInputUser" />
-				<xsd:element name="de.uni__luebeck.inb.knowarc.usecases.ScriptOutput"
-					type="ScriptOutput" />
-			</xsd:choice>
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="ScriptInputUser">
-		<xsd:sequence>
-			<xsd:element name="tag" type="xsd:string" />
-			<xsd:element name="file" type="xsd:boolean" />
-			<xsd:element name="tempFile" type="xsd:boolean" />
-			<xsd:element name="binary" type="xsd:boolean" />
-			<xsd:element name="charsetName" type="xsd:string" />
-			<xsd:element name="forceCopy" type="xsd:boolean" />
-			<xsd:element name="list" type="xsd:boolean" />
-			<xsd:element name="concatenate" type="xsd:boolean" />
-			<xsd:element name="mime" />
-		</xsd:sequence>
-	</xsd:complexType>
-	
-	
-	<xsd:complexType name="ScriptInputStatic">
-		<xsd:sequence>
-			<xsd:element name="tag" type="xsd:string" />
-			<xsd:element name="file" type="xsd:boolean" />
-			<xsd:element name="tempFile" type="xsd:boolean" />
-			<xsd:element name="binary" type="xsd:boolean" />
-			<xsd:element name="charsetName" type="xsd:string" />
-			<xsd:element name="forceCopy" type="xsd:boolean" />
-			<xsd:choice>
-				<xsd:element name="content" >
-					<xsd:complexType>
-						<xsd:simpleContent><xsd:extension base="xsd:string">
-							<xsd:attribute name="class" fixed="string" use="optional"/>
-						</xsd:extension>						
-						</xsd:simpleContent>						
-					</xsd:complexType>					
-				</xsd:element>
-				<xsd:element name="url" type="xsd:anyURI" />			
-			</xsd:choice>
-
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="ScriptOutput">
-		<xsd:sequence>
-			<xsd:element name="path" type="xsd:string" />
-			<xsd:element name="binary" type="xsd:boolean" />
-			<xsd:element name="mime" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd
deleted file mode 100644
index e1a6b16..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/interactionactivity.xsd
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-
-	xmlns:tool="http://taverna.sf.net/2011/xml/activity/xpath" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities"
-	jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.interaction.jaxb"
-				/> </jxb:schemaBindings> -->
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-		
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2activities"
-		schemaLocation="t2activities.xsd" />
-
-	<xsd:element
-		name="net.sf.taverna.t2.activities.interaction.InteractionActivityConfigurationBean"
-		type="InteractionConfig" substitutionGroup="tav:abstractConfigBean" />
-
-	<xsd:complexType name="InteractionConfig">
-		<xsd:complexContent>
-			<xsd:extension base="tav:AbstractConfigBean">
-				<xsd:sequence>
-					<xsd:element name="inputs" type="activities:ActivityInputPorts" />
-					<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
-				
-					<xsd:element name="presentationOrigin" type="xsd:string" minOccurs="0" />
-					<xsd:element name="interactionActivityType" type="xsd:string" minOccurs="0" />
-					<xsd:element name="progressNotification" type="xsd:boolean" minOccurs="0" />
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd
deleted file mode 100644
index 7eb4e42..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/restactivity.xsd
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-
-	xmlns:tool="http://taverna.sf.net/2011/xml/activity/rest" xmlns:tav="http://taverna.sf.net/2008/xml/t2flow"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-<!--
-			<jxb:schemaBindings>
-				<jxb:package name="uk.org.taverna.scufl2.xml.t2flow.rest.jaxb" />
-			</jxb:schemaBindings>
-			-->
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-
-	<xsd:element
-		name="net.sf.taverna.t2.activities.rest.RESTActivityConfigurationBean"
-		type="RESTConfig" substitutionGroup="tav:abstractConfigBean" />
-
-
-	<xsd:complexType name="RESTConfig">
-		<xsd:complexContent>
-			<xsd:extension base="tav:AbstractConfigBean">
-				<xsd:sequence>
-					<xsd:element name="httpMethod" type="xsd:string" />
-					<xsd:element name="urlSignature" type="xsd:string" />
-					<xsd:element name="acceptsHeaderValue" type="xsd:string" />
-					<xsd:element name="contentTypeForUpdates" type="xsd:string" />
-					<xsd:element name="outgoingDataFormat" type="xsd:string" />
-					<xsd:element name="sendHTTPExpectRequestHeader" type="xsd:boolean" />
-					<xsd:element name="showRedirectionOutputPort" type="xsd:boolean" />
-                    <xsd:element name="showActualUrlPort" type="xsd:boolean" minOccurs="0" />
-                    <xsd:element name="showResponseHeadersPort" type="xsd:boolean" minOccurs="0" />
-                    
-					<xsd:element name="escapeParameters" type="xsd:boolean" minOccurs="0" />
-					<xsd:element name="otherHTTPHeaders" type="HTTPHeaders" minOccurs="0" />
-					<xsd:element name="activityInputs" type="ActivityInputs" />
-				</xsd:sequence>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<xsd:complexType name="ActivityInputs">
-		<xsd:sequence>
-			<xsd:element name="entry" minOccurs="0" maxOccurs="unbounded">
-				<xsd:complexType>
-					<xsd:sequence>
-						<xsd:element name="string" type="xsd:string" />
-						<xsd:element name="java-class" type="xsd:string" />
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	
-	
-	<xsd:complexType name="HTTPHeaders">
-		<xsd:sequence>
-			<xsd:element name="list" minOccurs="0" maxOccurs="unbounded">
-				<xsd:complexType>
-					<xsd:sequence>
-						<xsd:element name="string" type="xsd:string" />
-						<xsd:element name="string" type="xsd:string" />
-					</xsd:sequence>
-				</xsd:complexType>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd
deleted file mode 100644
index ffd10c5..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2activities.xsd
+++ /dev/null
@@ -1,530 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-	targetNamespace="http://taverna.sf.net/2008/xml/t2activities"
-	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities"
-	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
-	jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-			<jxb:schemaBindings>
-				<jxb:package name="uk.org.taverna.scufl2.xml.t2flow.jaxb" />
-			</jxb:schemaBindings>
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-
-	<xsd:complexType name="DataflowConfig">
-		<xsd:annotation>
-			<xsd:documentation>Configuration for the nested dataflow activity.
-				The actual nested dataflow is referenced by uuid to identify the
-				dataflow element of the workflow container.</xsd:documentation>
-		</xsd:annotation>
-		<xsd:attribute name="ref" type="tav:uuid"></xsd:attribute>
-	</xsd:complexType>
-	<xsd:complexType name="ApiConsumerConfig">
-		<xsd:sequence>
-
-			<xsd:element name="apiConsumerName" type="xsd:string" />
-			<xsd:element name="apiConsumerDescription" type="xsd:string" />
-			<xsd:element name="description" type="xsd:string" />
-			<xsd:element name="className" type="xsd:string" />
-			<xsd:element name="methodName" type="xsd:string" />
-			<xsd:element name="parameterNames" type="activities:ApiConsumerParameterNames" />
-
-			<xsd:element name="parameterDimensions"
-				type="activities:ApiConsumerParameterDimensions" />
-			<xsd:element name="parameterTypes" type="activities:ApiConsumerParameterTypes" />
-			<xsd:element name="returnType" type="xsd:string" />
-			<xsd:element name="returnDimension" type="xsd:nonNegativeInteger" />
-			<xsd:element name="isMethodStatic" type="xsd:boolean" />
-			<xsd:element name="isMethodConstructor" type="xsd:boolean" />
-
-			<xsd:element name="classLoaderSharing" type="activities:ClassLoaderSharing" />
-			<xsd:element name="localDependencies" type="activities:LocalDependencies" />
-			<xsd:element name="artifactDependencies" type="activities:ArtifactDependencies" />
-			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
-			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
-
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="ApiConsumerParameterNames">
-		<xsd:sequence>
-			<xsd:element name="string" type="xsd:string" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ApiConsumerParameterDimensions">
-		<xsd:sequence>
-			<xsd:element name="int" type="xsd:nonNegativeInteger"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ApiConsumerParameterTypes">
-		<xsd:sequence>
-			<xsd:element name="string" type="xsd:string" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="BeanshellConfig">
-		<xsd:annotation>
-			<xsd:documentation>Configuration for the Beanshell activity.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:all>
-			<xsd:element name="script" type="xsd:string">
-				<xsd:annotation>
-					<xsd:documentation>A Beanshell script</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="dependencies" type="activities:Dependencies" />
-			<xsd:element name="classLoaderSharing" type="activities:ClassLoaderSharing" />
-			<xsd:element name="localDependencies" type="activities:LocalDependencies" />
-			<xsd:element name="artifactDependencies" type="activities:ArtifactDependencies" />
-			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
-			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
-			<xsd:element name="localworkerName" type="xsd:string"
-						minOccurs="0" />
-		</xsd:all>
-	</xsd:complexType>
-	<xsd:complexType name="StringConstantConfig">
-		<xsd:sequence>
-			<xsd:sequence>
-				<xsd:element name="value" type="xsd:string"></xsd:element>
-			</xsd:sequence>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="RShellConfig">
-		<xsd:all>
-			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
-			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
-			<xsd:element name="rVersion" type="xsd:string" minOccurs="0" />
-			<xsd:element name="script" type="xsd:string" />
-			<xsd:element name="connectionSettings" type="activities:RShellConnection" />
-			<xsd:element name="inputSymanticTypes" type="activities:RShellSymanticType" />
-			<xsd:element name="outputSymanticTypes" type="activities:RShellSymanticType" />
-		</xsd:all>
-	</xsd:complexType>
-	<xsd:complexType name="RShellConnection">
-		<xsd:sequence>
-			<xsd:element name="host" type="xsd:string" />
-			<xsd:element name="port" type="xsd:unsignedShort" />
-			<xsd:element name="username" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="password" type="xsd:string" minOccurs="0"/>
-			<xsd:element name="keepSessionAlive" type="xsd:boolean" />
-			<xsd:element name="newRVersion" type="xsd:boolean" default="false" minOccurs="0"/>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="RShellSymanticType">
-	<xsd:sequence>
-		<xsd:element
-			name="net.sf.taverna.t2.activities.rshell.RShellPortSymanticTypeBean" minOccurs="0" maxOccurs="unbounded">
-
-			<xsd:complexType>
-			<xsd:annotation>
-				<xsd:appinfo>
-					<jxb:class name="RShellPortSymanticTypeBean" />
-				</xsd:appinfo>
-			</xsd:annotation>
-				<xsd:sequence>
-
-					<xsd:element name="name" type="xsd:string" />
-					<xsd:element name="symanticType">
-						<xsd:complexType>
-							<xsd:simpleContent>
-								<xsd:extension base="xsd:string">
-									<xsd:attribute name="reference" type="xsd:string"
-										use="optional" />
-								</xsd:extension>
-							</xsd:simpleContent>
-						</xsd:complexType>
-					</xsd:element>
-				</xsd:sequence>
-			</xsd:complexType>
-		</xsd:element>
-	</xsd:sequence>
-</xsd:complexType>
-
-
-	<xsd:complexType name="WSDLConfig">
-		<xsd:annotation>
-			<xsd:documentation>Configuration for the WSDL activity.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="wsdl" type="xsd:anyURI">
-				<xsd:annotation>
-					<xsd:documentation>Location of WSDL specification as an URL.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="operation" type="xsd:string">
-				<xsd:annotation>
-					<xsd:documentation>Name of operation within the WSDL specification.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="securityProfile" type="activities:WSDLSecurityProfile"
-				minOccurs="0">
-				<xsd:annotation>
-					<xsd:documentation>Name of 'security profile' to apply.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:simpleType name="WSDLSecurityProfile">
-		<xsd:union memberTypes="activities:StandardWSDLSecurityProfile xsd:string" />
-	</xsd:simpleType>
-
-	<xsd:simpleType name="StandardWSDLSecurityProfile">
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="HTTPDigestAuthN" />
-			<xsd:enumeration value="HTTPBasicAuthNPlainTextPassword" />
-			<xsd:enumeration value="WSSecurityTimestampUsernameTokenDigestPassword" />
-			<xsd:enumeration value="WSSecurityTimestampUsernameTokenPlainTextPassword" />
-			<xsd:enumeration value="WSSecurityUsernameTokenDigestPassword" />
-			<xsd:enumeration value="WSSecurityUsernameTokenPlainTextPassword" />
-		</xsd:restriction>
-	</xsd:simpleType>
-
-	<xsd:complexType name="XMLSplitterConfig">
-		<xsd:all>
-			<xsd:element name="wrappedTypeXML" type="xsd:string" />
-			<xsd:element name="inputs" type="activities:ActivityInputPorts" />
-			<xsd:element name="outputs" type="activities:ActivityOutputPorts" />
-		</xsd:all>
-	</xsd:complexType>
-	<xsd:complexType name="BioMartConfig">
-		<xsd:sequence>
-			<xsd:element name="MartService">
-				<xsd:complexType>
-					<xsd:attribute name="location" type="xsd:anyURI"></xsd:attribute>
-				</xsd:complexType>
-			</xsd:element>
-			<xsd:element name="MartDataset" />
-			<xsd:element name="Query" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="BioMobyConfig">
-		<xsd:complexContent>
-			<xsd:extension base="activities:BioMobyObjectConfig">
-				<xsd:sequence>
-					<xsd:element name="category" type="activities:BioMobyCategory">
-					</xsd:element>
-					<xsd:element name="serviceType" type="activities:BioMobyServiceType">
-					</xsd:element>
-					<xsd:element name="secondaries" type="activities:BioMobySecondaries">
-					</xsd:element>
-				</xsd:sequence>
-
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<xsd:complexType name="BioMobyObjectConfig">
-		<xsd:sequence>
-			<xsd:element name="mobyEndpoint" type="xsd:anyURI" />
-			<xsd:element name="serviceName" />
-			<xsd:element name="authorityName" />
-
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="BioMobyParserConfig">
-		<xsd:sequence>
-			<xsd:element name="datatypeName" />
-			<xsd:element name="registryEndpoint" type="xsd:anyURI" />
-			<xsd:element name="articleNameUsedByService" />
-
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="SoaplabConfig">
-		<xsd:annotation>
-			<xsd:documentation>Configuration for the SoapLab activity.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:sequence>
-			<xsd:element name="endpoint" type="xsd:anyURI">
-				<xsd:annotation>
-					<xsd:documentation>Location of Soaplab endpoint as an URL.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="pollingInterval" type="xsd:nonNegativeInteger">
-				<xsd:annotation>
-					<xsd:documentation>Milliseconds between polling for asynchronous
-						service completion. If 0, the synchronous 'waitFor' method is
-						used
-						instead.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="pollingBackoff" type="xsd:double">
-				<xsd:annotation>
-					<xsd:documentation>
-						Multiplication factor to apply to current
-						polling interval (initially "pollingInterval"), gradually
-						increasing the polling interval. It is advisable
-						to keep this close
-						to 1.0, for instance 1.1.
-						The polling interval will however never
-						be larger than the specified
-						"pollingIntervalMax". Must be
-						above 0.0
-						to avoid negative polling
-						intervals.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-			<xsd:element name="pollingIntervalMax" type="xsd:nonNegativeInteger">
-				<xsd:annotation>
-					<xsd:documentation>Maximum polling interval in milliseconds after
-						multiplying with "pollingBackoff". Should be larger than
-						"pollingInterval".
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:element>
-
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="SpreadsheetImportConfig">
-		<xsd:sequence>
-			<xsd:element name="columnRange" type="activities:SpreadsheetRange" />
-			<xsd:element name="rowRange" type="activities:SpreadsheetRange" />
-			<xsd:element name="emptyCellValue" type="xsd:string" />
-			<xsd:element name="columnNames" type="activities:SpreadsheetColumnNames" />
-			<xsd:element name="allRows" type="xsd:boolean" />
-			<xsd:element name="excludeFirstRow" type="xsd:boolean" />
-			<xsd:element name="ignoreBlankRows" type="xsd:boolean" />
-
-			<xsd:element name="emptyCellPolicy" type="activities:SpreadsheetEmptyCellPolicy" />
-			<xsd:element name="outputFormat" type="activities:OutputFormat" />
-			<xsd:element name="csvDelimiter" type="xsd:string" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-	<xsd:simpleType name="SpreadsheetEmptyCellPolicy">
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="EMPTY_STRING"></xsd:enumeration>
-			<xsd:enumeration value="USER_DEFINED"></xsd:enumeration>
-			<xsd:enumeration value="GENERATE_ERROR"></xsd:enumeration>
-		</xsd:restriction>
-	</xsd:simpleType>
-
-	<xsd:simpleType name="OutputFormat">
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="PORT_PER_COLUMN"></xsd:enumeration>
-			<xsd:enumeration value="SINGLE_PORT"></xsd:enumeration>
-		</xsd:restriction>
-	</xsd:simpleType>
-
-
-	<xsd:complexType name="SpreadsheetColumnNames">
-		<xsd:sequence>
-			<xsd:element name="entry" type="activities:SpreadsheetColumnNameEntry"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="SpreadsheetColumnNameEntry">
-		<xsd:sequence>
-			<xsd:element name="string" type="xsd:string" minOccurs="2"
-				maxOccurs="2" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-
-	<xsd:complexType name="SpreadsheetRange">
-		<xsd:sequence>
-			<xsd:element name="start" type="xsd:nonNegativeInteger" />
-			<xsd:element name="end" type="xsd:nonNegativeInteger" />
-			<xsd:element name="excludes" type="activities:SpreadsheetExcludes" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="SpreadsheetExcludes">
-		<xsd:sequence>
-			<xsd:element name="exclude" type="activities:SpreadsheetRange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="LocalDependencies">
-
-		<xsd:sequence>
-			<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"
-				minOccurs="0">
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="ArtifactDependencies">
-		<xsd:sequence>
-			<xsd:element name="net.sf.taverna.raven.repository.BasicArtifact"
-				type="activities:BasicArtifact" maxOccurs="unbounded" minOccurs="0">
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="Dependencies">
-		<xsd:sequence>
-			<xsd:choice>
-				<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"
-					minOccurs="0">
-				</xsd:element>
-				<xsd:element name="element" type="activities:DependencyElement"
-					maxOccurs="unbounded" minOccurs="0">
-				</xsd:element>
-			</xsd:choice>
-		</xsd:sequence>
-		<xsd:attribute name="class" type="xsd:string" use="optional"></xsd:attribute>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="DependencyElement">
-		<xsd:simpleContent>
-			<xsd:extension base="xsd:string">
-				<xsd:attribute name="class" use="optional" />
-			</xsd:extension>
-		</xsd:simpleContent>
-	</xsd:complexType>
-
-	<xsd:simpleType name="ClassLoaderSharing">
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="workflow" />
-			<xsd:enumeration value="system" />
-		</xsd:restriction>
-	</xsd:simpleType>
-
-	<xsd:complexType name="BasicArtifact">
-		<xsd:sequence>
-			<xsd:element name="groupId" type="xsd:string" />
-			<xsd:element name="artifactId" type="xsd:string" />
-			<xsd:element name="version" type="xsd:string" />
-			<xsd:element name="hashCode" type="xsd:string" minOccurs="0" />
-			<xsd:element name="string" type="xsd:string" minOccurs="0" />
-		</xsd:sequence>
-	</xsd:complexType>
-
-	<xsd:complexType name="ActivityInputPorts">
-		<xsd:sequence>
-			<xsd:element
-				name="net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean"
-				minOccurs="0" maxOccurs="unbounded" type="activities:ActivityPortDefinitionBean">
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="ActivityPortDefinitionBean">
-	<xsd:choice minOccurs="1" maxOccurs="unbounded" id="activityPortChoice">
-		<xsd:annotation>
-			<xsd:documentation>
-	These seem to come in any order depending on Activity type and Taverna
-	version (probably some internal hash maps involved) - and instead of
-	trying to model this using xsd:any, xsd:groups and xsd:choice, I just
-	went for an unbounded xsd:choice. Users will have to deal with the following
-	additional constaints:
-
-	These elements are required, maximum 1 occurance: name, depth
-
-	These can occur 0..unbounded times:
-	handledReferenceSchemes, translatedElementType
-
-	The rest are optional, but must maximally appear once.
-
-			</xsd:documentation>
-		</xsd:annotation>
-
-		<xsd:element name="handledReferenceSchemes" type="xsd:string"/>
-		<xsd:element name="translatedElementType" type="xsd:string" />
-		<xsd:element name="name" type="xsd:string" />
-		<xsd:element name="depth" type="xsd:nonNegativeInteger" />
-		<xsd:element name="allowsLiteralValues" type="xsd:boolean" />
-		<xsd:element name="mimeTypes">
-			<xsd:complexType>
-				<xsd:choice>
-					<xsd:element name="string" type="xsd:string" minOccurs="0"
-						maxOccurs="unbounded" />
-					<xsd:element name="element" type="activities:DependencyElement" />
-				</xsd:choice>
-				<xsd:attribute name="class" type="xsd:string" use="optional" />
-			</xsd:complexType>
-		</xsd:element>
-		<xsd:element name="granularDepth" type="xsd:nonNegativeInteger" />
-
-	</xsd:choice>
-</xsd:complexType>
-
-	<xsd:complexType name="ActivityOutputPorts">
-		<xsd:sequence>
-			<xsd:element
-				name="net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean"
-				minOccurs="0" maxOccurs="unbounded" type="activities:ActivityPortDefinitionBean">
-			</xsd:element>
-		</xsd:sequence>
-
-	</xsd:complexType>
-	<xsd:complexType name="BioMobyCategory">
-		<xsd:sequence>
-			<xsd:any namespace="##any" processContents="lax" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="BioMobyServiceType">
-		<xsd:sequence>
-			<xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##any"
-				processContents="lax">
-			</xsd:any>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="BioMobySecondaries">
-		<xsd:sequence>
-			<xsd:element minOccurs="0" maxOccurs="unbounded" name="entry"
-				type="activities:BioMobyEntry">
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-	<xsd:complexType name="BioMobyEntry">
-		<xsd:sequence>
-			<xsd:element minOccurs="2" maxOccurs="2" name="string"
-				type="xsd:anyType">
-			</xsd:element>
-		</xsd:sequence>
-	</xsd:complexType>
-</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd
deleted file mode 100644
index f56f228..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2annotations.xsd
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema elementFormDefault="unqualified"
-	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:annotations="http://taverna.sf.net/2008/xml/t2flow/annotations"
-	jxb:version="1.0">
-
-	<xsd:annotation>
-		<xsd:appinfo>
-			<!-- See http://docs.rakeshv.org/java/jaxb/users-guide/jaxb-custom.html -->
-
-			<!-- <jxb:schemaBindings> <jxb:package name="uk.org.taverna.scufl2.xml.t2flow.annotations.jaxb" 
-				/> </jxb:schemaBindings> -->
-		</xsd:appinfo>
-	</xsd:annotation>
-
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2flow"
-		schemaLocation="t2flow.xsd" />
-
-<!-- Note: JAXB Does not seem to pick up these due to xsd:any in tav:AnnotationBean
-
- -->
-	<xsd:complexType name="IdentificationAssertion">
-		<xsd:complexContent>
-			<xsd:restriction base="tav:AnnotationBean">
-				<xsd:sequence>
-					<xsd:element name="identification" type="tav:uuid" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion" />
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-	
-	<xsd:complexType name="AbstractTextual" abstract="true">
-		<xsd:complexContent>
-			<xsd:restriction base="tav:AnnotationBean">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="Author">
-		<xsd:complexContent>
-			<xsd:restriction base="AbstractTextual">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.Author" />
-
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-	
-	<xsd:complexType name="DescriptiveTitle">
-		<xsd:complexContent>
-			<xsd:restriction base="AbstractTextual">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle" />
-
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<xsd:complexType name="ExampleValue">
-		<xsd:complexContent>
-			<xsd:restriction base="AbstractTextual">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.ExampleValue" />
-
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-	<xsd:complexType name="FreeTextDescription">
-		<xsd:complexContent>
-			<xsd:restriction base="AbstractTextual">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription" />
-
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<xsd:complexType name="HostInstitution">
-		<xsd:complexContent>
-			<xsd:restriction base="AbstractTextual">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution" />
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<xsd:complexType name="MimeType">
-		<xsd:complexContent>
-			<xsd:restriction base="AbstractTextual">
-				<xsd:sequence>
-					<xsd:element name="text" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.MimeType" />
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-	
-	<xsd:complexType name="Optional">
-		<xsd:complexContent>
-			<xsd:restriction base="tav:AnnotationBean">
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.Optional" />
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-
-	<xsd:complexType name="SemanticAnnotation">
-		<xsd:complexContent>
-			<xsd:restriction base="tav:AnnotationBean">
-				<xsd:sequence>
-					<xsd:element name="mimeType" type="xsd:string" default="text/rdf+n3" />
-					<xsd:element name="content" type="xsd:string" />
-				</xsd:sequence>
-				<xsd:attribute name="class" form="unqualified"
-					fixed="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation" />
-			</xsd:restriction>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-
-</xsd:schema>
-		
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd
----------------------------------------------------------------------
diff --git a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd b/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd
deleted file mode 100644
index a11c84e..0000000
--- a/taverna-scufl2-t2flow/src/main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<xsd:schema targetNamespace="http://taverna.sf.net/2008/xml/t2flow"
-	xmlns:tav="http://taverna.sf.net/2008/xml/t2flow" elementFormDefault="qualified"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:layers="http://taverna.sf.net/2008/xml/t2layers"
-	xmlns:activities="http://taverna.sf.net/2008/xml/t2activities">
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2layers"
-		schemaLocation="t2layers.xsd" />
-	<xsd:import schemaLocation="t2annotations.xsd" />
-	<xsd:import namespace="http://taverna.sf.net/2008/xml/t2activities"
-		schemaLocation="t2activities.xsd" />
-	<xsd:import schemaLocation="externaltoolactivity.xsd" />
-	<xsd:import schemaLocation="restactivity.xsd" />
-	<xsd:import schemaLocation="xpathactivity.xsd" />
-
-	<xsd:annotation>
-		<xsd:documentation>
-			Restricting schema of t2flow.xsd that describes the
-			configuration beans for the
-			dispatch stack layers and activities,
-			given the shipped Taverna 2.0/2.1
-			with no additional plugins
-			installed.
		</xsd:documentation>
-	</xsd:annotation>
-	<xsd:redefine schemaLocation="t2flow.xsd">
-		<xsd:complexType name="ConfigBean">
-			<xsd:complexContent>
-				<xsd:restriction base="tav:ConfigBean">
-					<xsd:choice>
-						<xsd:element form="unqualified" name="null">
-							<xsd:annotation>
-								<xsd:documentation>
-									null - meaning no configuration
-								</xsd:documentation>
-							</xsd:annotation>
-						</xsd:element>
-
-
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig"
-							type="layers:RetryConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig"
-							type="layers:ParallelizeConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.LoopConfiguration"
-							type="layers:LoopConfig">
-						</xsd:element>
-
-
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.apiconsumer.ApiConsumerActivityConfigurationBean"
-							type="activities:ApiConsumerConfig">
-						</xsd:element>
-
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean"
-							type="activities:BeanshellConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean"
-							type="activities:BeanshellConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean"
-							type="activities:StringConstantConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean"
-							type="activities:RShellConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.wsdl.WSDLActivityConfigurationBean"
-							type="activities:WSDLConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLSplitterConfigurationBean"
-							type="activities:XMLSplitterConfig">
-						</xsd:element>
-						<xsd:element form="unqualified" name="MartQuery"
-							type="activities:BioMartConfig">
-						</xsd:element>
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.biomoby.BiomobyActivityConfigurationBean"
-							type="activities:BioMobyConfig" />
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.biomoby.BiomobyObjectActivityConfigurationBean"
-							type="activities:BioMobyObjectConfig" />
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.biomoby.MobyParseDatatypeActivityConfigurationBean"
-							type="activities:BioMobyParserConfig" />
-
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.spreadsheet.SpreadsheetImportConfiguration"
-							type="activities:SpreadsheetImportConfig" />
-
-						<xsd:element form="unqualified"
-							name="net.sf.taverna.t2.activities.soaplab.SoaplabActivityConfigurationBean"
-							type="activities:SoaplabConfig" />
-
-
-						<xsd:element name="dataflow" type="activities:DataflowConfig" />
-
-						<xsd:element ref="tav:abstractConfigBean" />
-
-					</xsd:choice>
-					<xsd:attribute name="encoding" use="required" type="tav:Encoding" />
-				</xsd:restriction>
-			</xsd:complexContent>
-		</xsd:complexType>
-						
-	</xsd:redefine>
-
-
-	<xsd:simpleType name="Encoding">
-		<xsd:restriction base="xsd:string">
-			<xsd:enumeration value="xstream"></xsd:enumeration>
-			<xsd:enumeration value="dataflow"></xsd:enumeration>
-			<xsd:enumeration value="jdomxml"></xsd:enumeration>
-		</xsd:restriction>
-	</xsd:simpleType>
-
-
-
-</xsd:schema>
\ No newline at end of file


[27/51] [partial] incubator-taverna-language git commit: temporarily empty repository

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/WorkflowMaker.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/WorkflowMaker.java b/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/WorkflowMaker.java
deleted file mode 100644
index bdf9ac4..0000000
--- a/taverna-scufl2-examples/src/main/java/org/apache/taverna/examples/WorkflowMaker.java
+++ /dev/null
@@ -1,412 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-
-import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.configurations.Configuration;
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Processor;
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WriterException;
-import org.apache.taverna.scufl2.api.iterationstrategy.DotProduct;
-import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
-import org.apache.taverna.scufl2.api.port.InputActivityPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputActivityPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
-import org.apache.taverna.scufl2.api.profiles.Profile;
-
-public class WorkflowMaker {
-	private static Scufl2Tools scufl2Tools = new Scufl2Tools();
-	private static WorkflowBundleIO bundleIO = new WorkflowBundleIO();
-
-	public static void main(String[] args) throws Exception {
-		new WorkflowMaker().makeWorkflowBundle();
-	}
-
-	protected WorkflowBundle bundle;
-	protected Workflow workflow;
-	protected Processor p;
-	protected InputProcessorPort pIn;
-	protected OutputProcessorPort pOut;
-	protected Profile profile;
-	protected Activity myBeanshell;
-	protected File file;
-
-	
-	public void makeWorkflowBundle() throws IOException, WriterException,
-			ReaderException {
-
-		/** Top-level object is a Workflow Bundle */
-		bundle = new WorkflowBundle();
-
-		/** Generate the workflow structure **/
-		makeWorkflow();
-		
-		/** Specify the implementations **/
-		makeProfile();
-
-		/**
-		 * Before storing the workflow bundle, we'll make sure that everything
-		 * we made has a parent included (so that for instance a configuration
-		 * is stored together with its parent profile). The
-		 * scufl2Tools.setParents method will traverse the WorkflowBundle from
-		 * the top and fill in any blank parents.
-		 */
-		scufl2Tools.setParents(bundle);
-
-		/** Write bundle to StdOut and a new file */
-		writeBundleToFile();
-
-	}
-
-
-	private void makeWorkflow() {
-		workflow = new Workflow();
-		/** Workflow names must be unique within the WorkflowBundle */
-		workflow.setName("Echotest");
-	
-		bundle.setMainWorkflow(workflow);
-		/**
-		 * Additional (typically nested) workflows can be added:
-		 * 
-		 * <pre>
-		 * bundle.getWorkflows().add(workflow2)
-		 * </pre>
-		 * 
-		 * but the above is implied by setMainWorkflow()
-		 */
-	
-		/** Creating and adding a workflow port */
-		InputWorkflowPort in1 = new InputWorkflowPort();
-		in1.setName("in1");
-		in1.setDepth(0);
-		/** where does this input port belong? */
-		in1.setParent(workflow);
-		/**
-		 * implies:
-		 * 
-		 * <pre>
-		 * workflow.getInputPorts().add(in1);
-		 * </pre>
-		 */
-	
-		/**
-		 * If input should be a list instead of single value:
-		 * 
-		 * <pre>
-		 * in1.setDepth(1);
-		 * </pre>
-		 */
-	
-		/** Output, this time using the shorthand constructors */
-		OutputWorkflowPort out1 = new OutputWorkflowPort(workflow, "out1");
-	
-		/**
-		 * A processor is a unit which performs some work in a workflow. The
-		 * name must be unique within the parent workflow.
-		 * 
-		 */
-		p = new Processor(workflow, "p");
-	
-		/**
-		 * Same as:
-		 * 
-		 * <pre>
-		 * Processor p = new Processor();
-		 * p.setName(&quot;p&quot;);
-		 * p.setParent(workflow);
-		 * workflow.getProcessors().add(p);
-		 * </pre>
-		 */
-	
-		/**
-		 * Processors typically have inputs and outputs which are connected
-		 * within the workflow
-		 */
-		pIn = new InputProcessorPort(p, "pIn");
-		pIn.setDepth(0);
-		pOut = new OutputProcessorPort(p, "pOut");
-		pOut.setDepth(0);
-		pOut.setGranularDepth(0);
-		/**
-		 * .. any additional ports must have a unique name within the input or
-		 * output ports of that processor.
-		 */
-	
-		/**
-		 * Defining a data link from the workflow input port 'in1' to the
-		 * processor input port 'pIn' - this means that data will flow from
-		 * 'in1' to 'pIn'.
-		 */
-		DataLink link = new DataLink();
-		link.setReceivesFrom(in1);
-		link.setSendsTo(pIn);
-		/**
-		 * The ports must be either processor or workflow ports, and both of the
-		 * same workflow as the datalink is added to:
-		 */
-		workflow.getDataLinks().add(link);		
-	
-		/**
-		 * Or more compact style: pOut -> out1 .. connecting processor output
-		 * port 'pOut' to the workflow output port 'out1'
-		 */
-		new DataLink(workflow, pOut, out1);
-		/**
-		 * the constructor will perform for us:
-		 * 
-		 * <pre>
-		 * setParent(workflow)
-		 * 		workflow.getDataLinks().add(workflow)
-		 * </pre>
-		 */
-	
-		/**
-		 * Note: As datalinks are unique based on the connection, they don't
-		 * have names
-		 */
-		
-		/**
-		 * Not covered by this example:
-		 * 
-		 * Dispatch stack:
-		 * 
-		 * <pre>
-		 * DispatchStackLayer dispatchStackLayer = new DispatchStackLayer();
-		 * dispatchStackLayer
-		 * 		.setConfigurableType(URI
-		 * 				.create(&quot;http://ns.taverna.org.uk/2010/scufl2/taverna/dispatchlayer/Retry&quot;));
-		 * p.getDispatchStack().add(dispatchStackLayer);
-		 * Configuration retryConfig = new Configuration();
-		 * retryConfig.setConfigures(dispatchStackLayer);
-		 * // ..
-		 * </pre>
-		 */ 
-		
-		/*
-		 * Iteration strategies:
-		 */
-		 DotProduct dot = new DotProduct();
-		 PortNode e = new PortNode(dot, pIn);
-		 e.setDesiredDepth(0); 
-		 p.getIterationStrategyStack().add(dot);
-
-	}
-
-
-	private void makeProfile() {
-		profile = new Profile("default");
-
-		/**
-		 * One profile can be suggest as the 'main' profile - but alternative
-		 * execution profiles can also be added, for instance to provide
-		 * Grid-based activities rather than Web Service activities - each of
-		 * them must have a unique name within the profiles of the workflow
-		 * bundle.
-		 */
-		bundle.setMainProfile(profile);
-
-		/**
-		 * Additional profiles can be added with:
-		 * 
-		 * <pre>
-		 * bundle.getProfiles().add(profile2);
-		 * </pre>
-		 */
-
-		myBeanshell = new Activity("myBeanshell");
-
-		/**
-		 * Activities are of different types, identified by an URI. A workflow
-		 * engine will typically expose which activity types it supports.
-		 * <p>
-		 * The default types of Taverna have the prefix
-		 * http://ns.taverna.org.uk/2010/activity/, but other plugins will have
-		 * different URI bases.
-		 */
-		URI BEANSHELL = URI
-				.create("http://ns.taverna.org.uk/2010/activity/beanshell");
-		myBeanshell.setType(BEANSHELL);
-
-		
-		/**
-		 * Activities are activated within a particular profile (Therefore
-		 * execution of a profile requires the engine to support all types of
-		 * all activities of the profile)
-		 */
-		profile.getActivities().add(myBeanshell);
-
-		makeConfiguration();
-
-		/**
-		 * A Processor Binding connects a Processor ('p') with an Activity
-		 * 'myBeanshell'. This means that execution of p will use the activity.
-		 */
-		ProcessorBinding binding = new ProcessorBinding();
-		binding.setBoundProcessor(p);
-		binding.setBoundActivity(myBeanshell);
-
-		/**
-		 * It is possible, but not common, for multiple processor bindings to
-		 * reuse the same activity. On execution, the workflow engine might or
-		 * might not instantiate this as the same activity implementation.
-		 */
-
-		/** And add binding to the profile */
-		binding.setParent(profile);
-		/**
-		 * alternatively:
-		 * 
-		 * <pre>
-		 * profile.getProcessorBindings().add(binding)
-		 * </pre>
-		 */
-
-		/**
-		 * It is possible to bind more than one activity for the same processor,
-		 * in which case they will be used as alternate services on failure. (As
-		 * the default Dispatch Stack contains the Failover layer). In this
-		 * case, the processor bindings should specify the 'activity position',
-		 * which determines the ordering of activities within a processor:
-		 * 
-		 * <pre>
-		 * binding.setActivityPosition(15);
-		 * </pre>
-		 */
-
-		/**
-		 * Activities have input and output ports as well, normally these match
-		 * one-to-one with the bound processor's port names and depth.
-		 */
-		InputActivityPort aIn1 = new InputActivityPort(myBeanshell, "in1");
-		aIn1.setDepth(0);
-		myBeanshell.getInputPorts().add(aIn1);
-		OutputActivityPort aOut1 = new OutputActivityPort(myBeanshell, "out1");
-		aOut1.setDepth(0);
-		aOut1.setGranularDepth(0);
-		myBeanshell.getOutputPorts().add(aOut1);
-
-
-		
-		/**
-		 * But in case the activities don't match up (such as when multiple
-		 * activities are bound to the same processor, or as in this example
-		 * where the port matches the script), a port mapping must be specified
-		 * in the processor binding:
-		 */
-		binding.getInputPortBindings().add(
-				new ProcessorInputPortBinding(binding, pIn, aIn1));
-		new ProcessorOutputPortBinding(binding, aOut1, pOut);
-
-		/**
-		 * It is not required to bind any processor input port, but many
-		 * activities expect some or all their inputs bound. It is not required
-		 * to bind all activity output ports, but all processor output ports
-		 * must be bound for each processor binding.
-		 */
-
-		/** If the port names match up, the above can all be done in one go with */
-		//scufl2Tools.bindActivityToProcessorByMatchingPorts(myBeanshell, p);	
-	}
-
-
-
-	private void makeConfiguration() {
-		URI BEANSHELL = URI
-				.create("http://ns.taverna.org.uk/2010/activity/beanshell");
-		/**
-		 * Most activities also require a configuration in order to run. The
-		 * name of the configuration is not important, but must be unique within
-		 * the configurations of a profile. The default constructor
-		 * Configuration() generates a UUID-based name as a fallback.
-		 */
-		Configuration beanshellConfig = new Configuration("beanshellConf");
-		/**
-		 * The activity we configure. (DispatchStackLayer can also be
-		 * configured)
-		 */
-		beanshellConfig.setConfigures(myBeanshell);
-		/**
-		 * A configuration is of a specified type (specified as an URI), which
-		 * is typically related to (but different from) the activity type - but
-		 * might in some cases be shared amongst several activity types.
-		 */
-		beanshellConfig.setType(BEANSHELL.resolve("#Config"));
-
-		/**
-		 * Configurations are normally shared in the same profile as the
-		 * activity they configure (the parent) - but in some cases might also
-		 * be added by other profiles in order to reuse a configuration across
-		 * profiles. (Note: A profile is *stored* within its parent profile).
-		 */
-		beanshellConfig.setParent(profile);
-		profile.getConfigurations().add(beanshellConfig);
-
-		/**
-		 * Depending on the configuration type specified above, certain
-		 * *properties* should be specified, and other properties might be
-		 * optional. In this case, only "script" is
-		 * specified, as a string value. (more complex properties can be
-		 * specified using Jackson JSON methods of the ObjectNode)
-		 */
-		beanshellConfig.getJsonAsObjectNode().put("script", "out1 = in1");
-		/**
-		 * Note that property names are specified as URIs, which are often
-		 * related to the URI of the configuration type - but might be reused
-		 * across several configuration types.
-		 */
-	}
-
-
-	private void writeBundleToFile() throws IOException, WriterException,
-			ReaderException {
-		file = File.createTempFile("test", ".wfbundle");
-	
-		/**
-		 * Bundle IO 
-		 */
-		bundleIO.writeBundle(bundle, file,
-				"application/vnd.taverna.scufl2.workflow-bundle");
-		System.out.println("Written to " + file + "\n");
-	
-		// Read it back in
-		WorkflowBundle secondBundle = bundleIO.readBundle(file,
-				"application/vnd.taverna.scufl2.workflow-bundle");
-	
-		// Write in a debug text format
-		bundleIO.writeBundle(secondBundle, System.out,
-				"text/vnd.taverna.scufl2.structure");
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/python/processorNames.py
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/python/processorNames.py b/taverna-scufl2-examples/src/main/python/processorNames.py
deleted file mode 100644
index d1d62fa..0000000
--- a/taverna-scufl2-examples/src/main/python/processorNames.py
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/usr/bin/env python
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-
-import sys
-import zipfile
-import os.path
-import xml.etree.ElementTree
-from rdflib import Graph
-from rdflib import Namespace
-import urllib
-from rdflib.term import URIRef
-
-Scufl2NS = Namespace("http://ns.taverna.org.uk/2010/scufl2#")
-
-
-NS_CONTAINER="{urn:oasis:names:tc:opendocument:xmlns:container}"
-
-
-import rdflib
-
-class Scufl2(object):
-    def __init__(self, filename=None):
-        self.filename = filename
-        if filename is not None:
-            self.zip = zipfile.ZipFile(filename)
-            self.check_mime_type()
-            self.parse()    
-
-    def check_mime_type(self):       
-        mimetype = self.zip.open("mimetype").read()
-        if mimetype != "application/vnd.taverna.scufl2.workflow-bundle":
-            raise Scufl2Error("Unknown mimetype %r" % mimetype)
-
-    def _is_valid_prefix(self, filename):
-        valid_prefixes = ["workflow/", "annotation/", "profile/"]
-        for prefix in valid_prefixes:
-            if filename.startswith(prefix):
-                return True
-        return False        
-
-    def parse_all_graphs(self, sameAs):
-        filenames = {}
-        for filename in self.zip.namelist():
-            if not self._is_valid_prefix(filename):
-                continue
-            if filename.endswith(".ttl"):
-                base = filename[:-4]
-                filenames[base] = filename
-            elif filename.endswith(".rdf"):
-                base = filename[:-4]
-                if not base in filenames:
-                    filenames[base] = filename
-        
-        for name in filenames:
-            filename = filenames[name]
-            rdf_file = self.zip.open(filename)
-            format = "n3"
-            if filename.endswith(".rdf"):
-                format = "xml"
-            base = sameAs + filename
-            self.graph.parse(rdf_file, base, format=format)
-
-    def parse(self):
-        if "workflowBundle.ttl" in self.zip.namelist():
-            format = "n3" 
-            rootfile = "workflowBundle.ttl"
-        elif "workflowBundle.rdf" in self.zip.namelist():
-            rootfile = "workflowBundle.rdf"
-            format = "xml" 
-        else:
-            raise Scufl2Error("Can't find workflowBundle.ttl or "
-                              "workflowBundle.rdf")
-
-        self.uri = "file://" + urllib.pathname2url(os.path.abspath(self.filename)) + "/"
-        early_graph = Graph()    
-        rdf_file = self.zip.open(rootfile)
-        early_graph.parse(rdf_file, self.uri, format=format)
-        sameBaseAs = list(early_graph.objects(subject=URIRef(self.uri), predicate=Scufl2NS.sameBaseAs))
-
-        if not sameBaseAs:
-            # Fall back to the file:/// URIs   
-            self.graph = early_graph
-        else:    
-            # Use the sameBaseAs as the base
-            self.uri = sameBaseAs[0]
-            self.graph = Graph()
-            # Reparse it
-            rdf_file = self.zip.open(rootfile)
-            self.graph.parse(rdf_file, self.uri, format=format)
-
-        self.parse_all_graphs(self.uri)
-
-
-class Scufl2Error(Exception):
-    pass
-
-
-def main(prg="processorNames.py", filename=None):
-    if filename is None:
-        filename = os.path.join(os.path.dirname(prg), "..", "..", "..", "..", 
-        "scufl2-rdfxml", "src", "test", "resources",
-        "uk", "org", "taverna","scufl2","rdfxml", "example.wfbundle")
-    
-    scufl2 = Scufl2(filename)
-    
-    for workflowUri in scufl2.graph.objects(predicate=Scufl2NS.workflow):
-        for name in scufl2.graph.objects(workflowUri, Scufl2NS.name):
-            print name
-        for processorUri in scufl2.graph.objects(workflowUri, Scufl2NS.processor):
-            for name in scufl2.graph.objects(processorUri, Scufl2NS.name):
-                print "---", name, processorUri
-
-
-if __name__ == "__main__":
-    main(*sys.argv)
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/resources/context.json
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/resources/context.json b/taverna-scufl2-examples/src/main/resources/context.json
deleted file mode 100644
index 4286b54..0000000
--- a/taverna-scufl2-examples/src/main/resources/context.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "@context" :  {
-    "foaf": "http://xmlns.com/foaf/0.1/",
-    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
-    "prov": "http://www.w3.org.ns/prov#",
-    "wfdesc": "http://purl.org/wf4ever/wfdesc#",
-    "scufl2": "http://ns.taverna.org.uk/2010/scufl2#",
-
-    "id": "@id",
-    "name": "rdfs:label",
-    "revisions": "prov:alternateOf",
-    "processors": "wfdesc:hasSubProcess",
-    "inputs": "wfdesc:hasInput",
-    "outputs": "wfdesc:hasOutput",
-    "depth": "scufl2:depth",
-    "granularDepth": "scufl2:granularDepth",
-    "workflow": "foaf:primaryTopic",
-    "generatedAtTime": "prov:generatedAtTime"
-  } 
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/main/ruby/processors.rb
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/main/ruby/processors.rb b/taverna-scufl2-examples/src/main/ruby/processors.rb
deleted file mode 100644
index e3de933..0000000
--- a/taverna-scufl2-examples/src/main/ruby/processors.rb
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-#
-
-require 'rubygems'
-require 'rdf'
-#require 'rdf/raptor'
-require 'zip/zipfilesystem'
-
-scufl2 = RDF::Vocabulary.new("http://ns.taverna.org.uk/2010/scufl2#")
-dc = RDF::Vocabulary.new("http://purl.org/dc/elements/1.1/")
-
-graph = RDF::Graph.load("../../../../taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example/workflowBundle.rdf")
-
-graph = RDF::Graph.new()
-Zip::ZipFile.open("../../../../taverna-scufl2-rdfxml/src/test/resources/org/apache/taverna/scufl2/rdfxml/example.wfbundle") {
-    |zipfile|
-    a = zipfile.file.read("workflowBundle.rdf")
-    RDF::Reader.for(:rdfxml).new(a) do |reader|
-      reader.each_statement do |statement|
-        graph << statement
-      end
-    end
-
-    base = "http://example.org/" 
-    graph.query([nil,scufl2.sameBaseAs,nil]) do |s,p,base|
-    end 
-
-    a = zipfile.file.read("workflowBundle.rdf")
-    RDF::Reader.for(:rdfxml).new(a) do |reader|
-      reader.each_statement do |statement|
-        graph << statement
-      end
-    end
-    # TODO: FOR-loop like in Python
-
-    a = zipfile.file.read("workflow/HelloWorld.rdf")
-    RDF::Reader.for(:rdfxml).new(a) do |reader|
-      reader.each_statement do |statement|
-        graph << statement
-      end
-    end
-    a = zipfile.file.read("annotation/workflow/HelloWorld.rdf")
-    RDF::Reader.for(:rdfxml).new(a) do |reader|
-      reader.each_statement do |statement|
-        graph << statement
-      end
-    end
-}
-
-graph.query([nil, scufl2.workflow, nil]) do |bundle,p,workflow|
-  graph.query([workflow, scufl2.name, nil]) do |wf,p,workflow_name|
-    # Should just be one
-    print workflow_name  
-  end
-  graph.query([workflow, dc.description, nil]) do |workflow,p,description|
-    # Optional description(s)
-    print "  "
-    print description
-  end
-  print "\n"
-
-  graph.query([workflow, scufl2.processor, nil]) do |workflow,p,processor|
-    graph.query([processor, scufl2.name, nil]) do |processor,p,processor_name|
-        print processor_name
-    end
-    graph.query([processor, dc.description, nil]) do |processor,p,description|
-        print "  "
-        print description
-    end
-    print "\n"
-    
-  end
-end
-
-

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestConvertT2flowScufl2.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestConvertT2flowScufl2.java b/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestConvertT2flowScufl2.java
deleted file mode 100644
index 5368a24..0000000
--- a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestConvertT2flowScufl2.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.util.zip.ZipFile;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.taverna.examples.ConvertT2flowToWorkflowBundle;
-import org.junit.Test;
-
-
-public class TestConvertT2flowScufl2 {
-	@Test
-	public void convertToScufl2() throws Exception {
-		File tmp = File.createTempFile("helloworld", ".t2flow");
-		tmp.deleteOnExit();
-		InputStream ebi = getClass().getResourceAsStream("/workflows/t2flow/helloworld.t2flow");
-		FileOutputStream output = new FileOutputStream(tmp);
-		IOUtils.copy(ebi, output);
-		output.close();
-		
-		ConvertT2flowToWorkflowBundle.main(new String[]{tmp.getAbsolutePath()});		
-		File scufl2File = new File(tmp.getAbsolutePath().replace(".t2flow", ".wfbundle"));
-		assertTrue(scufl2File.isFile());
-		try (ZipFile zip = new ZipFile(scufl2File)) {
-			assertNotNull(zip.getEntry("workflowBundle.rdf"));
-		}
-		scufl2File.deleteOnExit();
-//		System.out.println(scufl2File);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestJsonExport.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestJsonExport.java b/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestJsonExport.java
deleted file mode 100644
index ac1d415..0000000
--- a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestJsonExport.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.taverna.examples.JsonExport;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class TestJsonExport {
-    @Test
-    public void jsonExportHelloAnyone() throws Exception {
-        File tmp = File.createTempFile("helloanyone", ".t2flow");
-        tmp.deleteOnExit();
-        InputStream ebi = getClass().getResourceAsStream("/workflows/t2flow/helloanyone.t2flow");
-        FileOutputStream output = new FileOutputStream(tmp);
-        IOUtils.copy(ebi, output);
-        output.close();
-
-        
-        JsonExport jsonExport = new JsonExport();
-        jsonExport.convert(new String[]{tmp.getAbsolutePath()});        
-        File jsonFile = new File(tmp.getAbsolutePath().replace(".t2flow", ".json"));
-        assertTrue(jsonFile.isFile());
-        jsonFile.deleteOnExit();
-//      System.out.println(scufl2File);
-        //System.out.println(FileUtils.readFileToString(jsonFile, "UTF-8"));
-    }
-    
-    @Ignore("Takes 24 seconds!")
-    @Test
-    public void jsonExportNested() throws Exception {
-        File tmp = File.createTempFile("enm", ".t2flow");
-        tmp.deleteOnExit();
-        InputStream ebi = getClass().getResourceAsStream("/workflows/t2flow/generic_enm_workflow_with_interaction_615643.t2flow");
-        FileOutputStream output = new FileOutputStream(tmp);
-        IOUtils.copy(ebi, output);
-        output.close();
-
-        
-        JsonExport jsonExport = new JsonExport();
-        jsonExport.convert(new String[]{tmp.getAbsolutePath()});        
-        File jsonFile = new File(tmp.getAbsolutePath().replace(".t2flow", ".json"));
-        assertTrue(jsonFile.isFile());
-//        jsonFile.deleteOnExit();
-      //System.out.println(jsonFile);
-//        System.out.println(FileUtils.readFileToString(jsonFile, "UTF-8"));
-    }
-    
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestProcessorNames.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestProcessorNames.java b/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestProcessorNames.java
deleted file mode 100644
index ee3e844..0000000
--- a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestProcessorNames.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
-import org.apache.taverna.scufl2.api.io.ReaderException;
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.junit.Test;
-
-public class TestProcessorNames {
-
-	@Test
-	public void processorNames() throws JAXBException, IOException, ReaderException {
-		InputStream workflow = getClass().getResourceAsStream(
-				"/workflows/t2flow/defaultActivitiesTaverna2.2.t2flow");
-		assertNotNull(workflow);
-
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		WorkflowBundle ro = io.readBundle(workflow,
-				"application/vnd.taverna.t2flow+xml");
-
-		List<String> expected = Arrays.asList("Beanshell", "Nested_workflow",
-				"Rshell", "Send_an_Email", "SpreadsheetImport",
-				"String_constant", "TavernaResearchObject", "biomart",
-				"localWorker", "localWorker_bytearray", "mobyObject",
-				"mobyService", "run", "run_input", "run_output",
-				"setWorkflows", "soaplab", "wsdl_document", "wsdl_rpc",
-				"wsdl_secured", "xmlSplitter");
-		ProcessorNames processorNames = new ProcessorNames();
-		assertEquals(expected, processorNames.showProcessorNames(ro));
-	}
-	
-
-	@Test
-	public void nestedWorkflow() throws JAXBException, IOException, ReaderException {
-		InputStream workflow = getClass().getResourceAsStream(
-				"/workflows/t2flow/as.t2flow");
-		assertNotNull(workflow);
-
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		WorkflowBundle ro = io.readBundle(workflow,
-				"application/vnd.taverna.t2flow+xml");
-		ProcessorNames processorNames = new ProcessorNames();
-		assertEquals(8, processorNames.showProcessorNames(ro).size());
-	}
-	
-
-	@Test
-	public void nestedWorkflowBundle() throws JAXBException, IOException, ReaderException {
-		InputStream workflow = getClass().getResourceAsStream(
-				"/workflows/wfbundle/as.wfbundle");
-		assertNotNull(workflow);
-
-		WorkflowBundleIO io = new WorkflowBundleIO();
-		WorkflowBundle ro = io.readBundle(workflow, null);
-		ProcessorNames processorNames = new ProcessorNames();
-		assertEquals(8, processorNames.showProcessorNames(ro).size());
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/316e4a8a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestServiceTypes.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestServiceTypes.java b/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestServiceTypes.java
deleted file mode 100644
index 03fd0c8..0000000
--- a/taverna-scufl2-examples/src/test/java/org/apache/taverna/examples/TestServiceTypes.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.apache.taverna.examples;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.Test;
-
-public class TestServiceTypes {
-	@Test
-	public void defaultActivitiesT2flow() throws Exception {
-		File tmp = File.createTempFile("defaultActivities2.2", ".t2flow");
-		tmp.deleteOnExit();
-		InputStream ebi = getClass()
-				.getResourceAsStream(
-						"/workflows/t2flow/defaultActivitiesTaverna2.2.t2flow");
-		FileOutputStream output = new FileOutputStream(tmp);
-		IOUtils.copy(ebi, output);
-		output.close();
-
-		Set<String> expectedTypes = new HashSet<String>();
-		expectedTypes.addAll(Arrays.asList(
-				"http://ns.taverna.org.uk/2010/activity/beanshell",
-				"http://ns.taverna.org.uk/2010/activity/nested-workflow",
-				"http://ns.taverna.org.uk/2010/activity/rshell",
-				"http://ns.taverna.org.uk/2010/activity/spreadsheet-import",
-				"http://ns.taverna.org.uk/2010/activity/constant",
-				"http://ns.taverna.org.uk/2010/activity/apiconsumer",
-				"http://ns.taverna.org.uk/2010/activity/biomart",
-				"http://ns.taverna.org.uk/2010/activity/biomoby/object",
-				"http://ns.taverna.org.uk/2010/activity/biomoby/service",
-				"http://ns.taverna.org.uk/2010/activity/wsdl",
-				"http://ns.taverna.org.uk/2010/activity/xml-splitter/in",
-				"http://ns.taverna.org.uk/2010/activity/xml-splitter/out",
-				"http://ns.taverna.org.uk/2010/activity/soaplab"));
-
-		Set<String> types = new ServiceTypes().serviceTypes(new String[] { tmp
-				.getAbsolutePath() });
-//		List<String> expected = new ArrayList<>(expectedTypes);
-//		List<String> actual = new ArrayList<>(types);
-//		Collections.sort(expected);
-//		Collections.sort(actual);
-//		assertEquals(expected.toString(), actual.toString());
-		assertEquals(expectedTypes, types);
-	}
-	
-	@Test
-	public void defaultActivitiesWfBundle() throws Exception {
-		File tmp = File.createTempFile("defaultActivities2.2", ".wfbundle");
-		tmp.deleteOnExit();
-		InputStream ebi = getClass()
-				.getResourceAsStream(
-						"/workflows/wfbundle/defaultActivitiesTaverna2.wfbundle");
-		FileOutputStream output = new FileOutputStream(tmp);
-		IOUtils.copy(ebi, output);
-		output.close();
-
-		Set<String> expectedTypes = new HashSet<String>();
-		expectedTypes.addAll(Arrays.asList(
-				"http://ns.taverna.org.uk/2010/activity/beanshell",
-				"http://ns.taverna.org.uk/2010/activity/nested-workflow",
-				"http://ns.taverna.org.uk/2010/activity/rshell",
-				"http://ns.taverna.org.uk/2010/activity/spreadsheet-import",
-				"http://ns.taverna.org.uk/2010/activity/constant",
-				"http://ns.taverna.org.uk/2010/activity/apiconsumer",
-				"http://ns.taverna.org.uk/2010/activity/biomart",
-				"http://ns.taverna.org.uk/2010/activity/biomoby/object",
-				"http://ns.taverna.org.uk/2010/activity/biomoby/service",
-				"http://ns.taverna.org.uk/2010/activity/wsdl",
-				"http://ns.taverna.org.uk/2010/activity/xml-splitter/in",
-				"http://ns.taverna.org.uk/2010/activity/xml-splitter/out",
-				"http://ns.taverna.org.uk/2010/activity/soaplab"));
-
-		Set<String> types = new ServiceTypes().serviceTypes(new String[] { tmp
-				.getAbsolutePath() });
-		assertEquals(expectedTypes, types);
-	}
-	
-}