cpee 1.3.206 → 1.3.207

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.
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>