t2-server 0.9.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -75,6 +75,7 @@ class TestSecurity < Test::Unit::TestCase
75
75
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
76
76
  assert(run.finished?)
77
77
  assert_not_nil(run.output_port("out").value)
78
+ assert(run.delete)
78
79
  end
79
80
 
80
81
  # now test with no credential
@@ -83,7 +84,8 @@ class TestSecurity < Test::Unit::TestCase
83
84
  assert(run.running?)
84
85
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
85
86
  assert(run.finished?)
86
- assert_nil(run.output_port("out").value)
87
+ assert(run.output_port("out").error?)
88
+ assert(run.delete)
87
89
  end
88
90
  end
89
91
 
@@ -97,6 +99,7 @@ class TestSecurity < Test::Unit::TestCase
97
99
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
98
100
  assert(run.finished?)
99
101
  assert_not_nil(run.output_port("out").value)
102
+ assert(run.delete)
100
103
  end
101
104
 
102
105
  # now test with no server public key
@@ -106,7 +109,8 @@ class TestSecurity < Test::Unit::TestCase
106
109
  assert(run.running?)
107
110
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
108
111
  assert(run.finished?)
109
- assert_nil(run.output_port("out").value)
112
+ assert(run.output_port("out").error?)
113
+ assert(run.delete)
110
114
  end
111
115
  end
112
116
 
@@ -119,6 +123,7 @@ class TestSecurity < Test::Unit::TestCase
119
123
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
120
124
  assert(run.finished?)
121
125
  assert_not_nil(run.output_port("out").value)
126
+ assert(run.delete)
122
127
  end
123
128
  end
124
129
 
@@ -132,6 +137,7 @@ class TestSecurity < Test::Unit::TestCase
132
137
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
133
138
  assert(run.finished?)
134
139
  assert_not_nil(run.output_port("out").value)
140
+ assert(run.delete)
135
141
  end
136
142
  end
137
143
 
@@ -152,6 +158,7 @@ class TestSecurity < Test::Unit::TestCase
152
158
  "Hello Alex!")
153
159
  assert_equal(run.output_port("out_digest_timestamp").value,
154
160
  "Hello David!")
161
+ assert(run.delete)
155
162
  end
156
163
  end
157
164
 
@@ -173,6 +180,7 @@ class TestSecurity < Test::Unit::TestCase
173
180
  "Hello Alex!")
174
181
  assert_equal(run.output_port("out_digest_timestamp").value,
175
182
  "Hello David!")
183
+ assert(run.delete)
176
184
  end
177
185
  end
178
186
 
@@ -186,6 +194,7 @@ class TestSecurity < Test::Unit::TestCase
186
194
  assert_nothing_raised(T2Server::RunStateError) { run.wait }
187
195
  assert(run.finished?)
188
196
  assert_not_nil(run.output_port("out").value)
197
+ assert(run.delete)
189
198
  end
190
199
  end
191
200
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2012 The University of Manchester, UK.
1
+ # Copyright (c) 2010-2013 The University of Manchester, UK.
2
2
  #
3
3
  # All rights reserved.
4
4
  #
@@ -40,6 +40,12 @@ class TestServer < Test::Unit::TestCase
40
40
  end
41
41
  end
42
42
 
43
+ def test_server_connection_no_params
44
+ assert_nothing_raised(T2Server::ConnectionError) do
45
+ T2Server::Server.new($uri)
46
+ end
47
+ end
48
+
43
49
  def test_run_creation
44
50
  T2Server::Server.new($uri, $conn_params) do |server|
45
51
  assert_nothing_raised(T2Server::T2ServerError) do
@@ -53,14 +59,29 @@ class TestServer < Test::Unit::TestCase
53
59
  def test_server_limits_delete_all
54
60
  T2Server::Server.new($uri, $conn_params) do |server|
55
61
  limit = server.run_limit($creds)
62
+ max_runs = 0
56
63
  assert_instance_of(Fixnum, limit)
57
64
  assert_raise(T2Server::ServerAtCapacityError) do
65
+ # Detect the concurrent run limit and
58
66
  # add 1 just in case there are no runs at this point
67
+ more = true
59
68
  (limit + 1).times do
