t2-server 0.9.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>