cpee 1.3.185 → 1.3.187
Sign up to get free protection for your applications and to get access to all the features.
- 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
|