60
- server.create_run($wkf_pass, $creds)
69
+ run = server.create_run($wkf_pass, $creds)
70
+ if more
71
+ run.input_port("IN").value = "Hello"
72
+ more = run.start
73
+ if more
74
+ max_runs += 1
75
+ assert(run.running?)
76
+ else
77
+ assert(run.initialized?)
78
+ end
79
+ end
61
80
  end
62
81
  end
63
82
 
83
+ assert(max_runs <= limit)
84
+
64
85
  assert_nothing_raised(T2Server::T2ServerError) do
65
86
  server.delete_all_runs($creds)
66
87
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2010-2012 The University of Manchester, UK.
1
+ # Copyright (c) 2010-2013 The University of Manchester, UK.
2
2
  #
3
3
  # All rights reserved.
4
4
  #
@@ -78,13 +78,14 @@ if address != ""
78
78
  $creds = T2Server::HttpBasic.new(user1, pass1) if user1
79
79
  $creds1 = T2Server::HttpBasic.new(user2, pass2) if user2
80
80
 
81
- $wkf_pass = File.read("test/workflows/pass_through.t2flow")
82
- $wkf_lists = File.read("test/workflows/empty_list.t2flow")
83
- $wkf_l_v = File.read("test/workflows/list_and_value.t2flow")
84
- $wkf_xml = File.read("test/workflows/xml_xpath.t2flow")
85
- $wkf_fail = File.read("test/workflows/always_fail.t2flow")
86
- $wkf_errors = File.read("test/workflows/list_with_errors.t2flow")
87
- $wkf_no_io = File.read("test/workflows/no-ports.t2flow")
81
+ $wkf_pass = "test/workflows/pass_through.t2flow"
82
+ $wkf_lists = "test/workflows/empty_list.t2flow"
83
+ $wkf_l_v = "test/workflows/list_and_value.t2flow"
84
+ $wkf_xml = "test/workflows/xml_xpath.t2flow"
85
+ $wkf_fail = "test/workflows/always_fail.t2flow"
86
+ $wkf_errors = "test/workflows/list_with_errors.t2flow"
87
+ $wkf_no_io = "test/workflows/no-ports.t2flow"
88
+ $wkf_miss_o = "test/workflows/missing_outputs.t2flow"
88
89
  $list_input = "test/workflows/empty_list_input.baclava"
89
90
  $file_input = "test/workflows/in.txt"
90
91
  $file_strs = "test/workflows/strings.txt"
@@ -104,6 +105,7 @@ if address != ""
104
105
  require 'tc_run'
105
106
  require 'tc_admin'
106
107
  require 'tc_secure'
108
+ require 'tc_misc'
107
109
 
108
110
  # if we have two sets of credentials we can run permissions tests
109
111
  if $creds1
