t2-server 0.5.3 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.rdoc +13 -0
- data/README.rdoc +1 -1
- data/bin/t2-run-workflow +17 -22
- data/bin/t2-server-info +7 -4
- data/lib/t2-server/run.rb +75 -52
- data/lib/t2-server/server.rb +3 -1
- data/lib/t2-server.rb +1 -1
- data/test/tc_run.rb +16 -12
- data/test/tc_server.rb +2 -2
- data/test/ts_t2server.rb +18 -12
- data/test/workflows/empty_list.t2flow +22 -22
- data/test/workflows/empty_list_input.baclava +86 -86
- data/test/workflows/in.txt +1 -0
- data/test/workflows/pass_through.t2flow +12 -0
- metadata +23 -7
- data/test/workflows/hello.t2flow +0 -21
- data/test/workflows/pipelined_list_iteration_902021.t2flow +0 -303
data/CHANGES.rdoc
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
= Changes log for the T2 Ruby Gem
|
2
2
|
|
3
|
+
== Version 0.6.0
|
4
|
+
|
5
|
+
* Add a new API call Run#get_output_ports
|
6
|
+
* Remove Run#ls from the API.
|
7
|
+
* Refactor the code that builds output port lists.
|
8
|
+
* Update and streamline test suite.
|
9
|
+
* Parameterize the Rakefile for use in CI.
|
10
|
+
* Return dates as instances of class Time.
|
11
|
+
* Allow expiry dates to be specified in human readable formats.
|
12
|
+
* Workaround for CXF bug upon server start-up.
|
13
|
+
* t2-run-workflow: accept files as inputs.
|
14
|
+
* Tabulate run information.
|
15
|
+
|
3
16
|
== Version 0.5.3
|
4
17
|
|
5
18
|
* Fix an issue with singleton value/empty list confusion for output ports.
|
data/README.rdoc
CHANGED
data/bin/t2-run-workflow
CHANGED
@@ -35,29 +35,9 @@ require 'rubygems'
|
|
35
35
|
require 't2-server'
|
36
36
|
require 'optparse'
|
37
37
|
|
38
|
-
# go through the outputs and either print the contents
|
39
|
-
# out or save them to a file.
|
40
|
-
# if the output is a list, it appears as a directory so
|
41
|
-
# all the individual entries must be grabbed from there.
|
42
|
-
def get_outputs(run, refs)
|
43
|
-
# get a list of the outputs
|
44
|
-
lists, items = run.ls("out")
|
45
|
-
|
46
|
-
# go through the lists
|
47
|
-
lists.each do |l|
|
48
|
-
print " #{l} -> "
|
49
|
-
p run.get_output("#{l}", refs)
|
50
|
-
end
|
51
|
-
|
52
|
-
# go through the singletons
|
53
|
-
items.each do |i|
|
54
|
-
print " #{i} -> "
|
55
|
-
p run.get_output("#{i}", refs)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
38
|
# set up options
|
60
39
|
inputs = {}
|
40
|
+
files = {}
|
61
41
|
wkf_file = ""
|
62
42
|
output_refs = false
|
63
43
|
baclava_out = ""
|
@@ -76,6 +56,11 @@ opts = OptionParser.new do |opt|
|
|
76
56
|
input, value = val.chomp.split(':', 2)
|
77
57
|
inputs[input] = value
|
78
58
|
end
|
59
|
+
opt.on("-f INPUT:FILE", "--input-file=INPUT:FILE",
|
60
|
+
"Set input port INPUT to use the contents of FILE as its input") do |val|
|
61
|
+
input, filename = val.chomp.split(':', 2)
|
62
|
+
files[input] = filename
|
63
|
+
end
|
79
64
|
opt.on("-b BACLAVA", "--baclava-in=BACLAVA", "Set baclava file for input port values") do |val|
|
80
65
|
inputs[:baclava] = val
|
81
66
|
end
|
@@ -143,6 +128,12 @@ else
|
|
143
128
|
puts "Set input '#{input}' to #{value}"
|
144
129
|
run.set_input(input, value)
|
145
130
|
end
|
131
|
+
|
132
|
+
files.each do |input, file|
|
133
|
+
name = file.split("/")[-1];
|
134
|
+
puts "Set input '#{input}' to use file '#{name}'"
|
135
|
+
run.upload_input_file(input, file)
|
136
|
+
end
|
146
137
|
end
|
147
138
|
|
148
139
|
# output baclava?
|
@@ -170,8 +161,12 @@ if exitcd == 0
|
|
170
161
|
end
|
171
162
|
puts "Baclava file written to '#{baclava_out}'"
|
172
163
|
else
|
164
|
+
# go through the outputs and print them out
|
173
165
|
puts "Outputs:"
|
174
|
-
|
166
|
+
run.get_output_ports.each do |o|
|
167
|
+
print " #{o} -> "
|
168
|
+
p run.get_output("#{o}", output_refs)
|
169
|
+
end
|
175
170
|
end
|
176
171
|
end
|
177
172
|
|
data/bin/t2-server-info
CHANGED
@@ -34,6 +34,7 @@
|
|
34
34
|
require 'rubygems'
|
35
35
|
require 't2-server'
|
36
36
|
require 'optparse'
|
37
|
+
require 'hirb'
|
37
38
|
|
38
39
|
opts = OptionParser.new do |opt|
|
39
40
|
opt.banner = "Usage: t2-server-info [options] server-address"
|
@@ -70,10 +71,12 @@ begin
|
|
70
71
|
runs = server.runs
|
71
72
|
print "No. of runs: #{runs.length}\n"
|
72
73
|
if runs.length > 0
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
74
|
+
puts (Hirb::Helpers::ObjectTable.render runs,
|
75
|
+
:fields=>[:uuid, :status, :expiry],
|
76
|
+
:headers=>{:uuid=>'Run ID', :status=>'Status', :expiry=>'Expiry time (local)'},
|
77
|
+
:filters=>{:expiry=>[:strftime, "%H:%M:%S %d/%m/%Y"]},
|
78
|
+
:max_fields=>{:expiry=>19},
|
79
|
+
:description=>false)
|
77
80
|
end
|
78
81
|
rescue T2Server::T2ServerError => e
|
79
82
|
puts e
|
data/lib/t2-server/run.rb
CHANGED
@@ -32,6 +32,7 @@
|
|
32
32
|
|
33
33
|
require 'rubygems'
|
34
34
|
require 'libxml'
|
35
|
+
require 'time'
|
35
36
|
|
36
37
|
module T2Server
|
37
38
|
|
@@ -136,6 +137,15 @@ module T2Server
|
|
136
137
|
@server.set_run_input_file(self, input, filename)
|
137
138
|
end
|
138
139
|
|
140
|
+
# :call-seq:
|
141
|
+
# run.get_output_ports -> list
|
142
|
+
#
|
143
|
+
# Return a list of all the output ports
|
144
|
+
def get_output_ports
|
145
|
+
lists, items = _ls_ports("out")
|
146
|
+
items + lists
|
147
|
+
end
|
148
|
+
|
139
149
|
# :call-seq:
|
140
150
|
# run.get_output(output, refs=false) -> string or list
|
141
151
|
#
|
@@ -163,19 +173,24 @@ module T2Server
|
|
163
173
|
# :call-seq:
|
164
174
|
# run.expiry -> string
|
165
175
|
#
|
166
|
-
# Return the expiry time of this run
|
167
|
-
# timestamp.
|
176
|
+
# Return the expiry time of this run as an instance of class Time.
|
168
177
|
def expiry
|
169
|
-
@server.get_run_attribute(@uuid, @links[:expiry])
|
178
|
+
Time.parse(@server.get_run_attribute(@uuid, @links[:expiry]))
|
170
179
|
end
|
171
180
|
|
172
181
|
# :call-seq:
|
173
182
|
# run.expiry=(time) -> bool
|
174
183
|
#
|
175
184
|
# Set the expiry time of this run to _time_. The format of _time_ should
|
176
|
-
# be
|
177
|
-
|
178
|
-
|
185
|
+
# be something that the Ruby Time class can parse. If the value given does
|
186
|
+
# not specify a date then today's date will be assumed. If a time/date in
|
187
|
+
# the past is specified, the expiry time will not be changed.
|
188
|
+
def expiry=(time)
|
189
|
+
# need to massage the xmlschema format slightly as the server cannot
|
190
|
+
# parse timezone offsets with a colon (eg +00:00)
|
191
|
+
date_str = Time.parse(time).xmlschema(2)
|
192
|
+
date_str = date_str[0..-4] + date_str[-2..-1]
|
193
|
+
@server.set_run_attribute(@uuid, @links[:expiry], date_str)
|
179
194
|
end
|
180
195
|
|
181
196
|
# :call-seq:
|
@@ -363,44 +378,6 @@ module T2Server
|
|
363
378
|
@server.get_run_attribute(@uuid, "#{@links[:wdir]}/#{@baclava_out}")
|
364
379
|
end
|
365
380
|
|
366
|
-
# :call-seq:
|
367
|
-
# run.ls(dir="") -> [[dirs], [objects]]
|
368
|
-
#
|
369
|
-
# List a directory in the run's workspace on the server. If _dir_ is left
|
370
|
-
# blank then / is listed. As there is no concept of changing into a
|
371
|
-
# directory (_cd_) in Taverna Server then all paths passed into _ls_
|
372
|
-
# should be full paths starting at "root". The contents of a directory are
|
373
|
-
# returned as a list of two lists, "directories" and "objects"
|
374
|
-
# respectively. In the case of listing the contents of the "out"
|
375
|
-
# directory, the "directories" returned by _ls_ are actually output port
|
376
|
-
# names and their contents are the values held by these ports. If there
|
377
|
-
# are multiple values listed then that port represents a list. If there
|
378
|
-
# are further directories below a port name then it is a list of lists.
|
379
|
-
def ls(dir="")
|
380
|
-
dir.strip_path!
|
381
|
-
dir_list = @server.get_run_attribute(@uuid, "#{@links[:wdir]}/#{dir}")
|
382
|
-
|
383
|
-
# compile a list of directory entries stripping the
|
384
|
-
# directory name from the front of each filename
|
385
|
-
dirs = []
|
386
|
-
files = []
|
387
|
-
|
388
|
-
begin
|
389
|
-
doc = XML::Document.string(dir_list)
|
390
|
-
|
391
|
-
doc.find(XPaths::DIR, Namespaces::MAP).each {|e| dirs << e.content.split('/')[-1]}
|
392
|
-
doc.find(XPaths::FILE, Namespaces::MAP).each {|e| files << e.content.split('/')[-1]}
|
393
|
-
rescue XML::Error => xmle
|
394
|
-
# We expect to get a DOCUMENT_EMPTY error in some cases. All others
|
395
|
-
# should be re-raised.
|
396
|
-
if xmle.code != XML::Error::DOCUMENT_EMPTY
|
397
|
-
raise xmle
|
398
|
-
end
|
399
|
-
end
|
400
|
-
|
401
|
-
[dirs, files]
|
402
|
-
end
|
403
|
-
|
404
381
|
# :call-seq:
|
405
382
|
# run.initialized? -> bool
|
406
383
|
#
|
@@ -428,35 +405,81 @@ module T2Server
|
|
428
405
|
# :call-seq:
|
429
406
|
# run.create_time -> string
|
430
407
|
#
|
431
|
-
# Get the creation time of this run
|
408
|
+
# Get the creation time of this run as an instance of class Time.
|
432
409
|
def create_time
|
433
|
-
@server.get_run_attribute(@uuid, @links[:createtime])
|
410
|
+
Time.parse(@server.get_run_attribute(@uuid, @links[:createtime]))
|
434
411
|
end
|
435
412
|
|
436
413
|
# :call-seq:
|
437
414
|
# run.start_time -> string
|
438
415
|
#
|
439
|
-
# Get the start time of this run
|
416
|
+
# Get the start time of this run as an instance of class Time.
|
440
417
|
def start_time
|
441
|
-
@server.get_run_attribute(@uuid, @links[:starttime])
|
418
|
+
Time.parse(@server.get_run_attribute(@uuid, @links[:starttime]))
|
442
419
|
end
|
443
420
|
|
444
421
|
# :call-seq:
|
445
422
|
# run.finish_time -> string
|
446
423
|
#
|
447
|
-
# Get the finish time of this run
|
424
|
+
# Get the finish time of this run as an instance of class Time.
|
448
425
|
def finish_time
|
449
|
-
@server.get_run_attribute(@uuid, @links[:finishtime])
|
426
|
+
Time.parse(@server.get_run_attribute(@uuid, @links[:finishtime]))
|
450
427
|
end
|
451
428
|
|
452
429
|
private
|
430
|
+
|
431
|
+
# List a directory in the run's workspace on the server. If dir is left
|
432
|
+
# blank then / is listed. As there is no concept of changing into a
|
433
|
+
# directory (cd) in Taverna Server then all paths passed into _ls_ports
|
434
|
+
# should be full paths starting at "root". The contents of a directory are
|
435
|
+
# returned as a list of two lists, "lists" and "values" respectively.
|
436
|
+
def _ls_ports(dir="", top=true)
|
437
|
+
dir.strip_path!
|
438
|
+
dir_list = @server.get_run_attribute(@uuid, "#{@links[:wdir]}/#{dir}")
|
439
|
+
|
440
|
+
# compile a list of directory entries stripping the
|
441
|
+
# directory name from the front of each filename
|
442
|
+
lists = []
|
443
|
+
values = []
|
444
|
+
|
445
|
+
begin
|
446
|
+
doc = XML::Document.string(dir_list)
|
447
|
+
|
448
|
+
doc.find(XPaths::DIR, Namespaces::MAP).each do |e|
|
449
|
+
if top
|
450
|
+
lists << e.content.split('/')[-1]
|
451
|
+
else
|
452
|
+
index = (e.attributes['name'].to_i - 1)
|
453
|
+
lists[index] = e.content.split('/')[-1]
|
454
|
+
end
|
455
|
+
end
|
456
|
+
|
457
|
+
doc.find(XPaths::FILE, Namespaces::MAP).each do |e|
|
458
|
+
if top
|
459
|
+
values << e.content.split('/')[-1]
|
460
|
+
else
|
461
|
+
index = (e.attributes['name'].to_i - 1)
|
462
|
+
values[index] = e.content.split('/')[-1]
|
463
|
+
end
|
464
|
+
end
|
465
|
+
rescue XML::Error => xmle
|
466
|
+
# We expect to get a DOCUMENT_EMPTY error in some cases. All others
|
467
|
+
# should be re-raised.
|
468
|
+
if xmle.code != XML::Error::DOCUMENT_EMPTY
|
469
|
+
raise xmle
|
470
|
+
end
|
471
|
+
end
|
472
|
+
|
473
|
+
[lists, values]
|
474
|
+
end
|
475
|
+
|
453
476
|
def _get_output(output, refs=false, top=true)
|
454
477
|
output.strip_path!
|
455
478
|
|
456
479
|
# if at the top level we need to check if the port represents a list
|
457
480
|
# or a singleton value
|
458
481
|
if top
|
459
|
-
lists, items =
|
482
|
+
lists, items = _ls_ports("out")
|
460
483
|
if items.include? output
|
461
484
|
if refs
|
462
485
|
return "#{@server.uri}/rest/runs/#{@uuid}/#{@links[:wdir]}/out/#{output}"
|
@@ -467,7 +490,7 @@ module T2Server
|
|
467
490
|
end
|
468
491
|
|
469
492
|
# we're not at the top level so look at the contents of the output port
|
470
|
-
lists, items =
|
493
|
+
lists, items = _ls_ports("out/#{output}", false)
|
471
494
|
|
472
495
|
# build up lists of results
|
473
496
|
result = []
|
data/lib/t2-server/server.rb
CHANGED
@@ -79,7 +79,9 @@ module T2Server
|
|
79
79
|
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
80
80
|
end
|
81
81
|
|
82
|
-
|
82
|
+
# add a slash to the end of this address to work around this bug:
|
83
|
+
# http://www.mygrid.org.uk/dev/issues/browse/TAVSERV-113
|
84
|
+
@links = parse_description(get_attribute("#{@rest_path}/"))
|
83
85
|
#@links.each {|key, val| puts "#{key}: #{val}"}
|
84
86
|
|
85
87
|
# get max runs
|
data/lib/t2-server.rb
CHANGED
@@ -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.
|
46
|
+
GEM_VERSION = "0.6.0"
|
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
|
data/test/tc_run.rb
CHANGED
@@ -37,7 +37,7 @@ class TestRun < Test::Unit::TestCase
|
|
37
37
|
def test_run
|
38
38
|
# connection
|
39
39
|
assert_nothing_raised(T2Server::ConnectionError) do
|
40
|
-
@run = T2Server::Run.create($address, $
|
40
|
+
@run = T2Server::Run.create($address, $wkf_pass)
|
41
41
|
end
|
42
42
|
|
43
43
|
# test bad state code
|
@@ -45,11 +45,13 @@ class TestRun < Test::Unit::TestCase
|
|
45
45
|
@run.wait
|
46
46
|
end
|
47
47
|
|
48
|
-
# test mkdir
|
48
|
+
# test mkdir
|
49
49
|
assert(@run.mkdir("test"))
|
50
|
-
assert_equal(@run.ls, [["test"], []])
|
51
50
|
|
52
|
-
# start, state and wait
|
51
|
+
# set input, start, check state and wait
|
52
|
+
assert_nothing_raised(T2Server::AttributeNotFoundError) do
|
53
|
+
@run.set_input("IN", "Hello, World!")
|
54
|
+
end
|
53
55
|
@run.start
|
54
56
|
assert(@run.running?)
|
55
57
|
assert_nothing_raised(T2Server::RunStateError) do
|
@@ -58,7 +60,7 @@ class TestRun < Test::Unit::TestCase
|
|
58
60
|
|
59
61
|
# exitcode and output
|
60
62
|
assert_instance_of(Fixnum, @run.exitcode)
|
61
|
-
assert_equal(@run.get_output("
|
63
|
+
assert_equal(@run.get_output("OUT"), "Hello, World!")
|
62
64
|
assert_raise(T2Server::AccessForbiddenError) do
|
63
65
|
@run.get_output("wrong!")
|
64
66
|
end
|
@@ -66,11 +68,11 @@ class TestRun < Test::Unit::TestCase
|
|
66
68
|
# deletion
|
67
69
|
assert(@run.delete)
|
68
70
|
|
69
|
-
# run
|
70
|
-
@run = T2Server::Run.create($address, $
|
71
|
+
# run with file input
|
72
|
+
@run = T2Server::Run.create($address, $wkf_pass)
|
71
73
|
|
72
74
|
assert_nothing_raised(T2Server::AttributeNotFoundError) do
|
73
|
-
@run.
|
75
|
+
@run.upload_input_file("IN", $file_input)
|
74
76
|
end
|
75
77
|
|
76
78
|
@run.start
|
@@ -78,6 +80,7 @@ class TestRun < Test::Unit::TestCase
|
|
78
80
|
assert_nothing_raised(T2Server::RunStateError) do
|
79
81
|
@run.wait
|
80
82
|
end
|
83
|
+
assert_equal(@run.get_output("OUT"), "Hello, World!")
|
81
84
|
|
82
85
|
# run that returns list of lists, some empty, using baclava for input
|
83
86
|
@run = T2Server::Run.create($address, $wkf_lists)
|
@@ -90,13 +93,14 @@ class TestRun < Test::Unit::TestCase
|
|
90
93
|
assert_nothing_raised(T2Server::RunStateError) do
|
91
94
|
@run.wait
|
92
95
|
end
|
96
|
+
assert_equal(@run.get_output_ports, ["SINGLE", "MANY"])
|
93
97
|
assert_equal(@run.get_output("SINGLE"), [])
|
94
|
-
assert_equal(@run.get_output("MANY"),
|
95
|
-
[]], [["
|
98
|
+
assert_equal(@run.get_output("MANY"),
|
99
|
+
[[["boo"]], [["", "Hello"]], [], [[], ["test"], []]])
|
96
100
|
|
97
101
|
# run with baclava output
|
98
|
-
@run = T2Server::Run.create($address, $
|
99
|
-
|
102
|
+
@run = T2Server::Run.create($address, $wkf_pass)
|
103
|
+
@run.set_input("IN", "Some input...")
|
100
104
|
assert_nothing_raised(T2Server::AttributeNotFoundError) do
|
101
105
|
@run.set_baclava_output
|
102
106
|
end
|
data/test/tc_server.rb
CHANGED
@@ -43,7 +43,7 @@ class TestServer < Test::Unit::TestCase
|
|
43
43
|
|
44
44
|
# run creation
|
45
45
|
assert_nothing_raised(T2Server::T2ServerError) do
|
46
|
-
@run = @server.create_run($
|
46
|
+
@run = @server.create_run($wkf_pass)
|
47
47
|
end
|
48
48
|
|
49
49
|
# capacity
|
@@ -51,7 +51,7 @@ class TestServer < Test::Unit::TestCase
|
|
51
51
|
assert_instance_of(Fixnum, limit)
|
52
52
|
assert_raise(T2Server::ServerAtCapacityError) do
|
53
53
|
limit.times do
|
54
|
-
@server.create_run($
|
54
|
+
@server.create_run($wkf_pass)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
data/test/ts_t2server.rb
CHANGED
@@ -33,26 +33,32 @@
|
|
33
33
|
require 'test/unit'
|
34
34
|
require 't2-server'
|
35
35
|
|
36
|
-
#
|
37
|
-
|
38
|
-
|
39
|
-
"
|
40
|
-
"deleted!\n(leave blank to skip tests): "
|
41
|
-
$stdout.flush
|
42
|
-
if select([$stdin], [], [], 30)
|
43
|
-
$address = $stdin.gets.chomp
|
36
|
+
# check for a server address passed through on the command line
|
37
|
+
if ARGV.size != 0:
|
38
|
+
$address = ARGV[0]
|
39
|
+
puts "Using server at #{$address}"
|
44
40
|
else
|
45
|
-
|
46
|
-
|
41
|
+
# get a server address to test - 30 second timeout
|
42
|
+
print "\nPlease supply a valid Taverna 2 Server address.\n\nNOTE that " +
|
43
|
+
"these tests will fully load the server and then delete all the runs " +
|
44
|
+
"that it has permission to do so - if you are not using security ALL " +
|
45
|
+
"runs will be deleted!\n(leave blank to skip tests): "
|
46
|
+
$stdout.flush
|
47
|
+
if select([$stdin], [], [], 30)
|
48
|
+
$address = $stdin.gets.chomp
|
49
|
+
else
|
50
|
+
puts "\nSkipping tests that require a Taverna 2 Server instance..."
|
51
|
+
$address = ""
|
52
|
+
end
|
47
53
|
end
|
48
54
|
|
49
55
|
# the testcases to run
|
50
56
|
require 'tc_paths'
|
51
57
|
if $address != ""
|
52
|
-
$
|
53
|
-
$wkf_input = File.read("test/workflows/pipelined_list_iteration_902021.t2flow")
|
58
|
+
$wkf_pass = File.read("test/workflows/pass_through.t2flow")
|
54
59
|
$wkf_lists = File.read("test/workflows/empty_list.t2flow")
|
55
60
|
$list_input = "test/workflows/empty_list_input.baclava"
|
61
|
+
$file_input = "test/workflows/in.txt"
|
56
62
|
|
57
63
|
require 'tc_server'
|
58
64
|
require 'tc_run'
|
@@ -1,23 +1,23 @@
|
|
1
|
-
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="373bb615-7dd3-46b4-9e3c-ee38e7460403" role="top"><name>Workflow1</name><inputPorts><port><name>MANY_IN</name><depth>3</depth><granularDepth>3</granularDepth><annotations /></port><port><name>SINGLE_IN</name><depth>1</depth><granularDepth>1</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>MANY</name><annotations /></port><port><name>SINGLE</name><annotations /></port></outputPorts><processors /><conditions /><datalinks><datalink><sink type="dataflow"><port>MANY</port></sink><source type="dataflow"><port>MANY_IN</port></source></datalink><datalink><sink type="dataflow"><port>SINGLE</port></sink><source type="dataflow"><port>SINGLE_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><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
13
|
-
<annotationAssertions>
|
14
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
15
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
|
16
|
-
<identification>373bb615-7dd3-46b4-9e3c-ee38e7460403</identification>
|
17
|
-
</annotationBean>
|
18
|
-
<date>2010-11-09 13:50:13.127 GMT</date>
|
19
|
-
<creators />
|
20
|
-
<curationEventList />
|
21
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
22
|
-
</annotationAssertions>
|
1
|
+
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="373bb615-7dd3-46b4-9e3c-ee38e7460403" role="top"><name>Workflow1</name><inputPorts><port><name>MANY_IN</name><depth>3</depth><granularDepth>3</granularDepth><annotations /></port><port><name>SINGLE_IN</name><depth>1</depth><granularDepth>1</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>MANY</name><annotations /></port><port><name>SINGLE</name><annotations /></port></outputPorts><processors /><conditions /><datalinks><datalink><sink type="dataflow"><port>MANY</port></sink><source type="dataflow"><port>MANY_IN</port></source></datalink><datalink><sink type="dataflow"><port>SINGLE</port></sink><source type="dataflow"><port>SINGLE_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><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
13
|
+
<annotationAssertions>
|
14
|
+
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
15
|
+
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
|
16
|
+
<identification>373bb615-7dd3-46b4-9e3c-ee38e7460403</identification>
|
17
|
+
</annotationBean>
|
18
|
+
<date>2010-11-09 13:50:13.127 GMT</date>
|
19
|
+
<creators />
|
20
|
+
<curationEventList />
|
21
|
+
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
22
|
+
</annotationAssertions>
|
23
23
|
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
|
@@ -1,86 +1,86 @@
|
|
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="MANY_IN">
|
4
|
-
<b:myGridDataDocument lsid="" syntactictype="l(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:itemList>
|
16
|
-
<b:partialOrder lsid="" type="list" index="0">
|
17
|
-
<b:relationList />
|
18
|
-
<b:itemList>
|
19
|
-
<b:dataElement lsid="" index="0">
|
20
|
-
<b:dataElementData>Ym9v</b:dataElementData>
|
21
|
-
</b:dataElement>
|
22
|
-
</b:itemList>
|
23
|
-
</b:partialOrder>
|
24
|
-
</b:itemList>
|
25
|
-
</b:partialOrder>
|
26
|
-
<b:partialOrder lsid="" type="list" index="1">
|
27
|
-
<b:relationList />
|
28
|
-
<b:itemList>
|
29
|
-
<b:partialOrder lsid="" type="list" index="0">
|
30
|
-
<b:relationList>
|
31
|
-
<b:relation parent="0" child="1" />
|
32
|
-
</b:relationList>
|
33
|
-
<b:itemList>
|
34
|
-
<b:dataElement lsid="" index="0">
|
35
|
-
<b:dataElementData />
|
36
|
-
</b:dataElement>
|
37
|
-
<b:dataElement lsid="" index="1">
|
38
|
-
<b:dataElementData>SGVsbG8=</b:dataElementData>
|
39
|
-
</b:dataElement>
|
40
|
-
</b:itemList>
|
41
|
-
</b:partialOrder>
|
42
|
-
</b:itemList>
|
43
|
-
</b:partialOrder>
|
44
|
-
<b:partialOrder lsid="" type="list" index="2">
|
45
|
-
<b:relationList />
|
46
|
-
<b:itemList />
|
47
|
-
</b:partialOrder>
|
48
|
-
<b:partialOrder lsid="" type="list" index="3">
|
49
|
-
<b:relationList>
|
50
|
-
<b:relation parent="0" child="1" />
|
51
|
-
<b:relation parent="1" child="2" />
|
52
|
-
</b:relationList>
|
53
|
-
<b:itemList>
|
54
|
-
<b:partialOrder lsid="" type="list" index="0">
|
55
|
-
<b:relationList />
|
56
|
-
<b:itemList />
|
57
|
-
</b:partialOrder>
|
58
|
-
<b:partialOrder lsid="" type="list" index="1">
|
59
|
-
<b:relationList />
|
60
|
-
<b:itemList>
|
61
|
-
<b:dataElement lsid="" index="0">
|
62
|
-
<b:dataElementData>dGVzdA==</b:dataElementData>
|
63
|
-
</b:dataElement>
|
64
|
-
</b:itemList>
|
65
|
-
</b:partialOrder>
|
66
|
-
<b:partialOrder lsid="" type="list" index="2">
|
67
|
-
<b:relationList />
|
68
|
-
<b:itemList />
|
69
|
-
</b:partialOrder>
|
70
|
-
</b:itemList>
|
71
|
-
</b:partialOrder>
|
72
|
-
</b:itemList>
|
73
|
-
</b:partialOrder>
|
74
|
-
</b:myGridDataDocument>
|
75
|
-
</b:dataThing>
|
76
|
-
<b:dataThing key="SINGLE_IN">
|
77
|
-
<b:myGridDataDocument lsid="" syntactictype="l('null')">
|
78
|
-
<s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" />
|
79
|
-
<b:partialOrder lsid="" type="list">
|
80
|
-
<b:relationList />
|
81
|
-
<b:itemList />
|
82
|
-
</b:partialOrder>
|
83
|
-
</b:myGridDataDocument>
|
84
|
-
</b:dataThing>
|
85
|
-
</b:dataThingMap>
|
86
|
-
|
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="MANY_IN">
|
4
|
+
<b:myGridDataDocument lsid="" syntactictype="l(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:itemList>
|
16
|
+
<b:partialOrder lsid="" type="list" index="0">
|
17
|
+
<b:relationList />
|
18
|
+
<b:itemList>
|
19
|
+
<b:dataElement lsid="" index="0">
|
20
|
+
<b:dataElementData>Ym9v</b:dataElementData>
|
21
|
+
</b:dataElement>
|
22
|
+
</b:itemList>
|
23
|
+
</b:partialOrder>
|
24
|
+
</b:itemList>
|
25
|
+
</b:partialOrder>
|
26
|
+
<b:partialOrder lsid="" type="list" index="1">
|
27
|
+
<b:relationList />
|
28
|
+
<b:itemList>
|
29
|
+
<b:partialOrder lsid="" type="list" index="0">
|
30
|
+
<b:relationList>
|
31
|
+
<b:relation parent="0" child="1" />
|
32
|
+
</b:relationList>
|
33
|
+
<b:itemList>
|
34
|
+
<b:dataElement lsid="" index="0">
|
35
|
+
<b:dataElementData />
|
36
|
+
</b:dataElement>
|
37
|
+
<b:dataElement lsid="" index="1">
|
38
|
+
<b:dataElementData>SGVsbG8=</b:dataElementData>
|
39
|
+
</b:dataElement>
|
40
|
+
</b:itemList>
|
41
|
+
</b:partialOrder>
|
42
|
+
</b:itemList>
|
43
|
+
</b:partialOrder>
|
44
|
+
<b:partialOrder lsid="" type="list" index="2">
|
45
|
+
<b:relationList />
|
46
|
+
<b:itemList />
|
47
|
+
</b:partialOrder>
|
48
|
+
<b:partialOrder lsid="" type="list" index="3">
|
49
|
+
<b:relationList>
|
50
|
+
<b:relation parent="0" child="1" />
|
51
|
+
<b:relation parent="1" child="2" />
|
52
|
+
</b:relationList>
|
53
|
+
<b:itemList>
|
54
|
+
<b:partialOrder lsid="" type="list" index="0">
|
55
|
+
<b:relationList />
|
56
|
+
<b:itemList />
|
57
|
+
</b:partialOrder>
|
58
|
+
<b:partialOrder lsid="" type="list" index="1">
|
59
|
+
<b:relationList />
|
60
|
+
<b:itemList>
|
61
|
+
<b:dataElement lsid="" index="0">
|
62
|
+
<b:dataElementData>dGVzdA==</b:dataElementData>
|
63
|
+
</b:dataElement>
|
64
|
+
</b:itemList>
|
65
|
+
</b:partialOrder>
|
66
|
+
<b:partialOrder lsid="" type="list" index="2">
|
67
|
+
<b:relationList />
|
68
|
+
<b:itemList />
|
69
|
+
</b:partialOrder>
|
70
|
+
</b:itemList>
|
71
|
+
</b:partialOrder>
|
72
|
+
</b:itemList>
|
73
|
+
</b:partialOrder>
|
74
|
+
</b:myGridDataDocument>
|
75
|
+
</b:dataThing>
|
76
|
+
<b:dataThing key="SINGLE_IN">
|
77
|
+
<b:myGridDataDocument lsid="" syntactictype="l('null')">
|
78
|
+
<s:metadata xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" />
|
79
|
+
<b:partialOrder lsid="" type="list">
|
80
|
+
<b:relationList />
|
81
|
+
<b:itemList />
|
82
|
+
</b:partialOrder>
|
83
|
+
</b:myGridDataDocument>
|
84
|
+
</b:dataThing>
|
85
|
+
</b:dataThingMap>
|
86
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
Hello, World!
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="b14e490b-927b-4e5e-9bb5-6c9b3da4ab2c" role="top"><name>Workflow1</name><inputPorts><port><name>IN</name><depth>0</depth><granularDepth>0</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>b14e490b-927b-4e5e-9bb5-6c9b3da4ab2c</identification>
|
6
|
+
</annotationBean>
|
7
|
+
<date>2010-11-22 13:37:10.158 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>
|
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:
|
4
|
+
hash: 7
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
version: 0.6.0
|
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:
|
18
|
+
date: 2011-03-10 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -50,6 +50,22 @@ dependencies:
|
|
50
50
|
version: 1.1.4
|
51
51
|
type: :runtime
|
52
52
|
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: hirb
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 15
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 4
|
65
|
+
- 0
|
66
|
+
version: 0.4.0
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id003
|
53
69
|
description: This gem provides access to the Taverna 2 Server REST interface from Ruby.
|
54
70
|
email: rhaines@manchester.ac.uk
|
55
71
|
executables:
|
@@ -75,10 +91,10 @@ files:
|
|
75
91
|
- test/tc_server.rb
|
76
92
|
- test/tc_paths.rb
|
77
93
|
- test/tc_run.rb
|
78
|
-
- test/workflows/
|
94
|
+
- test/workflows/pass_through.t2flow
|
79
95
|
- test/workflows/empty_list_input.baclava
|
80
96
|
- test/workflows/empty_list.t2flow
|
81
|
-
- test/workflows/
|
97
|
+
- test/workflows/in.txt
|
82
98
|
- test/ts_t2server.rb
|
83
99
|
- README.rdoc
|
84
100
|
- LICENCE.rdoc
|
data/test/workflows/hello.t2flow
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="b9556b39-8656-4a17-bf5c-37de30fe7df3" role="top"><name>Workflow1</name><inputPorts /><outputPorts><port><name>Message</name><annotations /></port></outputPorts><processors><processor><name>Hello</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>Hello, World!</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>1000</initialDelay>
|
8
|
-
<maxDelay>5000</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 /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="dataflow"><port>Message</port></sink><source type="processor"><processor>Hello</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
11
|
-
<annotationAssertions>
|
12
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
13
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
|
14
|
-
<identification>b9556b39-8656-4a17-bf5c-37de30fe7df3</identification>
|
15
|
-
</annotationBean>
|
16
|
-
<date>2010-07-09 15:01:39.283 BST</date>
|
17
|
-
<creators />
|
18
|
-
<curationEventList />
|
19
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
20
|
-
</annotationAssertions>
|
21
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
|
@@ -1,303 +0,0 @@
|
|
1
|
-
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="fd34324d-de34-4a5f-9b12-13059a9fb1a4" role="top"><name>Pipelined_list_iteration</name><inputPorts><port><name>input</name><depth>0</depth><granularDepth>0</granularDepth><annotations><annotation_chain 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.ExampleValue">
|
5
|
-
<text>150</text>
|
6
|
-
</annotationBean>
|
7
|
-
<date>2009-12-15 19:41:02.598 GMT</date>
|
8
|
-
<creators />
|
9
|
-
<curationEventList />
|
10
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
11
|
-
</annotationAssertions>
|
12
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
13
|
-
<annotationAssertions>
|
14
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
15
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
|
16
|
-
<text>Number of elements to generate</text>
|
17
|
-
</annotationBean>
|
18
|
-
<date>2009-12-15 19:40:52.84 GMT</date>
|
19
|
-
<creators />
|
20
|
-
<curationEventList />
|
21
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
22
|
-
</annotationAssertions>
|
23
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>out</name><annotations /></port></outputPorts><processors><processor><name>List_Emitter</name><inputPorts><port><name>count</name><depth>0</depth></port></inputPorts><outputPorts><port><name>list</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map from="count" to="count" /></inputMap><outputMap><map from="list" to="list" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
|
24
|
-
<script>List list = new ArrayList();
|
25
|
-
int icount = Integer.parseInt(count);
|
26
|
-
|
27
|
-
for (int i=0;i<icount;i++) {
|
28
|
-
list.add(String.valueOf(i));
|
29
|
-
}</script>
|
30
|
-
<dependencies />
|
31
|
-
<classLoaderSharing>workflow</classLoaderSharing>
|
32
|
-
<localDependencies />
|
33
|
-
<artifactDependencies />
|
34
|
-
<inputs>
|
35
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
36
|
-
<handledReferenceSchemes />
|
37
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
38
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
39
|
-
<name>count</name>
|
40
|
-
<depth>0</depth>
|
41
|
-
<mimeTypes>
|
42
|
-
<string>text/plain</string>
|
43
|
-
</mimeTypes>
|
44
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
45
|
-
</inputs>
|
46
|
-
<outputs>
|
47
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
48
|
-
<granularDepth>1</granularDepth>
|
49
|
-
<name>list</name>
|
50
|
-
<depth>1</depth>
|
51
|
-
<mimeTypes />
|
52
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
53
|
-
</outputs>
|
54
|
-
</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.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="">
|
55
|
-
<maxJobs>1</maxJobs>
|
56
|
-
</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="">
|
57
|
-
<backoffFactor>1.0</backoffFactor>
|
58
|
-
<initialDelay>1000</initialDelay>
|
59
|
-
<maxDelay>5000</maxDelay>
|
60
|
-
<maxRetries>0</maxRetries>
|
61
|
-
</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="count" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Concat</name><inputPorts><port><name>input</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>beanshell-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map from="input" to="input" /></inputMap><outputMap><map from="output" to="output" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean xmlns="">
|
62
|
-
<script>String output = input + "XXX"</script>
|
63
|
-
<dependencies />
|
64
|
-
<classLoaderSharing>workflow</classLoaderSharing>
|
65
|
-
<localDependencies />
|
66
|
-
<artifactDependencies />
|
67
|
-
<inputs>
|
68
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
69
|
-
<handledReferenceSchemes />
|
70
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
71
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
72
|
-
<name>input</name>
|
73
|
-
<depth>0</depth>
|
74
|
-
<mimeTypes>
|
75
|
-
<string>text/plain</string>
|
76
|
-
</mimeTypes>
|
77
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
78
|
-
</inputs>
|
79
|
-
<outputs>
|
80
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
81
|
-
<granularDepth>0</granularDepth>
|
82
|
-
<name>output</name>
|
83
|
-
<depth>0</depth>
|
84
|
-
<mimeTypes />
|
85
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
86
|
-
</outputs>
|
87
|
-
</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.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="">
|
88
|
-
<maxJobs>1</maxJobs>
|
89
|
-
</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="">
|
90
|
-
<backoffFactor>1.0</backoffFactor>
|
91
|
-
<initialDelay>1000</initialDelay>
|
92
|
-
<maxDelay>5000</maxDelay>
|
93
|
-
<maxRetries>0</maxRetries>
|
94
|
-
</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="input" 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="">
|
95
|
-
<localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
|
96
|
-
<script>output = string1 + string2;</script>
|
97
|
-
<dependencies />
|
98
|
-
<classLoaderSharing>workflow</classLoaderSharing>
|
99
|
-
<localDependencies />
|
100
|
-
<artifactDependencies />
|
101
|
-
<inputs>
|
102
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
103
|
-
<handledReferenceSchemes />
|
104
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
105
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
106
|
-
<name>string1</name>
|
107
|
-
<depth>0</depth>
|
108
|
-
<mimeTypes>
|
109
|
-
<string>'text/plain'</string>
|
110
|
-
</mimeTypes>
|
111
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
112
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
113
|
-
<handledReferenceSchemes />
|
114
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
115
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
116
|
-
<name>string2</name>
|
117
|
-
<depth>0</depth>
|
118
|
-
<mimeTypes>
|
119
|
-
<string>'text/plain'</string>
|
120
|
-
</mimeTypes>
|
121
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
122
|
-
</inputs>
|
123
|
-
<outputs>
|
124
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
125
|
-
<granularDepth>0</granularDepth>
|
126
|
-
<name>output</name>
|
127
|
-
<depth>0</depth>
|
128
|
-
<mimeTypes>
|
129
|
-
<string>'text/plain'</string>
|
130
|
-
</mimeTypes>
|
131
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
132
|
-
</outputs>
|
133
|
-
</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="">
|
134
|
-
<maxJobs>1</maxJobs>
|
135
|
-
</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="">
|
136
|
-
<backoffFactor>1.0</backoffFactor>
|
137
|
-
<initialDelay>1000</initialDelay>
|
138
|
-
<maxDelay>5000</maxDelay>
|
139
|
-
<maxRetries>0</maxRetries>
|
140
|
-
</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><processor><name>Concatenate_two_strings_2</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="">
|
141
|
-
<localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
|
142
|
-
<script>output = string1 + string2;</script>
|
143
|
-
<dependencies />
|
144
|
-
<classLoaderSharing>workflow</classLoaderSharing>
|
145
|
-
<localDependencies />
|
146
|
-
<artifactDependencies />
|
147
|
-
<inputs>
|
148
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
149
|
-
<handledReferenceSchemes />
|
150
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
151
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
152
|
-
<name>string1</name>
|
153
|
-
<depth>0</depth>
|
154
|
-
<mimeTypes>
|
155
|
-
<string>'text/plain'</string>
|
156
|
-
</mimeTypes>
|
157
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
158
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
159
|
-
<handledReferenceSchemes />
|
160
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
161
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
162
|
-
<name>string2</name>
|
163
|
-
<depth>0</depth>
|
164
|
-
<mimeTypes>
|
165
|
-
<string>'text/plain'</string>
|
166
|
-
</mimeTypes>
|
167
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
168
|
-
</inputs>
|
169
|
-
<outputs>
|
170
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
171
|
-
<granularDepth>0</granularDepth>
|
172
|
-
<name>output</name>
|
173
|
-
<depth>0</depth>
|
174
|
-
<mimeTypes>
|
175
|
-
<string>'text/plain'</string>
|
176
|
-
</mimeTypes>
|
177
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
178
|
-
</outputs>
|
179
|
-
</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="">
|
180
|
-
<maxJobs>1</maxJobs>
|
181
|
-
</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="">
|
182
|
-
<backoffFactor>1.0</backoffFactor>
|
183
|
-
<initialDelay>1000</initialDelay>
|
184
|
-
<maxDelay>5000</maxDelay>
|
185
|
-
<maxRetries>0</maxRetries>
|
186
|
-
</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><processor><name>Concatenate_two_strings_3</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts><port><name>output</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.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="">
|
187
|
-
<localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
|
188
|
-
<script>output = string1 + string2;</script>
|
189
|
-
<dependencies />
|
190
|
-
<classLoaderSharing>workflow</classLoaderSharing>
|
191
|
-
<localDependencies />
|
192
|
-
<artifactDependencies />
|
193
|
-
<inputs>
|
194
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
195
|
-
<handledReferenceSchemes />
|
196
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
197
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
198
|
-
<name>string1</name>
|
199
|
-
<depth>0</depth>
|
200
|
-
<mimeTypes>
|
201
|
-
<string>'text/plain'</string>
|
202
|
-
</mimeTypes>
|
203
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
204
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
205
|
-
<handledReferenceSchemes />
|
206
|
-
<translatedElementType>java.lang.String</translatedElementType>
|
207
|
-
<allowsLiteralValues>true</allowsLiteralValues>
|
208
|
-
<name>string2</name>
|
209
|
-
<depth>0</depth>
|
210
|
-
<mimeTypes>
|
211
|
-
<string>'text/plain'</string>
|
212
|
-
</mimeTypes>
|
213
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
214
|
-
</inputs>
|
215
|
-
<outputs>
|
216
|
-
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
217
|
-
<granularDepth>0</granularDepth>
|
218
|
-
<name>output</name>
|
219
|
-
<depth>0</depth>
|
220
|
-
<mimeTypes>
|
221
|
-
<string>'text/plain'</string>
|
222
|
-
</mimeTypes>
|
223
|
-
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
224
|
-
</outputs>
|
225
|
-
</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="">
|
226
|
-
<maxJobs>1</maxJobs>
|
227
|
-
</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="">
|
228
|
-
<backoffFactor>1.0</backoffFactor>
|
229
|
-
<initialDelay>1000</initialDelay>
|
230
|
-
<maxDelay>5000</maxDelay>
|
231
|
-
<maxRetries>0</maxRetries>
|
232
|
-
</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><processor><name>boo</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="">
|
233
|
-
<value>boo</value>
|
234
|
-
</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="">
|
235
|
-
<maxJobs>1</maxJobs>
|
236
|
-
</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="">
|
237
|
-
<backoffFactor>1.0</backoffFactor>
|
238
|
-
<initialDelay>1000</initialDelay>
|
239
|
-
<maxDelay>5000</maxDelay>
|
240
|
-
<maxRetries>0</maxRetries>
|
241
|
-
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>xxx</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="">
|
242
|
-
<value>xxx</value>
|
243
|
-
</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="">
|
244
|
-
<maxJobs>1</maxJobs>
|
245
|
-
</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="">
|
246
|
-
<backoffFactor>1.0</backoffFactor>
|
247
|
-
<initialDelay>1000</initialDelay>
|
248
|
-
<maxDelay>5000</maxDelay>
|
249
|
-
<maxRetries>0</maxRetries>
|
250
|
-
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>sdfds</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="">
|
251
|
-
<value>sdfds</value>
|
252
|
-
</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="">
|
253
|
-
<maxJobs>1</maxJobs>
|
254
|
-
</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="">
|
255
|
-
<backoffFactor>1.0</backoffFactor>
|
256
|
-
<initialDelay>1000</initialDelay>
|
257
|
-
<maxDelay>5000</maxDelay>
|
258
|
-
<maxRetries>0</maxRetries>
|
259
|
-
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>List_Emitter</processor><port>count</port></sink><source type="dataflow"><port>input</port></source></datalink><datalink><sink type="processor"><processor>Concat</processor><port>input</port></sink><source type="processor"><processor>List_Emitter</processor><port>list</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>Concat</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="processor"><processor>boo</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings_2</processor><port>string1</port></sink><source type="processor"><processor>Concatenate_two_strings</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings_2</processor><port>string2</port></sink><source type="processor"><processor>xxx</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings_3</processor><port>string1</port></sink><source type="processor"><processor>Concatenate_two_strings_2</processor><port>output</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings_3</processor><port>string2</port></sink><source type="processor"><processor>sdfds</processor><port>value</port></source></datalink><datalink><sink type="dataflow"><port>out</port></sink><source type="processor"><processor>Concatenate_two_strings_3</processor><port>output</port></source></datalink></datalinks><annotations><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
260
|
-
<annotationAssertions>
|
261
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
262
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
|
263
|
-
<text>Perform multiple iterations of services in order to show pipelining</text>
|
264
|
-
</annotationBean>
|
265
|
-
<date>2009-12-15 19:42:21.971 GMT</date>
|
266
|
-
<creators />
|
267
|
-
<curationEventList />
|
268
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
269
|
-
</annotationAssertions>
|
270
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
271
|
-
<annotationAssertions>
|
272
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
273
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.Author">
|
274
|
-
<text>Ian Dunlop, Stian Soiland-Reyes</text>
|
275
|
-
</annotationBean>
|
276
|
-
<date>2009-12-15 19:42:01.488 GMT</date>
|
277
|
-
<creators />
|
278
|
-
<curationEventList />
|
279
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
280
|
-
</annotationAssertions>
|
281
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
282
|
-
<annotationAssertions>
|
283
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
284
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
|
285
|
-
<text>Pipelined list iteration</text>
|
286
|
-
</annotationBean>
|
287
|
-
<date>2009-12-15 19:42:12.907 GMT</date>
|
288
|
-
<creators />
|
289
|
-
<curationEventList />
|
290
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
291
|
-
</annotationAssertions>
|
292
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
293
|
-
<annotationAssertions>
|
294
|
-
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
295
|
-
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
|
296
|
-
<identification>fd34324d-de34-4a5f-9b12-13059a9fb1a4</identification>
|
297
|
-
</annotationBean>
|
298
|
-
<date>2010-07-04 18:19:17.425 BST</date>
|
299
|
-
<creators />
|
300
|
-
<curationEventList />
|
301
|
-
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
302
|
-
</annotationAssertions>
|
303
|
-
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
|