cpee 1.3.209 → 1.3.211

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -5
  3. data/cockpit/contrib/transformation1.xsl +9 -9
  4. data/cockpit/index.html +6 -4
  5. data/cockpit/js/details.js +54 -56
  6. data/cockpit/js/instance.js +15 -5
  7. data/cockpit/js/parameters.js +28 -28
  8. data/cockpit/js/wfadaptor.js +32 -16
  9. data/cockpit/testsets/Centurio.xml +72 -0
  10. data/cockpit/testsets/Lego Plate.xml +1 -1
  11. data/cockpit/testsets/Lego Transporter.xml +11 -147
  12. data/cockpit/testsets/Linear.xml +3 -0
  13. data/cockpit/testsets/Syncing P34 1.xml +9 -1
  14. data/cockpit/testsets/Syncing P34 2.xml +9 -1
  15. data/cockpit/testsets/Syncing P34 3.xml +9 -1
  16. data/cockpit/testsets/Syncing P34.xml +9 -1
  17. data/cockpit/testsets/testsets.xml +1 -0
  18. data/cockpit/themes/default/theme.js +22 -21
  19. data/cockpit/themes/labels/theme.js +786 -0
  20. data/cpee.gemspec +4 -2
  21. data/lib/cpee/controller.rb +0 -5
  22. data/server/handlerwrappers/default.rb +9 -15
  23. data/server/handlerwrappers/soap.rb +10 -10
  24. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/consumer-secret +1 -0
  25. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/producer-secret +1 -0
  26. data/server/instances/{6/notifications/0e9f3728f00c0562870110697bd8819c → 10/notifications/182434032285ca1d06a8b6554b8889c8}/subscription.xml +6 -21
  27. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/consumer-secret +1 -0
  28. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/producer-secret +1 -0
  29. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/subscription.xml +6 -0
  30. data/server/instances/10/properties.xml +187 -0
  31. data/server/instances/11/properties.xml +191 -0
  32. data/server/instances/12/properties.xml +191 -0
  33. data/server/instances/13/properties.xml +204 -0
  34. data/server/instances/14/properties.xml +31 -0
  35. data/server/instances/15/properties.xml +30 -0
  36. data/server/instances/16/properties.xml +29 -0
  37. data/server/instances/17/properties.xml +29 -0
  38. data/server/instances/18/properties.xml +31 -0
  39. data/server/instances/19/properties.xml +31 -0
  40. data/server/instances/20/properties.xml +191 -0
  41. data/server/instances/7/properties.xml +120 -0
  42. data/server/instances/8/properties.xml +118 -0
  43. data/server/instances/9/properties.xml +120 -0
  44. data/test/callback.rb +2 -2
  45. data/tools/cpee +38 -0
  46. data/tools/server/resources/notifications/logging/consumer-secret +1 -0
  47. data/tools/server/resources/notifications/logging/producer-secret +1 -0
  48. data/tools/server/resources/notifications/logging/subscription.xml +7 -0
  49. data/tools/server/resources/properties.init +47 -0
  50. data/tools/server/server.rb +14 -0
  51. metadata +33 -7
  52. data/server/instances/6/notifications/0e9f3728f00c0562870110697bd8819c/consumer-secret +0 -1
  53. data/server/instances/6/notifications/0e9f3728f00c0562870110697bd8819c/producer-secret +0 -1
data/cpee.gemspec CHANGED
@@ -1,15 +1,17 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.3.209"
3
+ s.version = "1.3.211"
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"
7
7
 
8
8
  s.description = "see http://cpee.org"
9
9
 
10
- s.files = Dir['{example/**/*,server/**/*,lib/**/*,cockpit/**/*,contrib/logo*,contrib/Screen*,log/**/*}'] + %w(COPYING FEATURES INSTALL Rakefile cpee.gemspec README AUTHORS)
10
+ s.files = Dir['{example/**/*,server/**/*,tools/**/*,lib/**/*,cockpit/**/*,contrib/logo*,contrib/Screen*,log/**/*}'] + %w(COPYING FEATURES INSTALL Rakefile cpee.gemspec README AUTHORS)
11
11
  s.require_path = 'lib'
