t2-server 0.5.1 → 0.5.2

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.
@@ -1,5 +1,10 @@
1
1
  = Changes log for the T2 Ruby Gem
2
2
 
3
+ == Version 0.5.2
4
+
5
+ * Fix two issues with the retrieving of workflow outputs.
6
+ * Update tests to reflect changes to output code.
7
+
3
8
  == Version 0.5.1
4
9
 
5
10
  * Fix horror typo in Server#set_run_input.
@@ -1,7 +1,7 @@
1
1
  = Taverna[http://www.taverna.org.uk/] 2 Server Interaction Gem
2
2
 
3
3
  Authors:: Robert Haines
4
- Gem Version:: 0.5.1
4
+ Gem Version:: 0.5.2
5
5
  API Version:: 2.2a1
6
6
  Contact:: mailto:rhaines@manchester.ac.uk
7
7
  URL:: http://taverna.sourceforge.net/
@@ -43,7 +43,7 @@ require 't2-server/run'
43
43
  # Taverna 2 Server instance.
44
44
  module T2Server
45
45
  # The version of this library
46
- GEM_VERSION = "0.5.1"
46
+ GEM_VERSION = "0.5.2"
47
47
  # The version of the Taverna 2 Server API that this library can interface with
48
48
  API_VERSION = "2.2a1"
49
49
  end
@@ -137,53 +137,27 @@ module T2Server
137
137
  end
138
138
 
139
139
  # :call-seq:
140
- # run.get_output(output, refs=false) -> list
140
+ # run.get_output(output, refs=false) -> string or list
141
141
  #
142
142
  # Return the values of the workflow output port _output_. These are
143
- # returned as a list of strings. If the output port represents a singleton
144
- # output then a one item list is returned. By default this method returns
143
+ # returned as a list of strings or, if the output port represents a
144
+ # singleton value, then a string returned. By default this method returns
145
145
  # the actual data from the output port but if _refs_ is set to true then
146
146
  # it will instead return URIs to the actual data in the same list format.
147
147
  # See also Run#get_output_refs.
148
148
  def get_output(output, refs=false)
149
- output.strip_path!
150
- result = []
151
-
152
- # look at the contents of the output port
153
- lists, items = ls("out/#{output}")
154
-
155
- # if lists and items are empty then it's a single value
156
- if lists == [] and items == []
157
- if refs
158
- result << "#{@server.uri}/rest/runs/#{@uuid}/#{@links[:wdir]}/out/#{output}"
159
- else
160
- result << @server.get_run_attribute(@uuid, "#{@links[:wdir]}/out/#{output}")
161
- end
162
- end
163
-
164
- # for each list recurse into it and add the items to the result
165
- lists.each {|list| result << get_output("#{output}/#{list}", refs)}
166
-
167
- # for each item, add it to the output list
168
- items.each do |item|
169
- if refs
170
- result << "#{@server.uri}/rest/runs/#{@uuid}/#{@links[:wdir]}/out/#{output}/#{item}"
171
- else
172
- result << @server.get_run_attribute(@uuid, "#{@links[:wdir]}/out/#{output}/#{item}")
173
- end
174
- end
175
-
176
- result
149
+ _get_output(output, refs)
177
150
  end
178
151
 
179
152
  # :call-seq:
180
- # run.get_output_refs(output) -> list
153
+ # run.get_output_refs(output) -> string or list
181
154
  #
182
155
  # Return references (URIs) to the values of the workflow output port
183
- # _output_. These are returned as a list of URIs. If the output port
184
- # represents a singleton output then a one item list is returned.
156
+ # _output_. These are returned as a list of URIs or, if the output port
157
+ # represents a singleton value, then a single URI is returned. The URIs
158
+ # are returned as strings.
185
159
  def get_output_refs(output)
186
- get_output(output, true)
160
+ _get_output(output, true)
187
161
  end
188
162
 
189
163
  # :call-seq:
@@ -476,6 +450,39 @@ module T2Server
476
450
  end
477
451
 
478
452
  private
453
+ def _get_output(output, refs=false, top=true)
454
+ output.strip_path!
455
+ result = []
456
+
457
+ # look at the contents of the output port
458
+ lists, items = ls("out/#{output}")
459
+
460
+ # if lists and items are empty then it's an empty list
461
+ # although it could be a single value if we're at the top level
462
+ if top and lists == [] and items == []
463
+ # as we are at the top level, just return the single value
464
+ if refs
465
+ return "#{@server.uri}/rest/runs/#{@uuid}/#{@links[:wdir]}/out/#{output}"
466
+ else
467
+ return @server.get_run_attribute(@uuid, "#{@links[:wdir]}/out/#{output}")
468
+ end
469
+ end
470
+
471
+ # for each list recurse into it and add the items to the result
472
+ lists.each {|list| result << _get_output("#{output}/#{list}", refs, false)}
473
+
474
+ # for each item, add it to the output list
475
+ items.each do |item|
476
+ if refs
477
+ result << "#{@server.uri}/rest/runs/#{@uuid}/#{@links[:wdir]}/out/#{output}/#{item}"
478
+ else
479
+ result << @server.get_run_attribute(@uuid, "#{@links[:wdir]}/out/#{output}/#{item}")
480
+ end
481
+ end
482
+
483
+ result
484
+ end
485
+
479
486
  def get_attributes(desc)
480
487
  # first parse out the basic stuff
481
488
  links = parse_description(desc)
@@ -58,7 +58,7 @@ class TestRun < Test::Unit::TestCase
58
58
 
59
59
  # exitcode and output
60
60
  assert_instance_of(Fixnum, @run.exitcode)
61
- assert_equal(@run.get_output("Message"), ["Hello, World!"])
61
+ assert_equal(@run.get_output("Message"), "Hello, World!")
62
62
  assert_raise(T2Server::AccessForbiddenError) do
63
63
  @run.get_output("wrong!")
64
64
  end
@@ -79,24 +79,23 @@ class TestRun < Test::Unit::TestCase
79
79
  @run.wait
80
80
  end
81
81
 
82
- # run that returns list of lists
82
+ # run that returns list of lists, some empty, using baclava for input
83
83
  @run = T2Server::Run.create($address, $wkf_lists)
84
+ assert_nothing_raised(T2Server::AttributeNotFoundError) do
85
+ @run.upload_baclava_file($list_input)
86
+ end
87
+
84
88
  @run.start
85
89
  assert(@run.running?)
86
90
  assert_nothing_raised(T2Server::RunStateError) do
87
91
  @run.wait
88
92
  end
89
- assert_equal(@run.get_output("Output"), [["triangular green rabbit ",
90
- "triangular red cat "], ["circular green rabbit ", "circular red cat "],
91
- ["square green rabbit ", "square red cat "]])
93
+ assert_equal(@run.get_output("OUT"), [[["boo"]], [["", "hello"]],
94
+ [], [[], ["test"], []]])
92
95
 
93
- # run with baclava input and output
94
- @run = T2Server::Run.create($address, $wkf_input)
96
+ # run with baclava output
97
+ @run = T2Server::Run.create($address, $wkf_hello)
95
98
 
96
- assert_nothing_raised(T2Server::AttributeNotFoundError) do
97
- @run.upload_baclava_file($baclava_in)
98
- end
99
-
100
99
  assert_nothing_raised(T2Server::AttributeNotFoundError) do
101
100
  @run.set_baclava_output
102
101
  end
@@ -51,8 +51,8 @@ require 'tc_paths'
51
51
  if $address != ""
52
52
  $wkf_hello = File.read("test/workflows/hello.t2flow")
53
53
  $wkf_input = File.read("test/workflows/pipelined_list_iteration_902021.t2flow")
54
- $wkf_lists = File.read("test/workflows/demonstration_of_configurable_iteration_114130.t2flow")
55
- $baclava_in = "test/workflows/list_input.baclava"
54
+ $wkf_lists = File.read("test/workflows/empty_list.t2flow")
55
+ $list_input = "test/workflows/empty_list_input.baclava"
56
56
 
57
57
  require 'tc_server'
58
58
  require 'tc_run'
@@ -0,0 +1,12 @@
1
+ <workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="536f469a-fd80-4efa-8d76-6cb2514123ec" role="top"><name>Workflow1</name><inputPorts><port><name>IN</name><depth>2</depth><granularDepth>2</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>OUT</name><annotations /></port></outputPorts><processors /><conditions /><datalinks><datalink><sink type="dataflow"><port>OUT</port></sink><source type="dataflow"><port>IN</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
2
+ <annotationAssertions>
3
+ <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
4
+ <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
5
+ <identification>536f469a-fd80-4efa-8d76-6cb2514123ec</identification>
6
+ </annotationBean>
7
+ <date>2010-11-04 18:00:12.867 GMT</date>
8
+ <creators />
9
+ <curationEventList />
10
+ </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
11
+ </annotationAssertions>
12
+ </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
@@ -0,0 +1,77 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <b:dataThingMap xmlns:b="http://org.embl.ebi.escience/baclava/0.1alpha">
3
+ <b:dataThing key="IN">
4
+ <b:myGridDataDocument lsid="" syntactictype="l(l('null'))">
5
+ <s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" />
6
+ <b:partialOrder lsid="" type="list">
7
+ <b:relationList>
8
+ <b:relation parent="0" child="1" />
9
+ <b:relation parent="1" child="2" />
10
+ <b:relation parent="2" child="3" />
11
+ </b:relationList>
12
+ <b:itemList>
13
+ <b:partialOrder lsid="" type="list" index="0">
14
+ <b:relationList>
15
+ <b:relation parent="0" child="1" />
16
+ <b:relation parent="1" child="2" />
17
+ </b:relationList>
18
+ <b:itemList>
19
+ <b:partialOrder lsid="" type="list" index="0">
20
+ <b:relationList />
21
+ <b:itemList />
22
+ </b:partialOrder>
23
+ <b:partialOrder lsid="" type="list" index="1">
24
+ <b:relationList />
25
+ <b:itemList>
26
+ <b:dataElement lsid="" index="0">
27
+ <b:dataElementData>dGVzdA==</b:dataElementData>
28
+ </b:dataElement>
29
+ </b:itemList>
30
+ </b:partialOrder>
31
+ <b:partialOrder lsid="" type="list" index="2">
32
+ <b:relationList />
33
+ <b:itemList />
34
+ </b:partialOrder>
35
+ </b:itemList>
36
+ </b:partialOrder>
37
+ <b:partialOrder lsid="" type="list" index="1">
38
+ <b:relationList />
39
+ <b:itemList>
40
+ <b:partialOrder lsid="" type="list" index="0">
41
+ <b:relationList>
42
+ <b:relation parent="0" child="1" />
43
+ </b:relationList>
44
+ <b:itemList>
45
+ <b:dataElement lsid="" index="0">
46
+ <b:dataElementData>aGVsbG8=</b:dataElementData>
47
+ </b:dataElement>
48
+ <b:dataElement lsid="" index="1">
49
+ <b:dataElementData />
50
+ </b:dataElement>
51
+ </b:itemList>
52
+ </b:partialOrder>
53
+ </b:itemList>
54
+ </b:partialOrder>
55
+ <b:partialOrder lsid="" type="list" index="2">
56
+ <b:relationList />
57
+ <b:itemList>
58
+ <b:partialOrder lsid="" type="list" index="0">
59
+ <b:relationList />
60
+ <b:itemList>
61
+ <b:dataElement lsid="" index="0">
62
+ <b:dataElementData>Ym9v</b:dataElementData>
63
+ </b:dataElement>
64
+ </b:itemList>
65
+ </b:partialOrder>
66
+ </b:itemList>
67
+ </b:partialOrder>
68
+ <b:partialOrder lsid="" type="list" index="3">
69
+ <b:relationList />
70
+ <b:itemList />
71
+ </b:partialOrder>
72
+ </b:itemList>
73
+ </b:partialOrder>
74
+ </b:myGridDataDocument>
75
+ </b:dataThing>
76
+ </b:dataThingMap>
77
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: t2-server
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 1
10
- version: 0.5.1
9
+ - 2
10
+ version: 0.5.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Robert Haines
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-29 00:00:00 +01:00
18
+ date: 2010-11-05 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -75,9 +75,9 @@ files:
75
75
  - test/tc_server.rb
76
76
  - test/tc_paths.rb
77
77
  - test/tc_run.rb
78
- - test/workflows/list_input.baclava
79
78
  - test/workflows/pipelined_list_iteration_902021.t2flow
80
- - test/workflows/demonstration_of_configurable_iteration_114130.t2flow
79
+ - test/workflows/empty_list_input.baclava
80
+ - test/workflows/empty_list.t2flow
81
81
  - test/workflows/hello.t2flow
82
82
  - test/ts_t2server.rb
83
83
  - README.rdoc
@@ -1,335 +0,0 @@
1
- <workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="be152f54-e4a7-4324-9ce6-44438c5daed7" role="top"><name>Demonstrationofconfigurableiteration</name><inputPorts /><outputPorts><port><name>Output</name><annotations /></port></outputPorts><processors><processor><name>Colours</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
2
- <value>red ,green ,</value>
3
- </net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
4
- <maxJobs>1</maxJobs>
5
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
6
- <backoffFactor>1.0</backoffFactor>
7
- <initialDelay>0</initialDelay>
8
- <maxDelay>0</maxDelay>
9
- <maxRetries>0</maxRetries>
10
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>Animals</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
11
- <value>cat ,rabbit ,</value>
12
- </net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
13
- <maxJobs>1</maxJobs>
14
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
15
- <backoffFactor>1.0</backoffFactor>
16
- <initialDelay>0</initialDelay>
17
- <maxDelay>0</maxDelay>
18
- <maxRetries>0</maxRetries>
19
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>Shapes</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
20
- <value>square ,circular ,triangular ,</value>
21
- </net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
22
- <maxJobs>1</maxJobs>
23
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
24
- <backoffFactor>1.0</backoffFactor>
25
- <initialDelay>0</initialDelay>
26
- <maxDelay>0</maxDelay>
27
- <maxRetries>0</maxRetries>
28
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross /></strategy></iteration></iterationStrategyStack></processor><processor><name>ColoursLisr</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
29
- <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
30
- <script>List split = new ArrayList();
31
- if (!string.equals("")) {
32
- String regexString = ",";
33
- if (regex != void) {
34
- regexString = regex;
35
- }
36
- String[] result = string.split(regexString);
37
- for (int i = 0; i &lt; result.length; i++) {
38
- split.add(result[i]);
39
- }
40
- }
41
- </script>
42
- <dependencies />
43
- <classLoaderSharing>workflow</classLoaderSharing>
44
- <localDependencies />
45
- <artifactDependencies />
46
- <inputs>
47
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
48
- <handledReferenceSchemes />
49
- <translatedElementType>java.lang.String</translatedElementType>
50
- <allowsLiteralValues>true</allowsLiteralValues>
51
- <name>string</name>
52
- <depth>0</depth>
53
- <mimeTypes>
54
- <string>'text/plain'</string>
55
- </mimeTypes>
56
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
57
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
58
- <handledReferenceSchemes />
59
- <translatedElementType>java.lang.String</translatedElementType>
60
- <allowsLiteralValues>true</allowsLiteralValues>
61
- <name>regex</name>
62
- <depth>0</depth>
63
- <mimeTypes>
64
- <string>'text/plain'</string>
65
- </mimeTypes>
66
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
67
- </inputs>
68
- <outputs>
69
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
70
- <granularDepth>1</granularDepth>
71
- <name>split</name>
72
- <depth>1</depth>
73
- <mimeTypes>
74
- <string>l('text/plain')</string>
75
- </mimeTypes>
76
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
77
- </outputs>
78
- </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
79
- <maxJobs>1</maxJobs>
80
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
81
- <backoffFactor>1.0</backoffFactor>
82
- <initialDelay>1000</initialDelay>
83
- <maxDelay>5000</maxDelay>
84
- <maxRetries>0</maxRetries>
85
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>AnimalsList</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
86
- <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
87
- <script>List split = new ArrayList();
88
- if (!string.equals("")) {
89
- String regexString = ",";
90
- if (regex != void) {
91
- regexString = regex;
92
- }
93
- String[] result = string.split(regexString);
94
- for (int i = 0; i &lt; result.length; i++) {
95
- split.add(result[i]);
96
- }
97
- }
98
- </script>
99
- <dependencies />
100
- <classLoaderSharing>workflow</classLoaderSharing>
101
- <localDependencies />
102
- <artifactDependencies />
103
- <inputs>
104
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
105
- <handledReferenceSchemes />
106
- <translatedElementType>java.lang.String</translatedElementType>
107
- <allowsLiteralValues>true</allowsLiteralValues>
108
- <name>string</name>
109
- <depth>0</depth>
110
- <mimeTypes>
111
- <string>'text/plain'</string>
112
- </mimeTypes>
113
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
114
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
115
- <handledReferenceSchemes />
116
- <translatedElementType>java.lang.String</translatedElementType>
117
- <allowsLiteralValues>true</allowsLiteralValues>
118
- <name>regex</name>
119
- <depth>0</depth>
120
- <mimeTypes>
121
- <string>'text/plain'</string>
122
- </mimeTypes>
123
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
124
- </inputs>
125
- <outputs>
126
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
127
- <granularDepth>1</granularDepth>
128
- <name>split</name>
129
- <depth>1</depth>
130
- <mimeTypes>
131
- <string>l('text/plain')</string>
132
- </mimeTypes>
133
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
134
- </outputs>
135
- </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
136
- <maxJobs>1</maxJobs>
137
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
138
- <backoffFactor>1.0</backoffFactor>
139
- <initialDelay>1000</initialDelay>
140
- <maxDelay>5000</maxDelay>
141
- <maxRetries>0</maxRetries>
142
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>ShapesList</name><inputPorts><port><name>string</name><depth>0</depth></port></inputPorts><outputPorts><port><name>split</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string" to="string" /></inputMap><outputMap><map from="split" to="split" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
143
- <localworkerName>org.embl.ebi.escience.scuflworkers.java.SplitByRegex</localworkerName>
144
- <script>List split = new ArrayList();
145
- if (!string.equals("")) {
146
- String regexString = ",";
147
- if (regex != void) {
148
- regexString = regex;
149
- }
150
- String[] result = string.split(regexString);
151
- for (int i = 0; i &lt; result.length; i++) {
152
- split.add(result[i]);
153
- }
154
- }
155
- </script>
156
- <dependencies />
157
- <classLoaderSharing>workflow</classLoaderSharing>
158
- <localDependencies />
159
- <artifactDependencies />
160
- <inputs>
161
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
162
- <handledReferenceSchemes />
163
- <translatedElementType>java.lang.String</translatedElementType>
164
- <allowsLiteralValues>true</allowsLiteralValues>
165
- <name>string</name>
166
- <depth>0</depth>
167
- <mimeTypes>
168
- <string>'text/plain'</string>
169
- </mimeTypes>
170
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
171
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
172
- <handledReferenceSchemes />
173
- <translatedElementType>java.lang.String</translatedElementType>
174
- <allowsLiteralValues>true</allowsLiteralValues>
175
- <name>regex</name>
176
- <depth>0</depth>
177
- <mimeTypes>
178
- <string>'text/plain'</string>
179
- </mimeTypes>
180
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
181
- </inputs>
182
- <outputs>
183
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
184
- <granularDepth>1</granularDepth>
185
- <name>split</name>
186
- <depth>1</depth>
187
- <mimeTypes>
188
- <string>l('text/plain')</string>
189
- </mimeTypes>
190
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
191
- </outputs>
192
- </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
193
- <maxJobs>1</maxJobs>
194
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
195
- <backoffFactor>1.0</backoffFactor>
196
- <initialDelay>1000</initialDelay>
197
- <maxDelay>5000</maxDelay>
198
- <maxRetries>0</maxRetries>
199
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Concatenate_two_strings</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
200
- <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
201
- <script>output = string1 + string2;</script>
202
- <dependencies />
203
- <classLoaderSharing>workflow</classLoaderSharing>
204
- <localDependencies />
205
- <artifactDependencies />
206
- <inputs>
207
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
208
- <handledReferenceSchemes />
209
- <translatedElementType>java.lang.String</translatedElementType>
210
- <allowsLiteralValues>true</allowsLiteralValues>
211
- <name>string1</name>
212
- <depth>0</depth>
213
- <mimeTypes>
214
- <string>'text/plain'</string>
215
- </mimeTypes>
216
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
217
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
218
- <handledReferenceSchemes />
219
- <translatedElementType>java.lang.String</translatedElementType>
220
- <allowsLiteralValues>true</allowsLiteralValues>
221
- <name>string2</name>
222
- <depth>0</depth>
223
- <mimeTypes>
224
- <string>'text/plain'</string>
225
- </mimeTypes>
226
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
227
- </inputs>
228
- <outputs>
229
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
230
- <granularDepth>0</granularDepth>
231
- <name>output</name>
232
- <depth>0</depth>
233
- <mimeTypes>
234
- <string>'text/plain'</string>
235
- </mimeTypes>
236
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
237
- </outputs>
238
- </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
239
- <maxJobs>1</maxJobs>
240
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
241
- <backoffFactor>1.0</backoffFactor>
242
- <initialDelay>1000</initialDelay>
243
- <maxDelay>5000</maxDelay>
244
- <maxRetries>0</maxRetries>
245
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><dot><port name="string1" depth="0" /><port name="string2" depth="0" /></dot></strategy></iteration></iterationStrategyStack></processor><processor><name>ShapeAnimals</name><inputPorts><port><name>string2</name><depth>0</depth></port><port><name>string1</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
246
- <localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
247
- <script>output = string1 + string2;</script>
248
- <dependencies />
249
- <classLoaderSharing>workflow</classLoaderSharing>
250
- <localDependencies />
251
- <artifactDependencies />
252
- <inputs>
253
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
254
- <handledReferenceSchemes />
255
- <translatedElementType>java.lang.String</translatedElementType>
256
- <allowsLiteralValues>true</allowsLiteralValues>
257
- <name>string1</name>
258
- <depth>0</depth>
259
- <mimeTypes>
260
- <string>'text/plain'</string>
261
- </mimeTypes>
262
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
263
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
264
- <handledReferenceSchemes />
265
- <translatedElementType>java.lang.String</translatedElementType>
266
- <allowsLiteralValues>true</allowsLiteralValues>
267
- <name>string2</name>
268
- <depth>0</depth>
269
- <mimeTypes>
270
- <string>'text/plain'</string>
271
- </mimeTypes>
272
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
273
- </inputs>
274
- <outputs>
275
- <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
276
- <granularDepth>0</granularDepth>
277
- <name>output</name>
278
- <depth>0</depth>
279
- <mimeTypes>
280
- <string>'text/plain'</string>
281
- </mimeTypes>
282
- </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
283
- </outputs>
284
- </net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
285
- <maxJobs>1</maxJobs>
286
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
287
- <backoffFactor>1.0</backoffFactor>
288
- <initialDelay>1000</initialDelay>
289
- <maxDelay>5000</maxDelay>
290
- <maxRetries>0</maxRetries>
291
- </net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string1" depth="0" /><port name="string2" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>ColoursLisr</processor><port>string</port></sink><source type="processor"><processor>Colours</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>AnimalsList</processor><port>string</port></sink><source type="processor"><processor>Animals</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>ShapesList</processor><port>string</port></sink><source type="processor"><processor>Shapes</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>ColoursLisr</processor><port>split</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="processor"><processor>AnimalsList</processor><port>split</port></source></datalink><datalink><sink type="processor"><processor>ShapeAnimals</processor><port>string2</port></sink><source type="processor"><processor>Concatenate_two_strings</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>ShapeAnimals</processor><port>string1</port></sink><source type="processor"><processor>ShapesList</processor><port>split</port></source></datalink><datalink><sink type="dataflow"><port>Output</port></sink><source type="processor"><processor>ShapeAnimals</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
292
- <annotationAssertions>
293
- <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
294
- <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
295
- <text>This workflow shows the use of the iteration strategy editor to ensure that only relevant combinations of inputs are used during an implicit iteration.</text>
296
- </annotationBean>
297
- <date>2009-06-29 15:44:05.675 BST</date>
298
- <creators />
299
- <curationEventList />
300
- </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
301
- </annotationAssertions>
302
- </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
303
- <annotationAssertions>
304
- <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
305
- <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
306
- <text>Tom Oinn</text>
307
- </annotationBean>
308
- <date>2009-06-29 15:44:05.675 BST</date>
309
- <creators />
310
- <curationEventList />
311
- </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
312
- </annotationAssertions>
313
- </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
314
- <annotationAssertions>
315
- <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
316
- <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
317
- <identification>be152f54-e4a7-4324-9ce6-44438c5daed7</identification>
318
- </annotationBean>
319
- <date>2010-07-04 18:12:25.361 BST</date>
320
- <creators />
321
- <curationEventList />
322
- </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
323
- </annotationAssertions>
324
- </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
325
- <annotationAssertions>
326
- <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
327
- <annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
328
- <text>Demonstration of configurable iteration</text>
329
- </annotationBean>
330
- <date>2009-06-29 15:44:05.675 BST</date>
331
- <creators />
332
- <curationEventList />
333
- </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
334
- </annotationAssertions>
335
- </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></dataflow></workflow>
@@ -1,16 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <b:dataThingMap xmlns:b="http://org.embl.ebi.escience/baclava/0.1alpha">
3
- <b:dataThing key="input">
4
- <b:myGridDataDocument lsid="" syntactictype="'text/plain'">
5
- <s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha">
6
- <s:mimeTypes>
7
- <s:mimeType>text/plain</s:mimeType>
8
- </s:mimeTypes>
9
- </s:metadata>
10
- <b:dataElement lsid="">
11
- <b:dataElementData>MTA=</b:dataElementData>
12
- </b:dataElement>
13
- </b:myGridDataDocument>
14
- </b:dataThing>
15
- </b:dataThingMap>
16
-