cpee 1.3.206 → 1.3.207

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/cpee.gemspec +1 -1
  3. data/lib/cpee/controller.rb +9 -1
  4. data/log/yaml/log.xml +27 -0
  5. data/log/yaml/logoverlay.xml +10 -0
  6. data/log/yaml/server.rb +122 -0
  7. data/log/yaml/topics.xml +22 -0
  8. data/log/yaml/yaml.rb +19 -0
  9. data/server/instances/1/properties.xml +1 -1
  10. data/server/instances/2/properties.xml +1 -1
  11. data/server/instances/3/properties.xml +93 -35
  12. data/server/instances/4/properties.xml +87 -35
  13. data/server/instances/5/properties.xml +87 -35
  14. data/server/instances/6/notifications/0e9f3728f00c0562870110697bd8819c/consumer-secret +1 -0
  15. data/server/instances/6/notifications/0e9f3728f00c0562870110697bd8819c/producer-secret +1 -0
  16. data/server/instances/{30/notifications/f7afc30fd195bc06ac100a9b848c5da3 → 6/notifications/0e9f3728f00c0562870110697bd8819c}/subscription.xml +3 -7
  17. data/server/instances/6/properties.xml +92 -9
  18. data/server/server.rb +1 -1
  19. metadata +10 -30
  20. data/server/instances/10/properties.xml +0 -31
  21. data/server/instances/11/properties.xml +0 -62
  22. data/server/instances/12/properties.xml +0 -152
  23. data/server/instances/13/properties.xml +0 -62
  24. data/server/instances/14/properties.xml +0 -150
  25. data/server/instances/15/properties.xml +0 -69
  26. data/server/instances/16/properties.xml +0 -63
  27. data/server/instances/17/properties.xml +0 -31
  28. data/server/instances/18/properties.xml +0 -150
  29. data/server/instances/19/properties.xml +0 -152
  30. data/server/instances/20/properties.xml +0 -68
  31. data/server/instances/21/properties.xml +0 -118
  32. data/server/instances/22/properties.xml +0 -525
  33. data/server/instances/23/properties.xml +0 -65
  34. data/server/instances/24/properties.xml +0 -65
  35. data/server/instances/25/properties.xml +0 -65
  36. data/server/instances/26/properties.xml +0 -65
  37. data/server/instances/27/properties.xml +0 -65
  38. data/server/instances/28/properties.xml +0 -65
  39. data/server/instances/29/properties.xml +0 -67
  40. data/server/instances/30/notifications/f7afc30fd195bc06ac100a9b848c5da3/consumer-secret +0 -1
  41. data/server/instances/30/notifications/f7afc30fd195bc06ac100a9b848c5da3/producer-secret +0 -1
  42. data/server/instances/30/properties.xml +0 -65
  43. data/server/instances/7/properties.xml +0 -62
  44. data/server/instances/8/properties.xml +0 -31
  45. data/server/instances/9/properties.xml +0 -62
  46. data/server/resources/test.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d487ede487ce7bf7fe2aa4d2f59549540eb9b0a
4
- data.tar.gz: 3ca95fe9bd0b351529bdc9538b983b2d6f00dd73
3
+ metadata.gz: f25f955ce4d025a56dd90b97e7aff04983aa79c7
4
+ data.tar.gz: 5166ac6d0dce705032203a3752c484b449918313
5
5
  SHA512:
6
- metadata.gz: 362c25b3bc380f795d1d8c7817d2cb371947556e0cf953c12ff0ffd3ba8fb278f25e7697e7cb3f9c82d307215d4d2b933756160634f960390d341bb68c19baa8
7
- data.tar.gz: 539140c12dc844c4186ec4a5cad599360b622d64ee2e4923d612b3ff40c40f5003b3b39bbb6160e4fa514410663fd46dec760ccc0b6f46d5a85bcbd770695afb
6
+ metadata.gz: e8a5abd2641fce0f5e6dccc5bcd4d82948918f0b3d95277d24af3a43b5a0fc3e252b49c1c23a9486233e71b138e5df0472752b8433f63437e50e05f5b6fee625
7
+ data.tar.gz: fb26385147cdac4639ca8207c740852b3685faf68fc221d4c0f0ed729dc23db71ff76cb39f3576d73e84304d79be57ac8c3f0df9e90b44af172ae64d57e7532e
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.3.206"
3
+ s.version = "1.3.207"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Preliminary release of cloud process execution engine (cpee). If you just need workflow execution, without a rest/xmpp service exposing it, then use WEEL"
@@ -96,9 +96,9 @@ module CPEE
96
96
  unserialize_endpoints!