12
12
  s.extra_rdoc_files = ['README']
13
+ s.bindir = 'tools'
14
+ s.executables = ['cpee']
13
15
  s.test_files = Dir['{test/*,test/*/tc_*.rb}']
14
16
 
15
17
  s.required_ruby_version = '>=2.0.0'
@@ -494,8 +494,6 @@ module CPEE
494
494
  if url.class == String
495
495
  client = Riddl::Client.new(url,'http://riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml',:xmpp => @opts[:xmpp])
496
496
  params = notf.map{|ke,va|Riddl::Parameter::Simple.new(ke,va)}
497
- params << Riddl::Header.new("CPEE_BASE",self.base)
498
- params << Riddl::Header.new("CPEE_INSTANCE",self.instance)
499
497
  params << Riddl::Header.new("CPEE-BASE",self.base)
500
498
  params << Riddl::Header.new("CPEE-INSTANCE",self.instance)
501
499
  client.post params
@@ -535,9 +533,6 @@ module CPEE
535
533
  if u.class == String
536
534
  client = Riddl::Client.new(u,'http://riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml',:xmpp => @opts[:xmpp])
537
535
  params = notf.map{|ke,va|Riddl::Parameter::Simple.new(ke,va)}
538
- params << Riddl::Header.new("CPEE_BASE",self.base_url)
539
- params << Riddl::Header.new("CPEE_INSTANCE",self.instance_url)
540
- params << Riddl::Header.new("CPEE_CALLBACK",self.instance_url + '/callbacks/' + callback)
541
536
  params << Riddl::Header.new("CPEE-BASE",self.base_url)
542
537
  params << Riddl::Header.new("CPEE-INSTANCE",self.instance_url)
543
538
  params << Riddl::Header.new("CPEE-CALLBACK",self.instance_url + '/callbacks/' + callback)
@@ -43,7 +43,7 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
43
43
  end # }}}
44
44
 
45
45
  def activity_handle(passthrough, parameters) # {{{
