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 2016/02/02 22:58:04 UTC

[08/11] incubator-taverna-language git commit: taverna-tavlangtool module removed

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/6e2aa825/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestTools.java
----------------------------------------------------------------------
diff --git a/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestTools.java b/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestTools.java
deleted file mode 100644
index 483d4c3..0000000
--- a/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestTools.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.apache.taverna.tavlang.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT 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.HashMap;
-
-import org.apache.taverna.tavlang.tools.Tools.ConvertionTools;
-import org.junit.Test;
-import org.junit.*;
-
-/*
- * Test cases for the Tools Class.
- * Input :- The output file format
- * Output:- The relevant writer media type for that file format
- * 
- * */
-
-public class TestTools {
-
-	private ConvertionTools tools;
-	private HashMap<String, String> map = new HashMap<>();
-	
-	 
-	@Before
-	public void setMap(){
-		this.map.put("wfdesc", "text/vnd.wf4ever.wfdesc+turtle");
-		this.map.put("iwir", "application/vnd.shiwa.iwir+xml");
-		this.map.put("json", "application/ld+json");
-		this.map.put("wfbundle", "application/vnd.taverna.scufl2.workflow-bundle");
-		this.map.put("robundle", null);
-	}
-	
-	
-	@Test
-	public void testWfdesc() {
-		assertEquals(map.get("wfdesc"), ConvertionTools.valueOf("wfdesc").getMediaType(tools));
-	}
-
-	@Test
-	public void testIwir() {
-		assertEquals(map.get("iwir"), ConvertionTools.valueOf("iwir").getMediaType(tools));
-	}
-
-	@Test
-	public void testJson() {
-		assertEquals(map.get("json"), ConvertionTools.valueOf("json").getMediaType(tools));
-	}
-
-
-	@Test
-	public void testWfbundle() {
-		assertEquals(map.get("wfbundle"), ConvertionTools.valueOf("wfbundle").getMediaType(tools));
-	}
-	
-	
-	@Test
-	public void testRobundle() {
-		assertEquals(map.get("robundle"), ConvertionTools.valueOf("robundle").getMediaType(tools));
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/6e2aa825/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestValidate.java
----------------------------------------------------------------------
diff --git a/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestValidate.java b/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestValidate.java
deleted file mode 100644
index 58e0d3f..0000000
--- a/taverna-tavlangtool/src/test/java/org/apache/taverna/tavlang/test/TestValidate.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.taverna.tavlang.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT 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.awt.List;
-import java.util.ArrayList;
-
-import org.apache.taverna.robundle.Bundle;
-import org.apache.taverna.tavlang.tools.validate.Validate;
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
-public class TestValidate {
-
-	
-	
-	@Test
-	public void test() {
-		ArrayList<String> list = Lists.newArrayList();
-		list.add("src/test/resources/workflows/t2flow/as.t2flow");
-		Validate val = new Validate(list, null, false);
-		
-		assertEquals(false, val.getCheck());
-		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/6e2aa825/taverna-tavlangtool/src/test/resources/.gitignore
----------------------------------------------------------------------
diff --git a/taverna-tavlangtool/src/test/resources/.gitignore b/taverna-tavlangtool/src/test/resources/.gitignore
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/6e2aa825/taverna-tavlangtool/src/test/resources/workflows/t2flow/as.t2flow
----------------------------------------------------------------------
diff --git a/taverna-tavlangtool/src/test/resources/workflows/t2flow/as.t2flow b/taverna-tavlangtool/src/test/resources/workflows/t2flow/as.t2flow
deleted file mode 100644
index 2d9f127..0000000
--- a/taverna-tavlangtool/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