97
97
  unserialize_dsl!
98
98
  unserialize_positions!
99
- unserialize_attributes!
100
99
 
101
100
  @uuid = sync_uuid!
101
+ unserialize_attributes!
102
102
  end
103
103
 
104
104
  attr_reader :id
@@ -286,6 +286,14 @@ module CPEE
286
286
  @properties.data.find("/p:properties/p:attributes/p:*").map do |ele|
287
287
  @attributes[ele.qname.name] = ele.text
288
288
  end
289
+ uuid = @properties.data.find("/p:properties/p:attributes/p:uuid")
290
+ if uuid.empty? || uuid.length != 1 || @properties.data.find("/p:properties/p:attributes/p:uuid[.=\"#{@uuid}\"]").empty?
291
+ @properties.modify do |doc|
292
+ attr = doc.find("/p:properties/p:attributes").first
293
+ attr.find('p:uuid').delete_all!
294
+ attr.prepend('uuid',@uuid)
295
+ end
296
+ end
289
297
  end #}}}
290
298
  def unserialize_dataelements! #{{{
291
299
  @instance.data.clear
@@ -0,0 +1,27 @@
1
+ <declaration xmlns="http://riddl.org/ns/declaration/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
+ <interface name="events">
3
+ <xi:include href="http://www.riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml"/>
4
+ </interface>
5
+ <interface name="cpee" location="http://cpee.org:9298">
6
+ <xi:include href="http://cpee.org:9298/?riddl-description"/>
7
+ </interface>
8
+ <interface name="logoverlay">
9
+ <xi:include href="logoverlay.xml"/>
10
+ </interface>
11
+
12
+ <facade>
13
+ <tile>
14
+ <layer name="cpee"/>
15
+ </tile>
16
+ <tile>
17
+ <layer name="events">
18
+ <apply-to>/log</apply-to>
19
+ </layer>
20
+ </tile>
21
+ <tile>
22
+ <layer name="logoverlay">
23
+ <apply-to>/{}/log</apply-to>
24
+ </layer>
25
+ </tile>
26
+ </facade>
27
+ </declaration>
@@ -0,0 +1,10 @@
1
+ <description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
+ <message name="logresponse">
3
+ <parameter name="file" mimetype="text/xml"/>
4
+ </message>
5
+
6
+ <resource>
7
+ <get out="logresponse"/>
8
+ </resource>
9
+
10
+ </description>
@@ -0,0 +1,122 @@
1
+ #!/usr/bin/ruby
2
+ require 'pp'
3
+ require 'json'
4
+ require 'yaml'
5
+ require 'rubygems'
6
+ require 'riddl/server'
7
+ require 'riddl/client'
8
+ require 'riddl/utils/notifications_producer'
9
+ require 'riddl/utils/properties'
10
+ require 'riddl/utils/fileserve'
11
+ require 'riddl/utils/downloadify'
12
+ require 'riddl/utils/turtle'
13
+ require 'time'
14
+
15
+ class Logging < Riddl::Implementation #{{{
16
+ LOGTEMPLATE = {"log" =>
17
+ {"extension" =>
18
+ { "time" =>"http://www.xes-standard.org/time.xesext",
19
+ "concept" => "http://www.xes-standard.org/concept.xesext",
20
+ "organisational" => "http://www.xes-standard.org/org.xesext",
21
+ "lifecylce" => "http://www.xes-standard.org/lifecycle.xesext"
22
+ },
23
+ "global" =>
24
+ {
25
+ "trace" =>{"concept:name" => "__INVALID__"},
26
+ "event"=> {
27
+ "concept:name"=>"__INVALID__",
28
+ "concept:endpoint" => "",
29
+ "id:id" => "",
30
+ "lifecycle:transition" => "complete",
31
+ "time:timestamp" => ""
32
+ }
33
+ },
34
+ "classifier" =>{
35
+ "Data" => "data_send data_received",
36
+ "Data_Received"=>"data_receiver",
37
+ "Data_Send" => "data_send"
38
+ },
39
+ "trace" => {}
40
+ }
41
+ }
42
+ def doc(event_name,log_dir,instancenr,notification)
43
+ log = LOGTEMPLATE
44
+ uuid = notification['instance_uuid']
45
+ activity = notification["activity"]
46
+ parameters = notification['parameters']
47
+ receiving = notification['received']
48
+ Dir.mkdir(log_dir+'/'+uuid) unless Dir.exist?(log_dir+'/'+uuid)
49
+ time_added=false
50
+ log["log"]["trace"]["concept:name"] ||= "Instance #{instancenr}" unless log["log"]["trace"]["concept:name"]
51
+ File.open(log_dir+'/'+uuid+'/log.xes','w'){|f| f.puts log.to_yaml} unless File.exists? log_dir+'/'+uuid+'/log.xes'
52
+ event = {}
53
+ event["trace:id"] = instancenr
54
+ if parameters && parameters.has_key?('label')
55
+ event["concept:name"] = parameters["label"]
56
+ else
57
+ event["concept:name"]= log["log"]["trace"]["concept:name"]
58
+ end
59
+ event["concept:endpoint"] = notification["endpoint"] if notification["endpoint"]
60
+ event["id:id"] = activity
61
+ unless event_name=='receiving'
62
+ event["lifecycle:transition"]= event_name=='done'?"complete":"start"
63
+ else
64
+ event["lifecycle:transition"]="unknown"
65
+ end
66
+ data_send = ((parameters["arguments"].nil? ? [] : parameters["arguments"]) rescue [])
67
+ event["list"] = {"data_send" => data_send} unless data_send.empty?
68
+ if receiving && receiving.any?
69
+ if event.has_key? "list"
70
+ event["list"]["data_received"] ||= receiving
71
+ else
72
+ event["list"] = {"data_receiver" => receiving}
73
+ end
74
+ end
75
+ event["time:timestamp"]= Time.now.iso8601 unless time_added
76
+ File.open(log_dir+'/'+uuid+'/log.xes',"a") do |f|
77
+ f << {'event' => event}.to_yaml
78
+ end
79
+ end
80
+
81
+ def rec_unjson(value,list,key)
82
+ case value
83
+ when Array then
84
+ li = list.add 'list', :key => key
85
+ value.each_with_index do |v,k|
86
+ rec_unjson(v,li,k)
87
+ end
88
+ when Hash then
89
+ li = list.add 'list', :key => key
90
+ value.each do |k,v|
91
+ rec_unjson(v,li,k)
92
+ end
93
+ else
94
+ list.add 'string', :key => key, :value => value
95
+ end
96
+ end
97
+
98
+ def response
99
+ topic = @p[1].value
100
+ event_name = @p[2].value
101
+ log_dir = ::File.dirname(__FILE__) + "/../logs_yaml"
102
+ instancenr = @h['CPEE_INSTANCE'].split('/').last
103
+ notification = JSON.parse(@p[3].value)
104
+ doc(event_name,log_dir,instancenr,notification)
105
+ end
106
+ end #}}}
107
+
108
+
109
+ Riddl::Server.new(::File.dirname(__FILE__) + '/log.xml', :host => "coruscant.wst.univie.ac.at", :port => 9300) do #{{{
110
+ accessible_description true
111
+ cross_site_xhr true
112
+ log_path = "/home/demo/Projects/cpee-helpers/log/logs_yaml"
113
+
114
+ interface 'events' do
115
+ run Logging if post 'event'
116
+ end
117
+ interface 'logoverlay' do |r|
118
+ run Riddl::Utils::FileServe, log_path + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes","text/xml" if get
119
+ end
120
+
121
+
122
+ end.loop! #}}}
@@ -0,0 +1,22 @@
1
+ <!--
2
+ This file is part of CPEE.
3
+
4
+ CPEE is free software: you can redistribute it and/or modify it under the terms
5
+ of the GNU General Public License as published by the Free Software Foundation,
6
+ either version 3 of the License, or (at your option) any later version.
7
+
8
+ CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
+
12
+ You should have received a copy of the GNU General Public License along with
13
+ CPEE (file COPYING in the main directory). If not, see
14
+ <http://www.gnu.org/licenses/>.
15
+ -->
16
+
17
+ <topics xmlns='http://riddl.org/ns/common-patterns/notifications-producer/1.0'>
18
+ <topic id='activity'>
19
+ <event>calling</event>
20
+ <event>done</event>
21
+ </topic>
22
+ </topics>
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby
2
+ require 'yaml'
3
+ require 'pp'
4
+
5
+ def pbuf(buf)
6
+ unless buf.empty?
7
+ pp YAML.load(buf)
8
+ pp '---'
9
+ end
10
+ buf.clear
11
+ end
12
+
13
+ buf = ""
14
+ File.open('log.xes').each do |line|
15
+ pbuf(buf) if line == "---\n"
16
+ buf += line
17
+ end
18
+
19
+ pbuf(buf)
@@ -1,6 +1,6 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
2
  <attributes>