46
- @controller.notify("activity/calling", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters)
46
+ @controller.notify("activity/calling", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
47
47
  if passthrough.nil?
48
48
  params = []
49
49
  callback = Digest::MD5.hexdigest(Kernel::rand().to_s)
@@ -54,12 +54,7 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
54
54
  params << Riddl::Parameter::Simple.new(s.name.to_s,CPEE::ValueHelper::generate(s.value))
55
55
  end
56
56
  end
57
- params << Riddl::Header.new("CPEE_BASE",@controller.base_url)
58
- params << Riddl::Header.new("CPEE_INSTANCE",@controller.instance_url)
59
- params << Riddl::Header.new("CPEE_CALLBACK",@controller.instance_url + '/callbacks/' + callback)
60
- params << Riddl::Header.new("CPEE_CALLBACK_ID",callback)
61
- params << Riddl::Header.new("CPEE_ACTIVITY",@handler_position)
62
- params << Riddl::Header.new("CPEE_LABEL",parameters[:label])
57
+
63
58
  params << Riddl::Header.new("CPEE-BASE",@controller.base_url)
64
59
  params << Riddl::Header.new("CPEE-INSTANCE",@controller.instance_url)
65
60
  params << Riddl::Header.new("CPEE-CALLBACK",@controller.instance_url + '/callbacks/' + callback)
@@ -67,7 +62,6 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
67
62
  params << Riddl::Header.new("CPEE-ACTIVITY",@handler_position)
68
63
  params << Riddl::Header.new("CPEE-LABEL",parameters[:label])
69
64
  @controller.attributes.each do |key,value|
70
- params << Riddl::Header.new("CPEE_ATTR_#{key}",value)
71
65
  params << Riddl::Header.new("CPEE-ATTR-#{key.gsub(/_/,'-')}",value)
72
66
  end
73
67
 
@@ -111,15 +105,15 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
111
105
  end # }}}
112
106
 
113
107
  def inform_activity_done # {{{
114
- @controller.notify("activity/done", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position)
108
+ @controller.notify("activity/done", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
115
109
  end # }}}
116
110
  def inform_activity_manipulate # {{{
117
- @controller.notify("activity/manipulating", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position)
111
+ @controller.notify("activity/manipulating", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
118
112
  end # }}}
119
113
  def inform_activity_failed(err) # {{{
120
114
  puts err.message
121
115
  puts err.backtrace
122
- @controller.notify("activity/failed", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :message => err.message, :line => err.backtrace[0].match(/(.*?):(\d+):/)[2], :where => err.backtrace[0].match(/(.*?):(\d+):/)[1])
116
+ @controller.notify("activity/failed", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :message => err.message, :line => err.backtrace[0].match(/(.*?):(\d+):/)[2], :where => err.backtrace[0].match(/(.*?):(\d+):/)[1], :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
123
117
  end # }}}
124
118
  def inform_manipulate_change(status,changed_dataelements,changed_endpoints,dataelements,endpoints) # {{{
125
119
  unless status.nil?
@@ -137,10 +131,10 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
137
131
  end # }}}
138
132
 
139
133
  def vote_sync_after # {{{
140
- @controller.call_vote("activity/syncing_after", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position)
134
+ @controller.call_vote("activity/syncing_after", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
141
135
  end # }}}
142
136
  def vote_sync_before(parameters=nil) # {{{
143
- @controller.call_vote("activity/syncing_before", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :parameters => parameters)
137
+ @controller.call_vote("activity/syncing_before", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :parameters => parameters, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
144
138
  end # }}}
145
139
 
146
140
  def simplify_result(result)
@@ -186,12 +180,12 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
186
180
  end
187
181
 
188
182
  def callback(result=nil,options={})
189
- @controller.notify("activity/receiving", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :received => structurize_result(result))
183
+ @controller.notify("activity/receiving", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :received => structurize_result(result), :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
190
184
  result = simplify_result(result)
191
185
  if options['CPEE_UPDATE']
192
186
  @handler_returnValue = result
193
187
  if options['CPEE_UPDATE_STATUS']
194
- @controller.notify("activity/status", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :status => options['CPEE_UPDATE_STATUS'])
188
+ @controller.notify("activity/status", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :status => options['CPEE_UPDATE_STATUS'], :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
195
189
  end
196
190
  @handler_continue.continue WEEL::Signal::Again
197
191
  else
@@ -31,30 +31,30 @@ class SOAPHandlerWrapper < WEEL::HandlerWrapperBase
31
31
  if passthrough.nil?
32
32
  callback = Digest::MD5.hexdigest(Kernel::rand().to_s)
33
33
  begin
34
- client = Savon.client do
34
+ client = Savon.client do
35
35
  wsdl @handler_endpoint
36
36
  log false
37
37
  log_level :info
38
38
  soap_header(
39
- "CPEE_BASE" => @url,
40
- "CPEE_INSTANCE" => "#{@url}/#{@controller.id}",
41
- "CPEE_CALLBACK" => callback
39
+ "CPEE-BASE" => @url,
40
+ "CPEE-INSTANCE" => "#{@url}/#{@controller.id}",
41
+ "CPEE-CALLBACK" => callback
42
42
  )
43
- end
43
+ end
44
44
  params = {}
45
45
  (parameters[:parameters] || {}).each do |h|
46
46
  if h.class == Hash
47
47
  h.each do |k,v|
48
48
  params[k] = JSON::generate(v)
49
- end
50
- end
49
+ end
50
+ end
51
51
  end
52
52
  response = client.call parameters[:method].to_sym, params
53
53
  result = response.body.first[1].first[1]
54
54
  rescue Savon::Error => error
55
55
  raise "Could not soap #{@handler_endpoint}->#{parameters[:method].to_sym}'s back: #{error.to_s}"
56
56
  end
57
-
57
+
58
58
  if response.http.headers["CPEE_CALLBACK"] && response.http.headers["CPEE_CALLBACK"] == 'true'
59
59
  @controller.callbacks[callback] = CPEE::Callback.new("callback activity: #{@handler_position}",self,:callback,nil,nil,:http)
60
60
  @handler_passthrough = callback
@@ -112,7 +112,7 @@ class SOAPHandlerWrapper < WEEL::HandlerWrapperBase
112
112
  unless status.nil?
113
113
  @controller.serialize_status!
114
114
  @controller.notify("status/change", :endpoint => @handler_endpoint, :instance => "#{@url}/#{@controller.id}", :activity => @handler_position, :id => status.id, :message => status.message)
115
- end
115
+ end
116
116
  unless dataelements.nil?
117
117
  @controller.serialize_dataelements!
118
118
  @controller.notify("dataelements/change", :endpoint => @handler_endpoint, :instance => "#{@url}/#{@controller.id}", :activity => @handler_position, :changed => dataelements)
@@ -120,7 +120,7 @@ class SOAPHandlerWrapper < WEEL::HandlerWrapperBase
120
120
  unless endpoints.nil?
121
121
  @controller.serialize_endpoints!
122
122
  @controller.notify("endpoints/change", :endpoint => @handler_endpoint, :instance => "#{@url}/#{@controller.id}", :activity => @handler_position, :changed => endpoints)
123
- end
123
+ end
124
124
  end # }}}
125
125
  def inform_position_change(ipc={}) # {{{
126
126
  @controller.serialize_positions!
@@ -0,0 +1 @@
1
+ 67c4f55a8651a9e6638dabb3162e59c5
@@ -0,0 +1 @@
1
+ a80086de3fde314651e73260eef88b7f
@@ -1,38 +1,23 @@
1
- <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0">
1
+ <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0" url="http://localhost:9299/events">
2
2
  <topic id="activity">
3
3
  <event>calling</event>
4
- <event>status</event>
5
- <event>manipulating</event>
6
4
  <event>failed</event>
5
+ <event>manipulating</event>
7
6
  <event>done</event>
8
7
  </topic>
9
- <topic id="position">
10
- <event>change</event>
11
- </topic>
12
- <topic id="description">
13
- <event>change</event>
14
- <event>error</event>
15
- </topic>
16
- <topic id="state">
17
- <event>change</event>
18
- </topic>
19
8
  <topic id="dataelements">
20
9
  <event>change</event>
21
10
  </topic>
22
11
  <topic id="endpoints">
23
12
  <event>change</event>
24
13
  </topic>
25
- <topic id="attributes">
26
- <event>change</event>
27
- </topic>
28
- <topic id="transformation">
29
- <event>change</event>
30
- </topic>
31
- <topic id="handlerwrapper">
14
+ <topic id="description">
32
15
  <event>error</event>
16
+ </topic>
17
+ <topic id="state">
33
18
  <event>change</event>
34
19
  </topic>
35
- <topic id="handlers">
20
+ <topic id="status">
36
21
  <event>change</event>
37
22
  </topic>
38
23
  </subscription>
@@ -0,0 +1 @@
1
+ f1b893f930441651cf29a0d5cc655934
@@ -0,0 +1 @@
1
+ 27c304e972512ee874969576adcf3c6c
@@ -0,0 +1,6 @@
1
+ <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0" url="http://solo.wst.univie.ac.at:9299/log">
2
+ <topic id="activity">
3
+ <event>calling</event>
4
+ <event>done</event>
5
+ </topic>
6
+ </subscription>
@@ -0,0 +1,187 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <uuid>cb9f41ef-e119-43a5-b8fa-5851ec3faef1</uuid>
4
+ <info>s</info>
5
+ <modeltype>Signavio</modeltype>
6
+ </attributes>
7
+ <state>ready</state>
8
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
9
+ <positions/>
10
+ <dataelements>
11
+ <x>_begin</x>
12
+ <nasty>What a nasty bug</nasty>
13
+ </dataelements>
14
+ <endpoints>
15
+ <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
16
+ </endpoints>
17
+ <dsl>call :a1, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4), ⭐(:name =&gt; :bug, :value =&gt; data.nasty)] }, finalize: &lt;&lt;-END
18
+ data.x += "done"
19
+ END
20
+ parallel :wait =&gt; 2 do
21
+ parallel_branch do
22
+ call :a2_1, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 6)] }
23
+ end
24
+ parallel_branch do
25
+ call :a2_2, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }
26
+ end
27
+ end
28
+ manipulate :a3, &lt;&lt;-END
29
+ data.x += '_end'
30
+ END
31
+ choose :inclusive do
32
+ alternative "data.x != nil" do
33
+ call :a4_1, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }
34
+ end
35
+ otherwise do
36
+ call :a4_2, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 10)] }
37
+ end
38
+ end
39
+ </dsl>
40
+ <dslx>
41
+ <description xmlns="http://cpee.org/ns/description/1.0">
42
+ <call id="a1" endpoint="timeout">
43
+ <parameters>
44
+ <!--{{{-->
45
+ <method>:post</method>
46
+ <arguments>
47
+ <timeout>4</timeout>
48
+ <bug>data.nasty</bug>
49
+ </arguments>
50
+ </parameters>
51
+ <!--}}}-->
52
+ <finalize output="result">data.x += "done"</finalize>
53
+ </call>
54
+ <parallel wait="2">
55
+ <parallel_branch>
56
+ <call id="a2_1" endpoint="timeout">
57
+ <parameters>
58
+ <!--{{{-->
59
+ <method>:post</method>
60
+ <arguments>
61
+ <timeout>6</timeout>
62
+ </arguments>
63
+ </parameters>
64
+ <!--}}}-->
65
+ </call>
66
+ </parallel_branch>
67
+ <parallel_branch>
68
+ <call id="a2_2" endpoint="timeout">
69
+ <parameters>
70
+ <!--{{{-->
71
+ <method>:post</method>
72
+ <arguments>
73
+ <timeout>2</timeout>
74
+ </arguments>
75
+ </parameters>
76
+ <!--}}}-->
77
+ </call>
78
+ </parallel_branch>
79
+ </parallel>
80
+ <manipulate id="a3">data.x += '_end'</manipulate>
81
+ <choose>
82
+ <alternative condition="data.x != nil">
83
+ <call id="a4_1" endpoint="timeout">
84
+ <parameters>
85
+ <!--{{{-->
86
+ <method>:post</method>
87
+ <arguments>
88
+ <timeout>4</timeout>
89
+ </arguments>
90
+ </parameters>
91
+ <!--}}}-->
92
+ </call>
93
+ </alternative>
94
+ <otherwise>
95
+ <call id="a4_2" endpoint="timeout">
96
+ <parameters>
97
+ <!--{{{-->
98
+ <method>:post</method>
99
+ <arguments>
100
+ <timeout>10</timeout>
101
+ </arguments>
102
+ </parameters>
103
+ <!--}}}-->
104
+ </call>
105
+ </otherwise>
106
+ </choose>
107
+ </description>
108
+ </dslx>
109
+ <status>
110
+ <id>0</id>
111
+ <message>undefined</message>
112
+ </status>
113
+ <description>
114
+ <description xmlns="http://cpee.org/ns/description/1.0">
115
+ <call id="a1" endpoint="timeout">
116
+ <parameters>
117
+ <!--{{{-->
118
+ <method>:post</method>
119
+ <arguments>
120
+ <timeout>4</timeout>
121
+ <bug>data.nasty</bug>
122
+ </arguments>
123
+ </parameters>
124
+ <!--}}}-->
125
+ <finalize output="result">data.x += "done"</finalize>
126
+ </call>
127
+ <parallel wait="2">
128
+ <parallel_branch>
129
+ <call id="a2_1" endpoint="timeout">
130
+ <parameters>
131
+ <!--{{{-->
132
+ <method>:post</method>
133
+ <arguments>
134
+ <timeout>6</timeout>
135
+ </arguments>
136
+ </parameters>
137
+ <!--}}}-->
138
+ </call>
139
+ </parallel_branch>
140
+ <parallel_branch>
141
+ <call id="a2_2" endpoint="timeout">
142
+ <parameters>
143
+ <!--{{{-->
144
+ <method>:post</method>
145
+ <arguments>
146
+ <timeout>2</timeout>
147
+ </arguments>
148
+ </parameters>
149
+ <!--}}}-->
150
+ </call>
151
+ </parallel_branch>
152
+ </parallel>
153
+ <manipulate id="a3">data.x += '_end'</manipulate>
154
+ <choose>
155
+ <alternative condition="data.x != nil">
156
+ <call id="a4_1" endpoint="timeout">
157
+ <parameters>
158
+ <!--{{{-->
159
+ <method>:post</method>
160
+ <arguments>
161
+ <timeout>4</timeout>
162
+ </arguments>
163
+ </parameters>
164
+ <!--}}}-->
165
+ </call>
166
+ </alternative>
167
+ <otherwise>
168
+ <call id="a4_2" endpoint="timeout">
169
+ <parameters>
170
+ <!--{{{-->
171
+ <method>:post</method>
172
+ <arguments>
173
+ <timeout>10</timeout>
174
+ </arguments>
175
+ </parameters>
176
+ <!--}}}-->
177
+ </call>
178
+ </otherwise>
179
+ </choose>
180
+ </description>
181
+ </description>
182
+ <transformation>
183
+ <description type="copy"/>
184
+ <dataelements type="rest"/>
185
+ <endpoints type="rest"/>
186
+ </transformation>
187
+ </properties>
@@ -0,0 +1,191 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <uuid>c2358d41-8c8e-4113-8e4c-88b5ff490985</uuid>
4
+ <info>Enter info here</info>
5
+ <modeltype>CPEE</modeltype>
6
+ <theme>default</theme>
7
+ </attributes>
8
+ <state>ready</state>
9
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
10
+ <positions/>
11
+ <dataelements>
12
+ <feedback>true</feedback>
13
+ </dataelements>
14
+ <endpoints>
15
+ <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
16
+ </endpoints>
17
+ <dsl>parallel do
18
+ parallel_branch do
19
+ loop pre_test{data.feedback} do
20
+ call :design, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }
21
+ call :validate, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }
22
+ call :publish, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 1)] }
23
+ end
24
+ end
25
+ parallel_branch do
26
+ loop pre_test{data.feedback} do
27
+ call :prepare, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }
28
+ call :fab, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }
29
+ call :evaluate, :timeout, parameters: { :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 4)] }
30
+ end
31
+ end
32
+ end
33
+ </dsl>
34
+ <dslx>
35
+ <description xmlns="http://cpee.org/ns/description/1.0">
36
+ <parallel>
37
+ <parallel_branch>
38
+ <loop mode="pre_test" condition="data.feedback">
39
+ <call id="design" endpoint="timeout">
40
+ <parameters>
41
+ <!--{{{-->
42
+ <method>:post</method>
43
+ <arguments>
44
+ <timeout>4</timeout>
45
+ </arguments>
46
+ </parameters>
47
+ <!--}}}-->
48
+ </call>
49
+ <call id="validate" endpoint="timeout">
50
+ <parameters>
51
+ <!--{{{-->
52
+ <method>:post</method>
53
+ <arguments>
54
+ <timeout>2</timeout>
55
+ </arguments>
56
+ </parameters>
57
+ <!--}}}-->
58
+ </call>
59
+ <call id="publish" endpoint="timeout">
60
+ <parameters>
61
+ <!--{{{-->
62
+ <method>:post</method>
63
+ <arguments>
64
+ <timeout>1</timeout>
65
+ </arguments>
66
+ </parameters>
67
+ <!--}}}-->
68
+ </call>
69
+ </loop>
70
+ </parallel_branch>
71
+ <parallel_branch>
72
+ <loop mode="pre_test" condition="data.feedback">
73
+ <call id="prepare" endpoint="timeout">
74
+ <parameters>
75
+ <!--{{{-->
76
+ <method>:post</method>
77
+ <arguments>
78
+ <timeout>4</timeout>
79
+ </arguments>
80
+ </parameters>
81
+ <!--}}}-->
82
+ </call>
83
+ <call id="fab" endpoint="timeout">
84
+ <parameters>
85
+ <!--{{{-->
86
+ <method>:post</method>
87
+ <arguments>
88
+ <timeout>4</timeout>
89
+ </arguments>
90
+ </parameters>
91
+ <!--}}}-->
92
+ </call>
93
+ <call id="evaluate" endpoint="timeout">
94
+ <parameters>
95
+ <!--{{{-->
96
+ <method>:post</method>
97
+ <arguments>
98
+ <timeout>4</timeout>
99
+ </arguments>
100
+ </parameters>
101
+ <!--}}}-->
102
+ </call>
103
+ </loop>
104
+ </parallel_branch>
105
+ </parallel>
106
+ </description>
107
+ </dslx>
108
+ <status>
109
+ <id>0</id>
110
+ <message>undefined</message>
111
+ </status>
112
+ <description>
113
+ <description xmlns="http://cpee.org/ns/description/1.0">
114
+ <parallel>
115
+ <parallel_branch>
116
+ <loop mode="pre_test" condition="data.feedback">
117
+ <call id="design" endpoint="timeout">
118
+ <parameters>
119
+ <!--{{{-->
120
+ <method>:post</method>
121
+ <arguments>
122
+ <timeout>4</timeout>
123
+ </arguments>
124
+ </parameters>
125
+ <!--}}}-->
126
+ </call>
127
+ <call id="validate" endpoint="timeout">
128
+ <parameters>
129
+ <!--{{{-->
130
+ <method>:post</method>
131
+ <arguments>
132
+ <timeout>2</timeout>
133
+ </arguments>
134
+ </parameters>
135
+ <!--}}}-->
136
+ </call>
137
+ <call id="publish" endpoint="timeout">
138
+ <parameters>
139
+ <!--{{{-->
140
+ <method>:post</method>
141
+ <arguments>
142
+ <timeout>1</timeout>
143
+ </arguments>
144
+ </parameters>
145
+ <!--}}}-->
146
+ </call>
147
+ </loop>
148
+ </parallel_branch>
149
+ <parallel_branch>
150
+ <loop mode="pre_test" condition="data.feedback">
151
+ <call id="prepare" endpoint="timeout">
152
+ <parameters>
153
+ <!--{{{-->
154
+ <method>:post</method>
155
+ <arguments>
156
+ <timeout>4</timeout>
157
+ </arguments>
158
+ </parameters>
159
+ <!--}}}-->
160
+ </call>
161
+ <call id="fab" endpoint="timeout">
162
+ <parameters>
163
+ <!--{{{-->
164
+ <method>:post</method>
165
+ <arguments>
166
+ <timeout>4</timeout>
167
+ </arguments>
168
+ </parameters>
169
+ <!--}}}-->
170
+ </call>
171
+ <call id="evaluate" endpoint="timeout">
172
+ <parameters>
173
+ <!--{{{-->
174
+ <method>:post</method>
175
+ <arguments>
176
+ <timeout>4</timeout>
177
+ </arguments>
178
+ </parameters>
179
+ <!--}}}-->
180
+ </call>
181
+ </loop>
182
+ </parallel_branch>
183
+ </parallel>
184
+ </description>
185
+ </description>
186
+ <transformation>
187
+ <description type="copy"/>
188
+ <dataelements type="rest"/>
189
+ <endpoints type="rest"/>
190
+ </transformation>
191
+ </properties>