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/23 11:04:54 UTC
[09/79] [partial] incubator-taverna-language git commit: Revert
"temporarily empty repository"
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/c08405cb/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
new file mode 100644
index 0000000..323db46
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/test/resources/as.txt
@@ -0,0 +1,274 @@
+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/c08405cb/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
new file mode 100755
index 0000000..3d52c25
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/test/resources/beanshell-deps.t2flow
@@ -0,0 +1,47 @@
+<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/c08405cb/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
new file mode 100644
index 0000000..e240e38
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/test/resources/component_simple.t2flow
@@ -0,0 +1,35 @@
+<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/c08405cb/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
new file mode 100644
index 0000000..62206b6
--- /dev/null
+++ b/taverna-scufl2-t2flow/src/test/resources/dataflow_link_then_merge.t2flow
@@ -0,0 +1,66 @@
+<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