3
- <uuid>618e7837-ef17-4a56-9039-b37f5b7e0fbd</uuid>
3
+ <uuid/>
4
4
  <info>Lego Plate</info>
5
5
  <modeltype>CPEE</modeltype>
6
6
  </attributes>
@@ -1,9 +1,9 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
2
  <attributes>
3
- <uuid>dec6ca32-a6b1-4955-bd97-79a1bc130f2d</uuid>
4
3
  <info/>
5
4
  <modeltype>CPEE</modeltype>
6
5
  <theme>default</theme>
6
+ <uuid/>
7
7
  </attributes>
8
8
  <state>ready</state>
9
9
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
@@ -1,38 +1,73 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
2
  <attributes>
3
- <uuid>c7e3ea2f-f932-4b57-978b-f26b5897bc86</uuid>
4
- <info>Lego Plate</info>
3
+ <info>Linear</info>
5
4
  <modeltype>CPEE</modeltype>
5
+ <theme>default</theme>
6
+ <uuid>
7
+
8
+ e3ee0cf2-f36c-45a0-9dc7-d5a2b54cc3bd
9
+ aaaaaaaa-f36c-45a0-9dc7-d5a2b54cc3bd
10
+
11
+ aaaaaaaa-f36c-45a0-9dc7-d5a2b54cc3bd
12
+ </uuid>
6
13
  </attributes>
