cpee 1.3.185 → 1.3.187
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.
- checksums.yaml +4 -4
- data/cockpit/css/filters.svg +1 -1
- data/cockpit/js/instance.js +20 -15
- data/cockpit/js/wfadaptor.js +9 -3
- data/cockpit/themes/adventure/theme.js +18 -11
- data/cockpit/themes/default/theme.js +18 -11
- data/cpee.gemspec +3 -3
- data/log/log.xml +15 -1
- data/log/logoverlay.xml +10 -0
- data/log/server.rb +12 -9
- data/server/instances/34/properties.xml +149 -0
- data/server/instances/35/properties.xml +149 -0
- data/server/instances/36/properties.xml +164 -0
- data/server/instances/37/properties.xml +113 -0
- data/server/instances/38/notifications/b1c2a4fd87a36e2b663faf2c601499a3/consumer-secret +1 -0
- data/server/instances/38/notifications/b1c2a4fd87a36e2b663faf2c601499a3/producer-secret +1 -0
- data/server/instances/38/notifications/b1c2a4fd87a36e2b663faf2c601499a3/subscription.xml +37 -0
- data/server/instances/38/properties.xml +162 -0
- data/server/server.pid +1 -1
- metadata +19 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c54e4d196d652abc94c82dddaa76fe4358562c6e
|
4
|
+
data.tar.gz: d44189598cbc4a914fa6b33d70a7f0cdbbd9ffb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad3d4d6c8df9ca4e8cf77a1d00561687e155f8e14a5d6fdd51649040e4978e560b4196b6189e36723a0661d5cb061ceac1e549d25cd6d32652de134a5197794a
|
7
|
+
data.tar.gz: e32c47e5f74aa049cb63bf2e05dfc1b38319b0a4f926ea5734e7909c6e9223f0038f31a77db6d3ced7308c47e447e2189df749aff5ade534085d1b8c11a97ead
|
data/cockpit/css/filters.svg
CHANGED
data/cockpit/js/instance.js
CHANGED
@@ -5,6 +5,7 @@ var subscription_state = 'less';
|
|
5
5
|
var save = {};
|
6
6
|
save['state']= undefined;
|
7
7
|
save['dsl'] = undefined;
|
8
|
+
save['graph'] = undefined;
|
8
9
|
save['endpoints'] = undefined;
|
9
10
|
save['dataelements'] = undefined;
|
10
11
|
save['attributes'] = undefined;
|
@@ -228,7 +229,7 @@ function monitor_instance(load) {// {{{
|
|
228
229
|
case 'attributes':
|
229
230
|
monitor_instance_values("attributes");
|
230
231
|
monitor_instance_transformation();
|
231
|
-
monitor_graph_change();
|
232
|
+
monitor_graph_change(true);
|
232
233
|
break;
|
233
234
|
case 'state':
|
234
235
|
monitor_instance_state_change(JSON.parse($('event > notification',data).text()).state);
|
@@ -288,33 +289,37 @@ function adaptor_init(url,theme,dslx) {
|
|
288
289
|
graphrealization.set_svg_container($('#graphcanvas'));
|
289
290
|
graphrealization.set_description($(dslx), true);
|
290
291
|
graphrealization.notify = function(svgid) {
|
292
|
+
var g = graphrealization.get_description();
|
293
|
+
save['graph'] = $X(g);
|
291
294
|
$.ajax({
|
292
295
|
type: "PUT",
|
293
296
|
url: url + "/properties/values/description/",
|
294
|
-
data: ({'content': '<content>' +
|
297
|
+
data: ({'content': '<content>' + g + '</content>'})
|
295
298
|
});
|
296
|
-
manifestation.events.click(svgid
|
299
|
+
manifestation.events.click(svgid);
|
297
300
|
};
|
298
301
|
monitor_instance_pos();
|
299
302
|
});
|
300
303
|
}
|
301
304
|
|
302
|
-
function monitor_graph_change() {
|
305
|
+
function monitor_graph_change(force) {
|
303
306
|
var url = $("#current-instance").text();
|
304
307
|
$.ajax({
|
305
308
|
type: "GET",
|
306
309
|
url: url + "/properties/values/dslx/",
|
307
310
|
success: function(dslx){
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
311
|
+
if (force || !save['graph'] || (save['graph'] && save['graph'].serializePrettyXML() != $(dslx).serializePrettyXML())) {
|
312
|
+
$.ajax({
|
313
|
+
type: "GET",
|
314
|
+
url: url + "/properties/values/attributes/theme/",
|
315
|
+
success: function(res){
|
316
|
+
adaptor_init(url,$('value',res).text(),dslx);
|
317
|
+
},
|
318
|
+
error: function() {
|
319
|
+
adaptor_init(url,'default',dslx);
|
320
|
+
}
|
321
|
+
});
|
322
|
+
}
|
318
323
|
}
|
319
324
|
});
|
320
325
|
}
|
@@ -336,7 +341,7 @@ function monitor_instance_dsl() {// {{{
|
|
336
341
|
res = res.replace(/activity\s+\[:([A-Za-z][a-zA-Z0-9_]+)([^\]]*\])/g,"<span class='activities' id=\"activity-$1\">activity [:$1$2</span>");
|
337
342
|
|
338
343
|
ctv.append(res);
|
339
|
-
monitor_graph_change();
|
344
|
+
monitor_graph_change(false);
|
340
345
|
}
|
341
346
|
}
|
342
347
|
});
|
data/cockpit/js/wfadaptor.js
CHANGED
@@ -39,8 +39,8 @@ function WfAdaptor(theme_base,doit) { // Controller {{{
|
|
39
39
|
// }}}
|
40
40
|
|
41
41
|
// helper funtions
|
42
|
-
this.set_description = function(desc) { // public {{{
|
43
|
-
this.description.set_description(desc);
|
42
|
+
this.set_description = function(desc,auto_update) { // public {{{
|
43
|
+
this.description.set_description(desc,auto_update);
|
44
44
|
} // }}}
|
45
45
|
this.get_description = function() { // public {{{
|
46
46
|
return description.get_description();
|
@@ -168,6 +168,12 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
168
168
|
self.svg.container.attr({'height': (graph.max.row+0.3)*self.height, 'width':(graph.max.col+0.65)*self.width});
|
169
169
|
self.svg.container.append(graph.svg);
|
170
170
|
} // }}}
|
171
|
+
this.get_node_by_svg_id = function(svg_id) { // {{{
|
172
|
+
return $('[element-id = \'' + svg_id + '\'] g.activities', self.svg.container);
|
173
|
+
} // }}}
|
174
|
+
this.get_nodes = function() { // {{{
|
175
|
+
return $('g.activities', self.svg.container);
|
176
|
+
} // }}}
|
171
177
|
// }}}
|
172
178
|
// Helper Functions {{{
|
173
179
|
var draw_symbol = this.draw.draw_symbol = function (tname, sym_name, id, title, row, col, group) { // {{{
|
@@ -275,7 +281,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
275
281
|
|
276
282
|
// Generic Functions {{{
|
277
283
|
this.set_description = function(desc, auto_update) { // public {{{
|
278
|
-
if(auto_update != undefined)
|
284
|
+
if(auto_update != undefined) update_illustrator = auto_update;
|
279
285
|
if(typeof desc == "string") {
|
280
286
|
description = $($.parseXML(desc));
|
281
287
|
} else if(desc instanceof jQuery) {
|
@@ -30,7 +30,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
30
30
|
if(group.length > 0) menu['Insert after'] = group;
|
31
31
|
}
|
32
32
|
|
33
|
-
if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete)
|
33
|
+
if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
|
34
34
|
var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
|
35
35
|
icon.children('.rfill').css({'fill':'#ff7f7f','fill-opacity':'1'});
|
36
36
|
menu['Delete'] = [{
|
@@ -39,6 +39,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
39
39
|
'menu_icon': icon,
|
40
40
|
'params': [null, xml_node]
|
41
41
|
}];
|
42
|
+
}
|
42
43
|
if($('> finalize, > update', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
|
43
44
|
var icon = self.elements.callmanipulate.illustrator.svg.clone();
|
44
45
|
icon.children('.rfill:last').css({'fill':'#ff7f7f','fill-opacity':'1'});
|
@@ -53,12 +54,20 @@ function WFAdaptorManifestation(adaptor) {
|
|
53
54
|
}
|
54
55
|
return false;
|
55
56
|
} // }}}
|
56
|
-
this.events.click = function(svgid
|
57
|
+
this.events.click = function(svgid) { // {{{
|
58
|
+
var visid = 'details';
|
59
|
+
var tab = $('#dat_' + visid);
|
60
|
+
tab.empty();
|
61
|
+
|
57
62
|
if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
|
58
63
|
return;
|
59
64
|
}
|
60
|
-
|
61
|
-
|
65
|
+
self.adaptor.illustrator.get_nodes().removeClass('clicked');
|
66
|
+
|
67
|
+
var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
|
68
|
+
if (vtarget.length > 0) {
|
69
|
+
vtarget.addClass('clicked');
|
70
|
+
}
|
62
71
|
|
63
72
|
if ($('#state').text() != 'finished')
|
64
73
|
$('#main ui-behind button').show();
|
@@ -70,15 +79,13 @@ function WFAdaptorManifestation(adaptor) {
|
|
70
79
|
return;
|
71
80
|
}
|
72
81
|
|
73
|
-
var visid = 'details';
|
74
|
-
var tab = $('#dat_' + visid);
|
75
82
|
var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
|
76
83
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
84
|
+
if (self.adaptor.description.elements[$(node).attr('svg-type')]) {
|
85
|
+
save[visid + '_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
|
86
|
+
save[visid] = new RelaxNGui(self.adaptor.description.elements[$(node).attr('svg-type')],tab,self.adaptor.description.context_eval);
|
87
|
+
save[visid].content(node);
|
88
|
+
}
|
82
89
|
} // }}}
|
83
90
|
this.events.dblclick = function(svgid, e) { // {{{
|
84
91
|
} // }}}
|
@@ -30,7 +30,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
30
30
|
if(group.length > 0) menu['Insert after'] = group;
|
31
31
|
}
|
32
32
|
|
33
|
-
if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete)
|
33
|
+
if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
|
34
34
|
var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
|
35
35
|
icon.children('.rfill').css({'fill':'#ff7f7f','fill-opacity':'1'});
|
36
36
|
menu['Delete'] = [{
|
@@ -39,6 +39,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
39
39
|
'menu_icon': icon,
|
40
40
|
'params': [null, xml_node]
|
41
41
|
}];
|
42
|
+
}
|
42
43
|
if($('> finalize, > update', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
|
43
44
|
var icon = self.elements.callmanipulate.illustrator.svg.clone();
|
44
45
|
icon.children('.rfill:last').css({'fill':'#ff7f7f','fill-opacity':'1'});
|
@@ -53,12 +54,20 @@ function WFAdaptorManifestation(adaptor) {
|
|
53
54
|
}
|
54
55
|
return false;
|
55
56
|
} // }}}
|
56
|
-
this.events.click = function(svgid
|
57
|
+
this.events.click = function(svgid) { // {{{
|
58
|
+
var visid = 'details';
|
59
|
+
var tab = $('#dat_' + visid);
|
60
|
+
tab.empty();
|
61
|
+
|
57
62
|
if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
|
58
63
|
return;
|
59
64
|
}
|
60
|
-
|
61
|
-
|
65
|
+
self.adaptor.illustrator.get_nodes().removeClass('clicked');
|
66
|
+
|
67
|
+
var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
|
68
|
+
if (vtarget.length > 0) {
|
69
|
+
vtarget.addClass('clicked');
|
70
|
+
}
|
62
71
|
|
63
72
|
if ($('#state').text() != 'finished')
|
64
73
|
$('#main ui-behind button').show();
|
@@ -70,15 +79,13 @@ function WFAdaptorManifestation(adaptor) {
|
|
70
79
|
return;
|
71
80
|
}
|
72
81
|
|
73
|
-
var visid = 'details';
|
74
|
-
var tab = $('#dat_' + visid);
|
75
82
|
var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
|
76
83
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
84
|
+
if (self.adaptor.description.elements[$(node).attr('svg-type')]) {
|
85
|
+
save[visid + '_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
|
86
|
+
save[visid] = new RelaxNGui(self.adaptor.description.elements[$(node).attr('svg-type')],tab,self.adaptor.description.context_eval);
|
87
|
+
save[visid].content(node);
|
88
|
+
}
|
82
89
|
} // }}}
|
83
90
|
this.events.dblclick = function(svgid, e) { // {{{
|
84
91
|
} // }}}
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "1.3.
|
3
|
+
s.version = "1.3.187"
|
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"
|
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.email = 'juergen.mangler@gmail.com'
|
20
20
|
s.homepage = 'http://cpee.org/'
|
21
21
|
|
22
|
-
s.add_runtime_dependency 'riddl', '
|
23
|
-
s.add_runtime_dependency 'weel', '
|
22
|
+
s.add_runtime_dependency 'riddl', '~> 0.99'
|
23
|
+
s.add_runtime_dependency 'weel', '~> 1.99'
|
24
24
|
s.add_runtime_dependency 'savon', '~> 2'
|
25
25
|
s.add_runtime_dependency 'highline', '~> 1.6'
|
26
26
|
end
|
data/log/log.xml
CHANGED
@@ -1,13 +1,27 @@
|
|
1
1
|
<declaration xmlns="http://riddl.org/ns/declaration/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
2
|
-
<interface name="events">
|
2
|
+
<interface name="events">
|
3
3
|
<xi:include href="http://www.riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml"/>
|
4
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>
|
5
11
|
|
6
12
|
<facade>
|
13
|
+
<tile>
|
14
|
+
<layer name="cpee"/>
|
15
|
+
</tile>
|
7
16
|
<tile>
|
8
17
|
<layer name="events">
|
9
18
|
<apply-to>/log</apply-to>
|
10
19
|
</layer>
|
11
20
|
</tile>
|
21
|
+
<tile>
|
22
|
+
<layer name="logoverlay">
|
23
|
+
<apply-to>/{}/log</apply-to>
|
24
|
+
</layer>
|
25
|
+
</tile>
|
12
26
|
</facade>
|
13
27
|
</declaration>
|
data/log/logoverlay.xml
ADDED
@@ -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>
|
data/log/server.rb
CHANGED
@@ -15,7 +15,7 @@ class Logging < Riddl::Implementation #{{{
|
|
15
15
|
def response
|
16
16
|
topic = @p[1].value
|
17
17
|
event = @p[2].value
|
18
|
-
if(topic == 'activity' && (event=='done' || event == 'calling'))
|
18
|
+
if(topic == 'activity' && (event=='done' || event == 'calling'))
|
19
19
|
log_dir = ::File.dirname(__FILE__) + "/logs"
|
20
20
|
instancenr = @h['CPEE_INSTANCE'].split('/').last
|
21
21
|
notification = JSON.parse(@p[3].value)
|
@@ -35,7 +35,6 @@ class Logging < Riddl::Implementation #{{{
|
|
35
35
|
event = trace.add "event"
|
36
36
|
event.add 'string', :key => "concept:name", :value => log_hash["label"]
|
37
37
|
event.add 'string', :key => "lifecycle:transition", :value => event=='done'?"complete":"start"
|
38
|
-
pp log_hash
|
39
38
|
if log_hash.has_key?("data_send")
|
40
39
|
list = event.add 'list', :key => "data_send"
|
41
40
|
log_hash["data_send"].each do |k,v|
|
@@ -57,27 +56,31 @@ class Logging < Riddl::Implementation #{{{
|
|
57
56
|
log_hash["data_received"].each{|e| list.add 'string', :key => e.keys[0] , :value => e.values[0]}
|
58
57
|
end
|
59
58
|
end
|
60
|
-
event.add 'date', :key => "time:timestamp", :value => Time.now unless time_added
|
59
|
+
event.add 'date', :key => "time:timestamp", :value => Time.now unless time_added
|
61
60
|
end
|
62
61
|
else
|
63
|
-
pp "Something wrong"
|
62
|
+
pp "Something wrong"
|
64
63
|
end
|
65
64
|
|
66
65
|
|
67
66
|
|
68
67
|
|
69
68
|
end
|
70
|
-
end #}}}
|
69
|
+
end #}}}
|
71
70
|
|
72
71
|
|
73
|
-
Riddl::Server.new(::File.dirname(__FILE__) + '/log.xml', :host => "
|
72
|
+
Riddl::Server.new(::File.dirname(__FILE__) + '/log.xml', :host => "cpee.org", :port => 9299) do #{{{
|
74
73
|
accessible_description true
|
75
74
|
cross_site_xhr true
|
75
|
+
log_path = "/home/demo/Projects/cpee-helpers/log/logs"
|
76
76
|
|
77
|
-
|
78
|
-
interface 'events' do
|
77
|
+
interface 'events' do
|
79
78
|
run Logging if post 'event'
|
80
79
|
#run CB if post 'vote'
|
81
80
|
end
|
82
|
-
|
81
|
+
interface 'logoverlay' do |r|
|
82
|
+
run Riddl::Utils::FileServe, log_path + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes","text/xml" if get
|
83
|
+
end
|
84
|
+
|
85
|
+
|
83
86
|
end.loop! #}}}
|
@@ -0,0 +1,149 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<attributes>
|
3
|
+
<info>Enter info here</info>
|
4
|
+
<modeltype>CPEE</modeltype>
|
5
|
+
<theme>default</theme>
|
6
|
+
</attributes>
|
7
|
+
<state>ready</state>
|
8
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
9
|
+
<positions/>
|
10
|
+
<dataelements>
|
11
|
+
<persons>3</persons>
|
12
|
+
<card>Visa_12345</card>
|
13
|
+
<airline>null</airline>
|
14
|
+
<hotels>[]</hotels>
|
15
|
+
<from>Vienna</from>
|
16
|
+
<to>Prague</to>
|
17
|
+
<costs>0</costs>
|
18
|
+
</dataelements>
|
19
|
+
<endpoints>
|
20
|
+
<bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
|
21
|
+
<bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
|
22
|
+
<approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
|
23
|
+
</endpoints>
|
24
|
+
<dsl>call :a1, :bookAir, parameters: { :method => :post, :arguments => {:from => data.from, :to => data.to, :persons => data.persons} }, finalize: <<-END
|
25
|
+
data.airline = result.value('id')
|
26
|
+
data.costs += result.value('costs').to_f
|
27
|
+
status.update 1, 'Hotel'
|
28
|
+
END
|
29
|
+
parallel do
|
30
|
+
loop pre_test{data.persons > 0} do
|
31
|
+
parallel_branch data.persons do |p|
|
32
|
+
call :a2, :bookHotel, parameters: { :method => :post, :arguments => {:to => data.to} }, finalize: <<-END
|
33
|
+
data.hotels << result.value('id')
|
34
|
+
data.costs += result.value('costs').to_f
|
35
|
+
END
|
36
|
+
end
|
37
|
+
manipulate :a3, <<-END
|
38
|
+
data.persons -= 1
|
39
|
+
END
|
40
|
+
end
|
41
|
+
end
|
42
|
+
choose :inclusive do
|
43
|
+
alternative "data.costs > 700" do
|
44
|
+
call :a4, :approve, parameters: { :method => :post, :arguments => {:costs => data.costs} }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
</dsl>
|
48
|
+
<dslx>
|
49
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
50
|
+
<call id="a1" endpoint="bookAir">
|
51
|
+
<parameters>
|
52
|
+
<method>:post</method>
|
53
|
+
<arguments>
|
54
|
+
<from>data.from</from>
|
55
|
+
<to>data.to</to>
|
56
|
+
<persons>data.persons</persons>
|
57
|
+
</arguments>
|
58
|
+
</parameters>
|
59
|
+
<finalize output="result"> data.airline = result.value('id')
|
60
|
+
data.costs += result.value('costs').to_f
|
61
|
+
status.update 1, 'Hotel'</finalize>
|
62
|
+
</call>
|
63
|
+
<parallel>
|
64
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
65
|
+
<parallel_branch pass="data.persons" local="p">
|
66
|
+
<call id="a2" endpoint="bookHotel">
|
67
|
+
<parameters>
|
68
|
+
<method>:post</method>
|
69
|
+
<arguments>
|
70
|
+
<to>data.to</to>
|
71
|
+
</arguments>
|
72
|
+
</parameters>
|
73
|
+
<finalize output="result"> data.hotels << result.value('id')
|
74
|
+
data.costs += result.value('costs').to_f</finalize>
|
75
|
+
</call>
|
76
|
+
</parallel_branch>
|
77
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
78
|
+
</loop>
|
79
|
+
</parallel>
|
80
|
+
<choose>
|
81
|
+
<alternative condition="data.costs > 700">
|
82
|
+
<call id="a4" endpoint="approve">
|
83
|
+
<parameters>
|
84
|
+
<method>:post</method>
|
85
|
+
<arguments>
|
86
|
+
<costs>data.costs</costs>
|
87
|
+
</arguments>
|
88
|
+
</parameters>
|
89
|
+
</call>
|
90
|
+
</alternative>
|
91
|
+
</choose>
|
92
|
+
</description>
|
93
|
+
</dslx>
|
94
|
+
<status>
|
95
|
+
<id>0</id>
|
96
|
+
<message>undefined</message>
|
97
|
+
</status>
|
98
|
+
<description>
|
99
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
100
|
+
<call id="a1" endpoint="bookAir">
|
101
|
+
<parameters>
|
102
|
+
<method>:post</method>
|
103
|
+
<arguments>
|
104
|
+
<from>data.from</from>
|
105
|
+
<to>data.to</to>
|
106
|
+
<persons>data.persons</persons>
|
107
|
+
</arguments>
|
108
|
+
</parameters>
|
109
|
+
<finalize output="result"> data.airline = result.value('id')
|
110
|
+
data.costs += result.value('costs').to_f
|
111
|
+
status.update 1, 'Hotel'</finalize>
|
112
|
+
</call>
|
113
|
+
<parallel>
|
114
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
115
|
+
<parallel_branch pass="data.persons" local="p">
|
116
|
+
<call id="a2" endpoint="bookHotel">
|
117
|
+
<parameters>
|
118
|
+
<method>:post</method>
|
119
|
+
<arguments>
|
120
|
+
<to>data.to</to>
|
121
|
+
</arguments>
|
122
|
+
</parameters>
|
123
|
+
<finalize output="result"> data.hotels << result.value('id')
|
124
|
+
data.costs += result.value('costs').to_f</finalize>
|
125
|
+
</call>
|
126
|
+
</parallel_branch>
|
127
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
128
|
+
</loop>
|
129
|
+
</parallel>
|
130
|
+
<choose>
|
131
|
+
<alternative condition="data.costs > 700">
|
132
|
+
<call id="a4" endpoint="approve">
|
133
|
+
<parameters>
|
134
|
+
<method>:post</method>
|
135
|
+
<arguments>
|
136
|
+
<costs>data.costs</costs>
|
137
|
+
</arguments>
|
138
|
+
</parameters>
|
139
|
+
</call>
|
140
|
+
</alternative>
|
141
|
+
</choose>
|
142
|
+
</description>
|
143
|
+
</description>
|
144
|
+
<transformation>
|
145
|
+
<description type="copy"/>
|
146
|
+
<dataelements type="rest"/>
|
147
|
+
<endpoints type="rest"/>
|
148
|
+
</transformation>
|
149
|
+
</properties>
|
@@ -0,0 +1,149 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<attributes>
|
3
|
+
<info>Linear</info>
|
4
|
+
<modeltype>CPEE</modeltype>
|
5
|
+
<theme>default</theme>
|
6
|
+
</attributes>
|
7
|
+
<state>ready</state>
|
8
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
9
|
+
<positions/>
|
10
|
+
<dataelements>
|
11
|
+
<persons>3</persons>
|
12
|
+
<card>Visa_12345</card>
|
13
|
+
<airline>null</airline>
|
14
|
+
<hotels>[]</hotels>
|
15
|
+
<from>Vienna</from>
|
16
|
+
<to>Prague</to>
|
17
|
+
<costs>0</costs>
|
18
|
+
</dataelements>
|
19
|
+
<endpoints>
|
20
|
+
<bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
|
21
|
+
<bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
|
22
|
+
<approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
|
23
|
+
</endpoints>
|
24
|
+
<dsl>call :a1, :bookAir, parameters: { :method => :post, :arguments => {:from => data.from, :to => data.to, :persons => data.persons} }, finalize: <<-END
|
25
|
+
data.airline = result.value('id')
|
26
|
+
data.costs += result.value('costs').to_f
|
27
|
+
status.update 1, 'Hotel'
|
28
|
+
END
|
29
|
+
parallel do
|
30
|
+
loop pre_test{data.persons > 0} do
|
31
|
+
parallel_branch data.persons do |p|
|
32
|
+
call :a2, :bookHotel, parameters: { :method => :post, :arguments => {:to => data.to} }, finalize: <<-END
|
33
|
+
data.hotels << result.value('id')
|
34
|
+
data.costs += result.value('costs').to_f
|
35
|
+
END
|
36
|
+
end
|
37
|
+
manipulate :a3, <<-END
|
38
|
+
data.persons -= 1
|
39
|
+
END
|
40
|
+
end
|
41
|
+
end
|
42
|
+
choose :inclusive do
|
43
|
+
alternative "data.costs > 700" do
|
44
|
+
call :a4, :approve, parameters: { :method => :post, :arguments => {:costs => data.costs} }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
</dsl>
|
48
|
+
<dslx>
|
49
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
50
|
+
<call id="a1" endpoint="bookAir">
|
51
|
+
<parameters>
|
52
|
+
<method>:post</method>
|
53
|
+
<arguments>
|
54
|
+
<from>data.from</from>
|
55
|
+
<to>data.to</to>
|
56
|
+
<persons>data.persons</persons>
|
57
|
+
</arguments>
|
58
|
+
</parameters>
|
59
|
+
<finalize output="result"> data.airline = result.value('id')
|
60
|
+
data.costs += result.value('costs').to_f
|
61
|
+
status.update 1, 'Hotel'</finalize>
|
62
|
+
</call>
|
63
|
+
<parallel>
|
64
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
65
|
+
<parallel_branch pass="data.persons" local="p">
|
66
|
+
<call id="a2" endpoint="bookHotel">
|
67
|
+
<parameters>
|
68
|
+
<method>:post</method>
|
69
|
+
<arguments>
|
70
|
+
<to>data.to</to>
|
71
|
+
</arguments>
|
72
|
+
</parameters>
|
73
|
+
<finalize output="result"> data.hotels << result.value('id')
|
74
|
+
data.costs += result.value('costs').to_f</finalize>
|
75
|
+
</call>
|
76
|
+
</parallel_branch>
|
77
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
78
|
+
</loop>
|
79
|
+
</parallel>
|
80
|
+
<choose>
|
81
|
+
<alternative condition="data.costs > 700">
|
82
|
+
<call id="a4" endpoint="approve">
|
83
|
+
<parameters>
|
84
|
+
<method>:post</method>
|
85
|
+
<arguments>
|
86
|
+
<costs>data.costs</costs>
|
87
|
+
</arguments>
|
88
|
+
</parameters>
|
89
|
+
</call>
|
90
|
+
</alternative>
|
91
|
+
</choose>
|
92
|
+
</description>
|
93
|
+
</dslx>
|
94
|
+
<status>
|
95
|
+
<id>0</id>
|
96
|
+
<message>undefined</message>
|
97
|
+
</status>
|
98
|
+
<description>
|
99
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
100
|
+
<call id="a1" endpoint="bookAir">
|
101
|
+
<parameters>
|
102
|
+
<method>:post</method>
|
103
|
+
<arguments>
|
104
|
+
<from>data.from</from>
|
105
|
+
<to>data.to</to>
|
106
|
+
<persons>data.persons</persons>
|
107
|
+
</arguments>
|
108
|
+
</parameters>
|
109
|
+
<finalize output="result"> data.airline = result.value('id')
|
110
|
+
data.costs += result.value('costs').to_f
|
111
|
+
status.update 1, 'Hotel'</finalize>
|
112
|
+
</call>
|
113
|
+
<parallel>
|
114
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
115
|
+
<parallel_branch pass="data.persons" local="p">
|
116
|
+
<call id="a2" endpoint="bookHotel">
|
117
|
+
<parameters>
|
118
|
+
<method>:post</method>
|
119
|
+
<arguments>
|
120
|
+
<to>data.to</to>
|
121
|
+
</arguments>
|
122
|
+
</parameters>
|
123
|
+
<finalize output="result"> data.hotels << result.value('id')
|
124
|
+
data.costs += result.value('costs').to_f</finalize>
|
125
|
+
</call>
|
126
|
+
</parallel_branch>
|
127
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
128
|
+
</loop>
|
129
|
+
</parallel>
|
130
|
+
<choose>
|
131
|
+
<alternative condition="data.costs > 700">
|
132
|
+
<call id="a4" endpoint="approve">
|
133
|
+
<parameters>
|
134
|
+
<method>:post</method>
|
135
|
+
<arguments>
|
136
|
+
<costs>data.costs</costs>
|
137
|
+
</arguments>
|
138
|
+
</parameters>
|
139
|
+
</call>
|
140
|
+
</alternative>
|
141
|
+
</choose>
|
142
|
+
</description>
|
143
|
+
</description>
|
144
|
+
<transformation>
|
145
|
+
<description type="copy"/>
|
146
|
+
<dataelements type="rest"/>
|
147
|
+
<endpoints type="rest"/>
|
148
|
+
</transformation>
|
149
|
+
</properties>
|
@@ -0,0 +1,164 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<attributes>
|
3
|
+
<info>Enter info here</info>
|
4
|
+
<modeltype>CPEE</modeltype>
|
5
|
+
<theme>default</theme>
|
6
|
+
</attributes>
|
7
|
+
<state>ready</state>
|
8
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
9
|
+
<positions/>
|
10
|
+
<dataelements>
|
11
|
+
<persons>3</persons>
|
12
|
+
<card>Visa_12345</card>
|
13
|
+
<airline>null</airline>
|
14
|
+
<hotels>[]</hotels>
|
15
|
+
<from>Vienna</from>
|
16
|
+
<to>Prague</to>
|
17
|
+
<costs>0</costs>
|
18
|
+
</dataelements>
|
19
|
+
<endpoints>
|
20
|
+
<bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
|
21
|
+
<bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
|
22
|
+
<approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
|
23
|
+
</endpoints>
|
24
|
+
<dsl>call :a1, :bookAir, parameters: { :method => :post, :arguments => {:from => data.from, :to => data.to, :persons => data.persons} }, finalize: <<-END
|
25
|
+
data.airline = result.value('id')
|
26
|
+
data.costs += result.value('costs').to_f
|
27
|
+
status.update 1, 'Hotel'
|
28
|
+
END
|
29
|
+
call :a5, nil, parameters: { }
|
30
|
+
parallel do
|
31
|
+
loop pre_test{data.persons > 0} do
|
32
|
+
parallel_branch data.persons do |p|
|
33
|
+
call :a2, :bookHotel, parameters: { :method => :post, :arguments => {:to => data.to} }, finalize: <<-END
|
34
|
+
data.hotels << result.value('id')
|
35
|
+
data.costs += result.value('costs').to_f
|
36
|
+
END
|
37
|
+
end
|
38
|
+
manipulate :a3, <<-END
|
39
|
+
data.persons -= 1
|
40
|
+
END
|
41
|
+
end
|
42
|
+
end
|
43
|
+
choose :inclusive do
|
44
|
+
alternative "data.costs > 700" do
|
45
|
+
call :a4, :approve, parameters: { :method => :post, :arguments => {:costs => data.costs} }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
</dsl>
|
49
|
+
<dslx>
|
50
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
51
|
+
<call id="a1" endpoint="bookAir">
|
52
|
+
<parameters>
|
53
|
+
<method>:post</method>
|
54
|
+
<arguments>
|
55
|
+
<from>data.from</from>
|
56
|
+
<to>data.to</to>
|
57
|
+
<persons>data.persons</persons>
|
58
|
+
</arguments>
|
59
|
+
</parameters>
|
60
|
+
<finalize output="result"> data.airline = result.value('id')
|
61
|
+
data.costs += result.value('costs').to_f
|
62
|
+
status.update 1, 'Hotel'</finalize>
|
63
|
+
</call>
|
64
|
+
<call xmlns="" id="a5" endpoint="">
|
65
|
+
<parameters>
|
66
|
+
<label/>
|
67
|
+
<method>:post</method>
|
68
|
+
<arguments/>
|
69
|
+
</parameters>
|
70
|
+
</call>
|
71
|
+
<parallel>
|
72
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
73
|
+
<parallel_branch pass="data.persons" local="p">
|
74
|
+
<call id="a2" endpoint="bookHotel">
|
75
|
+
<parameters>
|
76
|
+
<method>:post</method>
|
77
|
+
<arguments>
|
78
|
+
<to>data.to</to>
|
79
|
+
</arguments>
|
80
|
+
</parameters>
|
81
|
+
<finalize output="result"> data.hotels << result.value('id')
|
82
|
+
data.costs += result.value('costs').to_f</finalize>
|
83
|
+
</call>
|
84
|
+
</parallel_branch>
|
85
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
86
|
+
</loop>
|
87
|
+
</parallel>
|
88
|
+
<choose>
|
89
|
+
<alternative condition="data.costs > 700">
|
90
|
+
<call id="a4" endpoint="approve">
|
91
|
+
<parameters>
|
92
|
+
<method>:post</method>
|
93
|
+
<arguments>
|
94
|
+
<costs>data.costs</costs>
|
95
|
+
</arguments>
|
96
|
+
</parameters>
|
97
|
+
</call>
|
98
|
+
</alternative>
|
99
|
+
</choose>
|
100
|
+
</description>
|
101
|
+
</dslx>
|
102
|
+
<status>
|
103
|
+
<id>0</id>
|
104
|
+
<message>undefined</message>
|
105
|
+
</status>
|
106
|
+
<description>
|
107
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
108
|
+
<call id="a1" endpoint="bookAir">
|
109
|
+
<parameters>
|
110
|
+
<method>:post</method>
|
111
|
+
<arguments>
|
112
|
+
<from>data.from</from>
|
113
|
+
<to>data.to</to>
|
114
|
+
<persons>data.persons</persons>
|
115
|
+
</arguments>
|
116
|
+
</parameters>
|
117
|
+
<finalize output="result"> data.airline = result.value('id')
|
118
|
+
data.costs += result.value('costs').to_f
|
119
|
+
status.update 1, 'Hotel'</finalize>
|
120
|
+
</call>
|
121
|
+
<call xmlns="" id="a5" endpoint="">
|
122
|
+
<parameters>
|
123
|
+
<label/>
|
124
|
+
<method>:post</method>
|
125
|
+
<arguments/>
|
126
|
+
</parameters>
|
127
|
+
</call>
|
128
|
+
<parallel>
|
129
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
130
|
+
<parallel_branch pass="data.persons" local="p">
|
131
|
+
<call id="a2" endpoint="bookHotel">
|
132
|
+
<parameters>
|
133
|
+
<method>:post</method>
|
134
|
+
<arguments>
|
135
|
+
<to>data.to</to>
|
136
|
+
</arguments>
|
137
|
+
</parameters>
|
138
|
+
<finalize output="result"> data.hotels << result.value('id')
|
139
|
+
data.costs += result.value('costs').to_f</finalize>
|
140
|
+
</call>
|
141
|
+
</parallel_branch>
|
142
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
143
|
+
</loop>
|
144
|
+
</parallel>
|
145
|
+
<choose>
|
146
|
+
<alternative condition="data.costs > 700">
|
147
|
+
<call id="a4" endpoint="approve">
|
148
|
+
<parameters>
|
149
|
+
<method>:post</method>
|
150
|
+
<arguments>
|
151
|
+
<costs>data.costs</costs>
|
152
|
+
</arguments>
|
153
|
+
</parameters>
|
154
|
+
</call>
|
155
|
+
</alternative>
|
156
|
+
</choose>
|
157
|
+
</description>
|
158
|
+
</description>
|
159
|
+
<transformation>
|
160
|
+
<description type="copy"/>
|
161
|
+
<dataelements type="rest"/>
|
162
|
+
<endpoints type="rest"/>
|
163
|
+
</transformation>
|
164
|
+
</properties>
|
@@ -0,0 +1,113 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<attributes>
|
3
|
+
<info>Linear</info>
|
4
|
+
<modeltype>CPEE</modeltype>
|
5
|
+
<theme>default</theme>
|
6
|
+
</attributes>
|
7
|
+
<state>ready</state>
|
8
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
9
|
+
<positions>
|
10
|
+
<a1>after</a1>
|
11
|
+
</positions>
|
12
|
+
<dataelements>
|
13
|
+
<x/>
|
14
|
+
</dataelements>
|
15
|
+
<endpoints>
|
16
|
+
<timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
|
17
|
+
</endpoints>
|
18
|
+
<dsl>call :a1, :timeout, parameters: { :method => :post, :arguments => {:timeout => 2} }, finalize: <<-END
|
19
|
+
data.x += "a1,"
|
20
|
+
END
|
21
|
+
call :a2, :timeout, parameters: { :method => :post, :arguments => {:timeout => 4} }, finalize: <<-END
|
22
|
+
data.x += "a2,"
|
23
|
+
END
|
24
|
+
call :a3, :timeout, parameters: { :method => :post, :arguments => {:timeout => 4} }, finalize: <<-END
|
25
|
+
data.x += "a3,"
|
26
|
+
END
|
27
|
+
</dsl>
|
28
|
+
<dslx>
|
29
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
30
|
+
<!--{{{-->
|
31
|
+
<call id="a1" endpoint="timeout">
|
32
|
+
<parameters>
|
33
|
+
<!--{{{-->
|
34
|
+
<method>:post</method>
|
35
|
+
<arguments>
|
36
|
+
<timeout>2</timeout>
|
37
|
+
</arguments>
|
38
|
+
</parameters>
|
39
|
+
<!--}}}-->
|
40
|
+
<finalize output="result"> data.x += "a1,"</finalize>
|
41
|
+
</call>
|
42
|
+
<call id="a2" endpoint="timeout">
|
43
|
+
<parameters>
|
44
|
+
<!--{{{-->
|
45
|
+
<method>:post</method>
|
46
|
+
<arguments>
|
47
|
+
<timeout>4</timeout>
|
48
|
+
</arguments>
|
49
|
+
</parameters>
|
50
|
+
<!--}}}-->
|
51
|
+
<finalize output="result"> data.x += "a2,"</finalize>
|
52
|
+
</call>
|
53
|
+
<call id="a3" endpoint="timeout">
|
54
|
+
<parameters>
|
55
|
+
<!--{{{-->
|
56
|
+
<method>:post</method>
|
57
|
+
<arguments>
|
58
|
+
<timeout>4</timeout>
|
59
|
+
</arguments>
|
60
|
+
</parameters>
|
61
|
+
<!--}}}-->
|
62
|
+
<finalize output="result"> data.x += "a3,"</finalize>
|
63
|
+
</call>
|
64
|
+
</description>
|
65
|
+
</dslx>
|
66
|
+
<status>
|
67
|
+
<id>0</id>
|
68
|
+
<message>undefined</message>
|
69
|
+
</status>
|
70
|
+
<description>
|
71
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
72
|
+
<!--{{{-->
|
73
|
+
<call id="a1" endpoint="timeout">
|
74
|
+
<parameters>
|
75
|
+
<!--{{{-->
|
76
|
+
<method>:post</method>
|
77
|
+
<arguments>
|
78
|
+
<timeout>2</timeout>
|
79
|
+
</arguments>
|
80
|
+
</parameters>
|
81
|
+
<!--}}}-->
|
82
|
+
<finalize output="result"> data.x += "a1,"</finalize>
|
83
|
+
</call>
|
84
|
+
<call id="a2" endpoint="timeout">
|
85
|
+
<parameters>
|
86
|
+
<!--{{{-->
|
87
|
+
<method>:post</method>
|
88
|
+
<arguments>
|
89
|
+
<timeout>4</timeout>
|
90
|
+
</arguments>
|
91
|
+
</parameters>
|
92
|
+
<!--}}}-->
|
93
|
+
<finalize output="result"> data.x += "a2,"</finalize>
|
94
|
+
</call>
|
95
|
+
<call id="a3" endpoint="timeout">
|
96
|
+
<parameters>
|
97
|
+
<!--{{{-->
|
98
|
+
<method>:post</method>
|
99
|
+
<arguments>
|
100
|
+
<timeout>4</timeout>
|
101
|
+
</arguments>
|
102
|
+
</parameters>
|
103
|
+
<!--}}}-->
|
104
|
+
<finalize output="result"> data.x += "a3,"</finalize>
|
105
|
+
</call>
|
106
|
+
</description>
|
107
|
+
</description>
|
108
|
+
<transformation>
|
109
|
+
<description type="copy"/>
|
110
|
+
<dataelements type="rest"/>
|
111
|
+
<endpoints type="rest"/>
|
112
|
+
</transformation>
|
113
|
+
</properties>
|
@@ -0,0 +1 @@
|
|
1
|
+
deee158f0fe356a100a1b741621085b4
|
@@ -0,0 +1 @@
|
|
1
|
+
86e851fc3e212be9933792da7e9fc796
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0">
|
2
|
+
<topic id="activity">
|
3
|
+
<event>calling</event>
|
4
|
+
<event>status</event>
|
5
|
+
<event>manipulating</event>
|
6
|
+
<event>failed</event>
|
7
|
+
<event>done</event>
|
8
|
+
</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
|
+
<topic id="dataelements">
|
20
|
+
<event>change</event>
|
21
|
+
</topic>
|
22
|
+
<topic id="endpoints">
|
23
|
+
<event>change</event>
|
24
|
+
</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">
|
32
|
+
<event>result</event>
|
33
|
+
</topic>
|
34
|
+
<topic id="handlers">
|
35
|
+
<event>change</event>
|
36
|
+
</topic>
|
37
|
+
</subscription>
|
@@ -0,0 +1,162 @@
|
|
1
|
+
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
2
|
+
<attributes>
|
3
|
+
<info>Enter info here</info>
|
4
|
+
<modeltype>CPEE</modeltype>
|
5
|
+
<theme>default</theme>
|
6
|
+
</attributes>
|
7
|
+
<state>ready</state>
|
8
|
+
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
9
|
+
<positions/>
|
10
|
+
<dataelements>
|
11
|
+
<persons>3</persons>
|
12
|
+
<card>Visa_12345</card>
|
13
|
+
<airline>null</airline>
|
14
|
+
<hotels>[]</hotels>
|
15
|
+
<from>Vienna</from>
|
16
|
+
<to>Prague</to>
|
17
|
+
<costs>0</costs>
|
18
|
+
</dataelements>
|
19
|
+
<endpoints>
|
20
|
+
<bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
|
21
|
+
<bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
|
22
|
+
<approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
|
23
|
+
</endpoints>
|
24
|
+
<dsl>manipulate :a5
|
25
|
+
call :a1, :bookAir, parameters: { :label => nil, :method => :post, :arguments => {:from => data.from, :to => data.to, :persons => data.persons} }, finalize: <<-END, update: <<-END
|
26
|
+
data.airline = result.value('id')
|
27
|
+
data.costs += result.value('costs').to_f
|
28
|
+
status.update 1, 'Hotel'
|
29
|
+
END
|
30
|
+
aaa
|
31
|
+
END
|
32
|
+
parallel do
|
33
|
+
loop pre_test{data.persons > 0} do
|
34
|
+
parallel_branch data.persons do |p|
|
35
|
+
call :a2, :bookHotel, parameters: { :label => nil, :method => :post, :arguments => {:to => data.to} }, finalize: <<-END, update: <<-END
|
36
|
+
data.hotels << result.value('id')
|
37
|
+
data.costs += result.value('costs').to_f
|
38
|
+
END
|
39
|
+
end
|
40
|
+
manipulate :a3, <<-END
|
41
|
+
data.persons -= 1
|
42
|
+
END
|
43
|
+
end
|
44
|
+
end
|
45
|
+
choose :inclusive do
|
46
|
+
alternative "data.costs > 700" do
|
47
|
+
call :a4, :approve, parameters: { :method => :post, :arguments => {:costs => data.costs} }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
</dsl>
|
51
|
+
<dslx>
|
52
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
53
|
+
<manipulate xmlns="" id="a5"/>
|
54
|
+
<call id="a1" endpoint="bookAir">
|
55
|
+
<parameters>
|
56
|
+
<label/>
|
57
|
+
<method>:post</method>
|
58
|
+
<arguments>
|
59
|
+
<from>data.from</from>
|
60
|
+
<to>data.to</to>
|
61
|
+
<persons>data.persons</persons>
|
62
|
+
</arguments>
|
63
|
+
</parameters>
|
64
|
+
<finalize output="result">data.airline = result.value('id')
|
65
|
+
data.costs += result.value('costs').to_f
|
66
|
+
status.update 1, 'Hotel'</finalize>
|
67
|
+
<update output="result">aaa</update>
|
68
|
+
</call>
|
69
|
+
<parallel>
|
70
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
71
|
+
<parallel_branch pass="data.persons" local="p">
|
72
|
+
<call id="a2" endpoint="bookHotel">
|
73
|
+
<parameters>
|
74
|
+
<label/>
|
75
|
+
<method>:post</method>
|
76
|
+
<arguments>
|
77
|
+
<to>data.to</to>
|
78
|
+
</arguments>
|
79
|
+
</parameters>
|
80
|
+
<finalize output="result">data.hotels << result.value('id')
|
81
|
+
data.costs += result.value('costs').to_f</finalize>
|
82
|
+
<update output="result"/>
|
83
|
+
</call>
|
84
|
+
</parallel_branch>
|
85
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
86
|
+
</loop>
|
87
|
+
</parallel>
|
88
|
+
<choose>
|
89
|
+
<alternative condition="data.costs > 700">
|
90
|
+
<call id="a4" endpoint="approve">
|
91
|
+
<parameters>
|
92
|
+
<method>:post</method>
|
93
|
+
<arguments>
|
94
|
+
<costs>data.costs</costs>
|
95
|
+
</arguments>
|
96
|
+
</parameters>
|
97
|
+
</call>
|
98
|
+
</alternative>
|
99
|
+
</choose>
|
100
|
+
</description>
|
101
|
+
</dslx>
|
102
|
+
<status>
|
103
|
+
<id>0</id>
|
104
|
+
<message>undefined</message>
|
105
|
+
</status>
|
106
|
+
<description>
|
107
|
+
<description xmlns="http://cpee.org/ns/description/1.0">
|
108
|
+
<manipulate xmlns="" id="a5"/>
|
109
|
+
<call id="a1" endpoint="bookAir">
|
110
|
+
<parameters>
|
111
|
+
<label/>
|
112
|
+
<method>:post</method>
|
113
|
+
<arguments>
|
114
|
+
<from>data.from</from>
|
115
|
+
<to>data.to</to>
|
116
|
+
<persons>data.persons</persons>
|
117
|
+
</arguments>
|
118
|
+
</parameters>
|
119
|
+
<finalize output="result">data.airline = result.value('id')
|
120
|
+
data.costs += result.value('costs').to_f
|
121
|
+
status.update 1, 'Hotel'</finalize>
|
122
|
+
<update output="result">aaa</update>
|
123
|
+
</call>
|
124
|
+
<parallel>
|
125
|
+
<loop mode="pre_test" condition="data.persons > 0">
|
126
|
+
<parallel_branch pass="data.persons" local="p">
|
127
|
+
<call id="a2" endpoint="bookHotel">
|
128
|
+
<parameters>
|
129
|
+
<label/>
|
130
|
+
<method>:post</method>
|
131
|
+
<arguments>
|
132
|
+
<to>data.to</to>
|
133
|
+
</arguments>
|
134
|
+
</parameters>
|
135
|
+
<finalize output="result">data.hotels << result.value('id')
|
136
|
+
data.costs += result.value('costs').to_f</finalize>
|
137
|
+
<update output="result"/>
|
138
|
+
</call>
|
139
|
+
</parallel_branch>
|
140
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
141
|
+
</loop>
|
142
|
+
</parallel>
|
143
|
+
<choose>
|
144
|
+
<alternative condition="data.costs > 700">
|
145
|
+
<call id="a4" endpoint="approve">
|
146
|
+
<parameters>
|
147
|
+
<method>:post</method>
|
148
|
+
<arguments>
|
149
|
+
<costs>data.costs</costs>
|
150
|
+
</arguments>
|
151
|
+
</parameters>
|
152
|
+
</call>
|
153
|
+
</alternative>
|
154
|
+
</choose>
|
155
|
+
</description>
|
156
|
+
</description>
|
157
|
+
<transformation>
|
158
|
+
<description type="copy"/>
|
159
|
+
<dataelements type="rest"/>
|
160
|
+
<endpoints type="rest"/>
|
161
|
+
</transformation>
|
162
|
+
</properties>
|
data/server/server.pid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
22667
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cpee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.187
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juergen eTM Mangler
|
@@ -11,36 +11,36 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-11-
|
14
|
+
date: 2016-11-18 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: riddl
|
18
18
|
requirement: !ruby/object:Gem::Requirement
|
19
19
|
requirements:
|
20
|
-
- - "
|
20
|
+
- - "~>"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.99
|
22
|
+
version: '0.99'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "
|
27
|
+
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.99
|
29
|
+
version: '0.99'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: weel
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
|
-
- - "
|
34
|
+
- - "~>"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 1.99
|
36
|
+
version: '1.99'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - "
|
41
|
+
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1.99
|
43
|
+
version: '1.99'
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: savon
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -269,6 +269,7 @@ files:
|
|
269
269
|
- lib/engine/instance-info.rng
|
270
270
|
- lib/engine/instances.rng
|
271
271
|
- log/log.xml
|
272
|
+
- log/logoverlay.xml
|
272
273
|
- log/logs/1/test
|
273
274
|
- log/server.rb
|
274
275
|
- log/template.xes
|
@@ -309,6 +310,14 @@ files:
|
|
309
310
|
- server/instances/31/properties.xml
|
310
311
|
- server/instances/32/properties.xml
|
311
312
|
- server/instances/33/properties.xml
|
313
|
+
- server/instances/34/properties.xml
|
314
|
+
- server/instances/35/properties.xml
|
315
|
+
- server/instances/36/properties.xml
|
316
|
+
- server/instances/37/properties.xml
|
317
|
+
- server/instances/38/notifications/b1c2a4fd87a36e2b663faf2c601499a3/consumer-secret
|
318
|
+
- server/instances/38/notifications/b1c2a4fd87a36e2b663faf2c601499a3/producer-secret
|
319
|
+
- server/instances/38/notifications/b1c2a4fd87a36e2b663faf2c601499a3/subscription.xml
|
320
|
+
- server/instances/38/properties.xml
|
312
321
|
- server/instances/4/properties.xml
|
313
322
|
- server/instances/5/properties.xml
|
314
323
|
- server/instances/6/properties.xml
|