@@ -0,0 +1,440 @@
1
+ <workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="7cc6cd61-0e6a-48ee-936c-9123b2ac3faf" role="top"><name>Workflow4</name><inputPorts /><outputPorts><port><name>OUT_1</name><annotations /></port><port><name>OUT_2</name><annotations /></port><port><name>OUT_3</name><annotations /></port></outputPorts><processors><processor><name>Passthrough_1</name><inputPorts><port><name>in1</name><depth>0</depth></port></inputPorts><outputPorts><port><name>out1</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map from="in1" to="in1" /></inputMap><outputMap><map from="out1" to="out1" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
2
+ <inputs>
3
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
4
+ <name>in1</name>
5
+ <depth>0</depth>
6
+ <mimeTypes>
7
+ <string>text/plain</string>
8
+ </mimeTypes>
9
+ <handledReferenceSchemes />
10
+ <translatedElementType>java.lang.String</translatedElementType>
11
+ <allowsLiteralValues>true</allowsLiteralValues>
12
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
13
+ </inputs>
14
+ <outputs>
15
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
16
+ <name>out1</name>
17
+ <depth>0</depth>
18
+ <mimeTypes />
19
+ <granularDepth>0</granularDepth>
20
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
21
+ </outputs>
22
+ <classLoaderSharing>workflow</classLoaderSharing>
23
+ <localDependencies />
24
+ <artifactDependencies />
25
+ <script>String out1 = in1;</script>
26
+ <dependencies />
27
+ </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.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
28
+ <maxJobs>1</maxJobs>
29
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
30
+ <backoffFactor>1.0</backoffFactor>
31
+ <initialDelay>1000</initialDelay>
32
+ <maxDelay>5000</maxDelay>
33
+ <maxRetries>0</maxRetries>
34
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="in1" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Create_10_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.4</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="">
35
+ <inputs />
36
+ <outputs>
37
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
38
+ <name>strings</name>
39
+ <depth>1</depth>
40
+ <mimeTypes />
41
+ <granularDepth>1</granularDepth>
42
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
43
+ </outputs>
44
+ <classLoaderSharing>workflow</classLoaderSharing>
45
+ <localDependencies />
46
+ <artifactDependencies />
47
+ <script>List strings = new ArrayList();
48
+ for (int i = 0; i &lt; 10; i++) {
49
+ strings.add("String" + i);
50
+ }
51
+ </script>
52
+ <dependencies />
53
+ <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
54
+ </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
55
+ <annotationAssertions>
56
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
57
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
58
+ <text>UserNameHere</text>
59
+ </annotationBean>
60
+ <date>2013-05-21 15:33:47.569 UTC</date>
61
+ <creators />
62
+ <curationEventList />
63
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
64
+ </annotationAssertions>
65
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
66
+ <maxJobs>1</maxJobs>
67
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
68
+ <backoffFactor>1.0</backoffFactor>
69
+ <initialDelay>1000</initialDelay>
70
+ <maxDelay>5000</maxDelay>
71
+ <maxRetries>0</maxRetries>
72
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Create_Lists</name><inputPorts /><outputPorts><port><name>strings1</name><depth>1</depth><granularDepth>1</granularDepth></port><port><name>strings2</name><depth>1</depth><granularDepth>1</granularDepth></port><port><name>strings3</name><depth>1</depth><granularDepth>1</granularDepth></port><port><name>strings4</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.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap><map from="strings2" to="strings2" /><map from="strings3" to="strings3" /><map from="strings4" to="strings4" /><map from="strings1" to="strings1" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
73
+ <inputs />
74
+ <outputs>
75
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
76
+ <name>strings1</name>
77
+ <depth>1</depth>
78
+ <mimeTypes />
79
+ <granularDepth>1</granularDepth>
80
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
81
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
82
+ <name>strings2</name>
83
+ <depth>1</depth>
84
+ <mimeTypes />
85
+ <granularDepth>1</granularDepth>
86
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
87
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
88
+ <name>strings3</name>
89
+ <depth>1</depth>
90
+ <mimeTypes />
91
+ <granularDepth>1</granularDepth>
92
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
93
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
94
+ <name>strings4</name>
95
+ <depth>1</depth>
96
+ <mimeTypes />
97
+ <granularDepth>1</granularDepth>
98
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
99
+ </outputs>
100
+ <classLoaderSharing>workflow</classLoaderSharing>
101
+ <localDependencies />
102
+ <artifactDependencies />
103
+ <script>List strings1 = new ArrayList();
104
+ List strings2 = new ArrayList();
105
+ List strings3 = new ArrayList();
106
+ List strings4 = new ArrayList();
107
+ for (int i = 0; i &lt; 10; i++) {
108
+ strings1.add("String" + i);
109
+ strings3.add("String" + i);
110
+ }
111
+ </script>
112
+ <dependencies />
113
+ <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
114
+ </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
115
+ <annotationAssertions>
116
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
117
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
118
+ <text>UserNameHere</text>
119
+ </annotationBean>
120
+ <date>2013-05-21 15:37:59.152 UTC</date>
121
+ <creators />
122
+ <curationEventList />
123
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
124
+ </annotationAssertions>
125
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
126
+ <maxJobs>1</maxJobs>
127
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
128
+ <backoffFactor>1.0</backoffFactor>
129
+ <initialDelay>1000</initialDelay>
130
+ <maxDelay>5000</maxDelay>
131
+ <maxRetries>0</maxRetries>
132
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Passthrough_2</name><inputPorts><port><name>in1</name><depth>0</depth></port></inputPorts><outputPorts><port><name>out1</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map from="in1" to="in1" /></inputMap><outputMap><map from="out1" to="out1" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
133
+ <inputs>
134
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
135
+ <name>in1</name>
136
+ <depth>0</depth>
137
+ <mimeTypes>
138
+ <string>text/plain</string>
139
+ </mimeTypes>
140
+ <handledReferenceSchemes />
141
+ <translatedElementType>java.lang.String</translatedElementType>
142
+ <allowsLiteralValues>true</allowsLiteralValues>
143
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
144
+ </inputs>
145
+ <outputs>
146
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
147
+ <name>out1</name>
148
+ <depth>0</depth>
149
+ <mimeTypes />
150
+ <granularDepth>0</granularDepth>
151
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
152
+ </outputs>
153
+ <classLoaderSharing>workflow</classLoaderSharing>
154
+ <localDependencies />
155
+ <artifactDependencies />
156
+ <script>String out1 = in1;</script>
157
+ <dependencies />
158
+ </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.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
159
+ <maxJobs>1</maxJobs>
160
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
161
+ <backoffFactor>1.0</backoffFactor>
162
+ <initialDelay>1000</initialDelay>
163
+ <maxDelay>5000</maxDelay>
164
+ <maxRetries>0</maxRetries>
165
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="in1" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Create_Deep_List</name><inputPorts /><outputPorts><port><name>meta_list</name><depth>2</depth><granularDepth>2</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap /><outputMap><map from="meta_list" to="meta_list" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
166
+ <inputs />
167
+ <outputs>
168
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
169
+ <name>meta_list</name>
170
+ <depth>2</depth>
171
+ <mimeTypes />
172
+ <granularDepth>2</granularDepth>
173
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
174
+ </outputs>
175
+ <classLoaderSharing>workflow</classLoaderSharing>
176
+ <localDependencies />
177
+ <artifactDependencies />
178
+ <script>List strings1 = new ArrayList();
179
+ List strings2 = new ArrayList();
180
+ List strings3 = new ArrayList();
181
+ List strings4 = new ArrayList();
182
+ for (int i = 0; i &lt; 10; i++) {
183
+ strings1.add("String" + i);
184
+ strings3.add("String" + i);
185
+ }
186
+ List meta_list = new ArrayList();
187
+ meta_list.add(strings1);
188
+ meta_list.add(strings2);
189
+ meta_list.add(strings3);
190
+ meta_list.add(strings4);</script>
191
+ <dependencies />
192
+ <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
193
+ </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
194
+ <annotationAssertions>
195
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
196
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
197
+ <text>UserNameHere</text>
198
+ </annotationBean>
199
+ <date>2013-05-21 15:39:51.698 UTC</date>
200
+ <creators />
201
+ <curationEventList />
202
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
203
+ </annotationAssertions>
204
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
205
+ <maxJobs>1</maxJobs>
206
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
207
+ <backoffFactor>1.0</backoffFactor>
208
+ <initialDelay>1000</initialDelay>
209
+ <maxDelay>5000</maxDelay>
210
+ <maxRetries>0</maxRetries>
211
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Passthrough_3</name><inputPorts><port><name>in1</name><depth>0</depth></port></inputPorts><outputPorts><port><name>out1</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map from="in1" to="in1" /></inputMap><outputMap><map from="out1" to="out1" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
212
+ <inputs>
213
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
214
+ <name>in1</name>
215
+ <depth>0</depth>
216
+ <mimeTypes>
217
+ <string>text/plain</string>
218
+ </mimeTypes>
219
+ <handledReferenceSchemes />
220
+ <translatedElementType>java.lang.String</translatedElementType>
221
+ <allowsLiteralValues>true</allowsLiteralValues>
222
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
223
+ </inputs>
224
+ <outputs>
225
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
226
+ <name>out1</name>
227
+ <depth>0</depth>
228
+ <mimeTypes />
229
+ <granularDepth>0</granularDepth>
230
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
231
+ </outputs>
232
+ <classLoaderSharing>workflow</classLoaderSharing>
233
+ <localDependencies />
234
+ <artifactDependencies />
235
+ <script>String out1 = in1;</script>
236
+ <dependencies />
237
+ </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.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
238
+ <maxJobs>1</maxJobs>
239
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
240
+ <backoffFactor>1.0</backoffFactor>
241
+ <initialDelay>1000</initialDelay>
242
+ <maxDelay>5000</maxDelay>
243
+ <maxRetries>0</maxRetries>
244
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="in1" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Create_Empty_List</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.4</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="">
245
+ <inputs />
246
+ <outputs>
247
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
248
+ <name>strings</name>
249
+ <depth>1</depth>
250
+ <mimeTypes />
251
+ <granularDepth>1</granularDepth>
252
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
253
+ </outputs>
254
+ <classLoaderSharing>workflow</classLoaderSharing>
255
+ <localDependencies />
256
+ <artifactDependencies />
257
+ <script>List strings = new ArrayList();
258
+ </script>
259
+ <dependencies />
260
+ <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
261
+ </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
262
+ <annotationAssertions>
263
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
264
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
265
+ <text>UserNameHere</text>
266
+ </annotationBean>
267
+ <date>2013-05-21 15:34:28.784 UTC</date>
268
+ <creators />
269
+ <curationEventList />
270
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
271
+ </annotationAssertions>
272
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
273
+ <maxJobs>1</maxJobs>
274
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
275
+ <backoffFactor>1.0</backoffFactor>
276
+ <initialDelay>1000</initialDelay>
277
+ <maxDelay>5000</maxDelay>
278
+ <maxRetries>0</maxRetries>
279
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Create_10_Strings_2</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.4</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="">
280
+ <inputs />
281
+ <outputs>
282
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
283
+ <name>strings</name>
284
+ <depth>1</depth>
285
+ <mimeTypes />
286
+ <granularDepth>1</granularDepth>
287
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
288
+ </outputs>
289
+ <classLoaderSharing>workflow</classLoaderSharing>
290
+ <localDependencies />
291
+ <artifactDependencies />
292
+ <script>List strings = new ArrayList();
293
+ for (int i = 0; i &lt; 10; i++) {
294
+ strings.add("String" + i);
295
+ }
296
+ </script>
297
+ <dependencies />
298
+ <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
299
+ </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
300
+ <annotationAssertions>
301
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
302
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
303
+ <text>UserNameHere</text>
304
+ </annotationBean>
305
+ <date>2013-05-21 15:33:47.569 UTC</date>
306
+ <creators />
307
+ <curationEventList />
308
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
309
+ </annotationAssertions>
310
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
311
+ <maxJobs>1</maxJobs>
312
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
313
+ <backoffFactor>1.0</backoffFactor>
314
+ <initialDelay>1000</initialDelay>
315
+ <maxDelay>5000</maxDelay>
316
+ <maxRetries>0</maxRetries>
317
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>Create_Empty_List_2</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.4</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="">
318
+ <inputs />
319
+ <outputs>
320
+ <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
321
+ <name>strings</name>
322
+ <depth>1</depth>
323
+ <mimeTypes />
324
+ <granularDepth>1</granularDepth>
325
+ </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
326
+ </outputs>
327
+ <classLoaderSharing>workflow</classLoaderSharing>
328
+ <localDependencies />
329
+ <artifactDependencies />
330
+ <script>List strings = new ArrayList();
331
+ </script>
332
+ <dependencies />
333
+ <localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
334
+ </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
335
+ <annotationAssertions>
336
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
337
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.HostInstitution">
338
+ <text>UserNameHere</text>
339
+ </annotationBean>
340
+ <date>2013-05-21 15:34:28.784 UTC</date>
341
+ <creators />
342
+ <curationEventList />
343
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
344
+ </annotationAssertions>
345
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
346
+ <maxJobs>1</maxJobs>
347
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
348
+ <backoffFactor>1.0</backoffFactor>
349
+ <initialDelay>1000</initialDelay>
350
+ <maxDelay>5000</maxDelay>
351
+ <maxRetries>0</maxRetries>
352
+ </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Passthrough_3</processor><port>in1</port></sink><source type="processor"><processor>Create_Deep_List</processor><port>meta_list</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_2</processor><port>in1</port></sink><source type="processor"><processor>Create_Lists</processor><port>strings1</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_2</processor><port>in1</port></sink><source type="processor"><processor>Create_Lists</processor><port>strings2</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_2</processor><port>in1</port></sink><source type="processor"><processor>Create_Lists</processor><port>strings3</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_2</processor><port>in1</port></sink><source type="processor"><processor>Create_Lists</processor><port>strings4</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_1</processor><port>in1</port></sink><source type="processor"><processor>Create_10_Strings</processor><port>strings</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_1</processor><port>in1</port></sink><source type="processor"><processor>Create_Empty_List</processor><port>strings</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_1</processor><port>in1</port></sink><source type="processor"><processor>Create_10_Strings_2</processor><port>strings</port></source></datalink><datalink><sink type="merge"><processor>Passthrough_1</processor><port>in1</port></sink><source type="processor"><processor>Create_Empty_List_2</processor><port>strings</port></source></datalink><datalink><sink type="dataflow"><port>OUT_1</port></sink><source type="processor"><processor>Passthrough_1</processor><port>out1</port></source></datalink><datalink><sink type="dataflow"><port>OUT_2</port></sink><source type="processor"><processor>Passthrough_2</processor><port>out1</port></source></datalink><datalink><sink type="dataflow"><port>OUT_3</port></sink><source type="processor"><processor>Passthrough_3</processor><port>out1</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
353
+ <annotationAssertions>
354
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
355
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
356
+ <identification>8b331daa-9f06-4ee0-b19e-ba4b0088a74c</identification>
357
+ </annotationBean>
358
+ <date>2013-05-21 15:40:13.823 UTC</date>
359
+ <creators />
360
+ <curationEventList />
361
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
362
+ </annotationAssertions>
363
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
364
+ <annotationAssertions>
365
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
366
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
367
+ <identification>05ab46b1-aad6-42f3-b274-b3a69a168e30</identification>
368
+ </annotationBean>
369
+ <date>2013-05-21 15:21:45.372 UTC</date>
370
+ <creators />
371
+ <curationEventList />
372
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
373
+ </annotationAssertions>
374
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
375
+ <annotationAssertions>
376
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
377
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
378
+ <identification>373134e4-dae2-4b1f-8908-9edc62f34ff0</identification>
379
+ </annotationBean>
380
+ <date>2013-05-21 15:31:44.413 UTC</date>
381
+ <creators />
382
+ <curationEventList />
383
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
384
+ </annotationAssertions>
385
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
386
+ <annotationAssertions>
387
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
388
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
389
+ <identification>290aaa8b-2ad6-4648-af5f-5ed4fba953d8</identification>
390
+ </annotationBean>
391
+ <date>2013-05-21 15:11:42.407 UTC</date>
392
+ <creators />
393
+ <curationEventList />
394
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
395
+ </annotationAssertions>
396
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
397
+ <annotationAssertions>
398
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
399
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
400
+ <identification>f27f8bf7-d2a7-4743-b5c7-c8dca692554a</identification>
401
+ </annotationBean>
402
+ <date>2013-05-21 15:38:44.87 UTC</date>
403
+ <creators />
404
+ <curationEventList />
405
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
406
+ </annotationAssertions>
407
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
408
+ <annotationAssertions>
409
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
410
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
411
+ <identification>cd27890d-9c05-4a45-9755-e7157d41c307</identification>
412
+ </annotationBean>
413
+ <date>2013-05-21 15:13:30.47 UTC</date>
414
+ <creators />
415
+ <curationEventList />
416
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
417
+ </annotationAssertions>
418
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
419
+ <annotationAssertions>
420
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
421
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
422
+ <identification>96439ab4-db3b-4148-b660-994e62991c8e</identification>
423
+ </annotationBean>
424
+ <date>2013-05-21 15:35:35.335 UTC</date>
425
+ <creators />
426
+ <curationEventList />
427
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
428
+ </annotationAssertions>
429
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
430
+ <annotationAssertions>
431
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
432
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
433
+ <identification>7cc6cd61-0e6a-48ee-936c-9123b2ac3faf</identification>
434
+ </annotationBean>
435
+ <date>2013-05-21 15:52:41.991 UTC</date>
436
+ <creators />
437
+ <curationEventList />
438
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
439
+ </annotationAssertions>
440
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>