7
- <state>stopped</state>
14
+ <state>ready</state>
8
15
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
9
- <positions/>
16
+ <positions>
17
+ <a1>after</a1>
18
+ </positions>
10
19
  <dataelements>
11
- <i>0</i>
20
+ <x/>
12
21
  </dataelements>
13
22
  <endpoints>
14
23
  <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
15
- <move>http://plate.wst.univie.ac.at:9200/go-next</move>
16
24
  </endpoints>
17
- <dsl>loop pre_test{i&lt;2} do
18
- call :a1, :move, parameters: { :label =&gt; "Move to next station", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
19
- data.i= data.i + 1
20
- END
21
- end
25
+ <dsl>call :a1, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
26
+ data.x += "a1,"
27
+ END
28
+ call :a2, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }, finalize: &lt;&lt;-END
29
+ data.x += "a2,"
30
+ END
31
+ call :a3, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }, finalize: &lt;&lt;-END
32
+ data.x += "a3,"
33
+ END
22
34
  </dsl>
23
35
  <dslx>
24
36
  <description xmlns="http://cpee.org/ns/description/1.0">
25
- <loop mode="pre_test" condition="i&lt;2">
26
- <call id="a1" endpoint="move">
27
- <parameters>
28
- <label>Move to next station</label>
29
- <method>:post</method>
30
- <arguments/>
31
- </parameters>
32
- <finalize output="result">data.i= data.i + 1</finalize>
33
- <update output="result"/>
34
- </call>
35
- </loop>
37
+ <!--{{{-->
38
+ <call id="a1" endpoint="timeout">
39
+ <parameters>
40
+ <!--{{{-->
41
+ <method>:post</method>
42
+ <arguments>
43
+ <timeout>2</timeout>
44
+ </arguments>
45
+ </parameters>
46
+ <!--}}}-->
47
+ <finalize output="result">data.x += "a1,"</finalize>
48
+ </call>
49
+ <call id="a2" endpoint="timeout">
50
+ <parameters>
51
+ <!--{{{-->
52
+ <method>:post</method>
53
+ <arguments>
54
+ <timeout>4</timeout>
55
+ </arguments>
56
+ </parameters>
57
+ <!--}}}-->
58
+ <finalize output="result">data.x += "a2,"</finalize>
59
+ </call>
60
+ <call id="a3" endpoint="timeout">
61
+ <parameters>
62
+ <!--{{{-->
63
+ <method>:post</method>
64
+ <arguments>
65
+ <timeout>4</timeout>
66
+ </arguments>
67
+ </parameters>
68
+ <!--}}}-->
69
+ <finalize output="result">data.x += "a3,"</finalize>
70
+ </call>
36
71
  </description>
37
72
  </dslx>
38
73
  <status>
@@ -41,22 +76,45 @@ end
41
76
  </status>
42
77
  <description>
43
78
  <description xmlns="http://cpee.org/ns/description/1.0">
44
- <loop mode="pre_test" condition="i&lt;2">
45
- <call id="a1" endpoint="move">
46
- <parameters>
47
- <label>Move to next station</label>
48
- <method>:post</method>
49
- <arguments/>
50
- </parameters>
51
- <finalize output="result">data.i= data.i + 1</finalize>
52
- <update output="result"/>
53
- </call>
54
- </loop>
79
+ <!--{{{-->
80
+ <call id="a1" endpoint="timeout">
81
+ <parameters>
82
+ <!--{{{-->
83
+ <method>:post</method>
84
+ <arguments>
85
+ <timeout>2</timeout>
86
+ </arguments>
87
+ </parameters>
88
+ <!--}}}-->
89
+ <finalize output="result">data.x += "a1,"</finalize>
90
+ </call>
91
+ <call id="a2" endpoint="timeout">
92
+ <parameters>
93
+ <!--{{{-->
94
+ <method>:post</method>
95
+ <arguments>
96
+ <timeout>4</timeout>
97
+ </arguments>
98
+ </parameters>
99
+ <!--}}}-->
100
+ <finalize output="result">data.x += "a2,"</finalize>
101
+ </call>
102
+ <call id="a3" endpoint="timeout">
103
+ <parameters>
104
+ <!--{{{-->
105
+ <method>:post</method>
106
+ <arguments>
107
+ <timeout>4</timeout>
108
+ </arguments>
109
+ </parameters>
110
+ <!--}}}-->
111
+ <finalize output="result">data.x += "a3,"</finalize>
112
+ </call>
55
113
  </description>
56
114
  </description>
57
115
  <transformation>
58
116
  <description type="copy"/>
59
- <dataelements type="none"/>
60
- <endpoints type="none"/>
117
+ <dataelements type="rest"/>
118
+ <endpoints type="rest"/>
61
119
  </transformation>
62
120
  </properties>
@@ -1,38 +1,67 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
2
  <attributes>
3
- <uuid>90ee9a6e-cb92-4234-a571-607f8345b0a6</uuid>
4
- <info>Lego Plate</info>
3
+ <uuid>3e8bef88-b2b4-484d-a3ae-17441983c57c</uuid>
4
+ <info>Linear</info>
5
5
  <modeltype>CPEE</modeltype>
6
+ <theme>default</theme>
6
7
  </attributes>
7
- <state>stopped</state>
8
+ <state>ready</state>
8
9
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
9
- <positions/>
10
+ <positions>
11
+ <a1>after</a1>
12
+ </positions>
10
13
  <dataelements>
11
- <i>0</i>
14
+ <x/>
12
15
  </dataelements>
13
16
  <endpoints>
14
17
  <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
15
- <move>http://plate.wst.univie.ac.at:9200/go-next</move>
16
18
  </endpoints>
17
- <dsl>loop pre_test{i&lt;2} do
18
- call :a1, :move, parameters: { :label =&gt; "Move to next station", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
19
- data.i= data.i + 1
20
- END
21
- end
19
+ <dsl>call :a1, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
20
+ data.x += "a1,"
21
+ END
22
+ call :a2, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }, finalize: &lt;&lt;-END
23
+ data.x += "a2,"
24
+ END
25
+ call :a3, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }, finalize: &lt;&lt;-END
26
+ data.x += "a3,"
27
+ END
22
28
  </dsl>
23
29
  <dslx>
24
30
  <description xmlns="http://cpee.org/ns/description/1.0">
25
- <loop mode="pre_test" condition="i&lt;2">
26
- <call id="a1" endpoint="move">
27
- <parameters>
28
- <label>Move to next station</label>
29
- <method>:post</method>
30
- <arguments/>
31
- </parameters>
32
- <finalize output="result">data.i= data.i + 1</finalize>
33
- <update output="result"/>
34
- </call>
35
- </loop>
31
+ <!--{{{-->
32
+ <call id="a1" endpoint="timeout">
33
+ <parameters>
34
+ <!--{{{-->
35
+ <method>:post</method>
36
+ <arguments>
37
+ <timeout>2</timeout>
38
+ </arguments>
39
+ </parameters>
40
+ <!--}}}-->
41
+ <finalize output="result">data.x += "a1,"</finalize>
42
+ </call>
43
+ <call id="a2" endpoint="timeout">
44
+ <parameters>
45
+ <!--{{{-->
46
+ <method>:post</method>
47
+ <arguments>
48
+ <timeout>4</timeout>
49
+ </arguments>
50
+ </parameters>
51
+ <!--}}}-->
52
+ <finalize output="result">data.x += "a2,"</finalize>
53
+ </call>
54
+ <call id="a3" endpoint="timeout">
55
+ <parameters>
56
+ <!--{{{-->
57
+ <method>:post</method>
58
+ <arguments>
59
+ <timeout>4</timeout>
60
+ </arguments>
61
+ </parameters>
62
+ <!--}}}-->
63
+ <finalize output="result">data.x += "a3,"</finalize>
64
+ </call>
36
65
  </description>
37
66
  </dslx>
38
67
  <status>
@@ -41,22 +70,45 @@ end
41
70
  </status>
42
71
  <description>
43
72
  <description xmlns="http://cpee.org/ns/description/1.0">
44
- <loop mode="pre_test" condition="i&lt;2">
45
- <call id="a1" endpoint="move">
46
- <parameters>
47
- <label>Move to next station</label>
48
- <method>:post</method>
49
- <arguments/>
50
- </parameters>
51
- <finalize output="result">data.i= data.i + 1</finalize>
52
- <update output="result"/>
53
- </call>
54
- </loop>
73
+ <!--{{{-->
74
+ <call id="a1" endpoint="timeout">
75
+ <parameters>
76
+ <!--{{{-->
77
+ <method>:post</method>
78
+ <arguments>
79
+ <timeout>2</timeout>
80
+ </arguments>
81
+ </parameters>
82
+ <!--}}}-->
83
+ <finalize output="result">data.x += "a1,"</finalize>
84
+ </call>
85
+ <call id="a2" endpoint="timeout">
86
+ <parameters>
87
+ <!--{{{-->
88
+ <method>:post</method>
89
+ <arguments>
90
+ <timeout>4</timeout>
91
+ </arguments>
92
+ </parameters>
93
+ <!--}}}-->
94
+ <finalize output="result">data.x += "a2,"</finalize>
95
+ </call>
96
+ <call id="a3" endpoint="timeout">
97
+ <parameters>
98
+ <!--{{{-->
99
+ <method>:post</method>
100
+ <arguments>
101
+ <timeout>4</timeout>
102
+ </arguments>
103
+ </parameters>
104
+ <!--}}}-->
105
+ <finalize output="result">data.x += "a3,"</finalize>
106
+ </call>
55
107
  </description>
56
108
  </description>
57
109
  <transformation>
58
110
  <description type="copy"/>
59
- <dataelements type="none"/>
60
- <endpoints type="none"/>
111
+ <dataelements type="rest"/>
112
+ <endpoints type="rest"/>
61
113
  </transformation>
62
114
  </properties>