t2-server 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|