cpee 2.1.81 → 2.1.83
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/README.md +1 -1
- data/cockpit/css/wfadaptor.css +9 -0
- data/cockpit/js/wfadaptor.js +54 -44
- data/cockpit/templates/Subprocess.xml +13 -5
- data/cockpit/templates/Subprocess.xml.attrs +2 -2
- data/cockpit/templates/Wait.xml +60 -3
- data/cockpit/themes/base.js +1 -5
- data/cpee.gemspec +1 -1
- data/lib/cpee/message.rb +3 -0
- data/lib/cpee/persistence.rb +3 -0
- data/server/executionhandlers/ruby/connection.rb +9 -3
- data/tools/cpee +17 -1
- data/tools/server/cpee.conf +4 -0
- metadata +4 -12
- data/server/dev.rb +0 -34
- data/server/routing/end.pid +0 -1
- data/server/routing/forward-events-00.pid +0 -1
- data/server/routing/forward-votes.pid +0 -1
- data/server/routing/persist.pid +0 -1
- data/server/server.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e3fdbc0afe42014b71076ce61c30e7cb3942296d18d9b9e69589e498198fa54
|
4
|
+
data.tar.gz: 27743df8fef01b352f3f0dd22584a707e17112c7c7ea3fe483e29d89dff0dfbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fadeddcddb31ef17785cd016a6fc198a31b0ff7fc0807eba9f50bd2a595274c93534088e46482627b16a22f3ffac10c2b1866ea16294e14f66929aafa00ade99
|
7
|
+
data.tar.gz: f4489da3ae07ecbb5441ccbacb6c6b76cc9f605754f61698d49afcca3419b543fcaeccc8f215f059ec7db8245b99bbb1b642aa60870a2343ab4b8883a79275ca
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
All code in this package is provided under the LGPL-3 license.
|
2
2
|
Please read the file COPYING in the main directory.
|
3
3
|
|
4
|
-
Tested for MRI 2.6, 2.7
|
4
|
+
Tested for MRI 2.6, >= 2.7
|
5
5
|
|
6
6
|
Searching for mem-leaks:
|
7
7
|
valgrind --num-callers=50 --error-limit=no --partial-loads-ok=yes --undef-value-errors=no ./server/server.rb -v start
|
data/cockpit/css/wfadaptor.css
CHANGED
@@ -102,6 +102,15 @@ svg rect.tile {
|
|
102
102
|
fill-opacity: 0.3;
|
103
103
|
display: none;
|
104
104
|
}
|
105
|
+
svg .standline {
|
106
|
+
stroke: var(--wfadaptor-base);
|
107
|
+
stroke-width:1.6;
|
108
|
+
stroke-linecap:round;
|
109
|
+
stroke-linejoin:round;
|
110
|
+
stroke-miterlimit:4;
|
111
|
+
stroke-opacity:1;
|
112
|
+
stroke-dasharray:none;
|
113
|
+
}
|
105
114
|
svg .stand {
|
106
115
|
fill: var(--wfadaptor-background);
|
107
116
|
fill-opacity:1;
|
data/cockpit/js/wfadaptor.js
CHANGED
@@ -117,40 +117,46 @@ function WfAdaptor(theme_base,doit) { // Controller {{{
|
|
117
117
|
}
|
118
118
|
})
|
119
119
|
);
|
120
|
-
} else {
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
manifestation.elements[
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
120
|
+
} else if (manifestation.elements[element].illustrator.svg && (typeof manifestation.elements[element].illustrator.svg === 'object' || manifestation.elements[element].illustrator.svg instanceof Object)) {
|
121
|
+
if (manifestation.elements[element].illustrator.svg.start) {
|
122
|
+
deferreds.push(
|
123
|
+
$.ajax({
|
124
|
+
type: "GET",
|
125
|
+
dataType: "xml",
|
126
|
+
url: manifestation.elements[element].illustrator.svg.start,
|
127
|
+
context: element,
|
128
|
+
success: function(res){
|
129
|
+
manifestation.elements[this].illustrator.svg.start = $(res.documentElement);
|
130
|
+
}
|
131
|
+
})
|
132
|
+
);
|
133
|
+
}
|
134
|
+
if (manifestation.elements[element].illustrator.svg.middle) {
|
135
|
+
deferreds.push(
|
136
|
+
$.ajax({
|
137
|
+
type: "GET",
|
138
|
+
dataType: "xml",
|
139
|
+
url: manifestation.elements[element].illustrator.svg.middle,
|
140
|
+
context: element,
|
141
|
+
success: function(res){
|
142
|
+
manifestation.elements[this].illustrator.svg.middle = $(res.documentElement);
|
143
|
+
}
|
144
|
+
})
|
145
|
+
);
|
146
|
+
}
|
147
|
+
if (manifestation.elements[element].illustrator.svg.end) {
|
148
|
+
deferreds.push(
|
149
|
+
$.ajax({
|
150
|
+
type: "GET",
|
151
|
+
dataType: "xml",
|
152
|
+
url: manifestation.elements[element].illustrator.svg.end,
|
153
|
+
context: element,
|
154
|
+
success: function(res){
|
155
|
+
manifestation.elements[this].illustrator.svg.end = $(res.documentElement);
|
156
|
+
}
|
157
|
+
})
|
158
|
+
);
|
159
|
+
}
|
154
160
|
}
|
155
161
|
illustrator.elements[element] = manifestation.elements[element].illustrator;
|
156
162
|
illustrator.elements[element].type = manifestation.elements[element].type || 'abstract';
|
@@ -216,6 +222,9 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
216
222
|
' <marker id="arrow" viewBox="0 0 10 10" refX="33" refY="5" orient="auto" markerUnits="strokeWidth" markerWidth="4.5" makerHeight="4.5">' +
|
217
223
|
' <path d="m 2 2 l 6 3 l -6 3 z"/>' +
|
218
224
|
' </marker>' +
|
225
|
+
' <clipPath id="squareclip">' +
|
226
|
+
' <rect x="-1" y="-1" width="32" height="32"/>' +
|
227
|
+
' </clipPath>' +
|
219
228
|
'</defs>'));
|
220
229
|
self.svg.defs = {};
|
221
230
|
self.svg.defs['unknown'] = $X('<g xmlns="http://www.w3.org/2000/svg" class="unknown">' +
|
@@ -224,6 +233,7 @@ function WfIllustrator(wf_adaptor) { // View {{{
|
|
224
233
|
'</g>');
|
225
234
|
for(element in self.elements)
|
226
235
|
if(self.elements[element].svg) {
|
236
|
+
console.log(self.elements[element].svg);
|
227
237
|
var sym = $X('<g xmlns="http://www.w3.org/2000/svg"/>').append(self.elements[element].svg.clone().children()); // append all children to symbol
|
228
238
|
$.each(self.elements[element].svg.attr('class').split(/\s+/), function(index, item) { sym.addClass(item); }); // copy all classes from the root node
|
229
239
|
self.svg.defs[element] = sym;
|
@@ -416,7 +426,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
416
426
|
id_counter = {};
|
417
427
|
labels = [];
|
418
428
|
illustrator.clear();
|
419
|
-
var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false});
|
429
|
+
var graph = parse(description.children('description').get(0), {'row':0,'col':0,dim:{},final:false,wide:false});
|
420
430
|
illustrator.set_svg(graph);
|
421
431
|
// set labels
|
422
432
|
self.set_labels(graph);
|
@@ -468,7 +478,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
468
478
|
id_counter = {};
|
469
479
|
labels = [];
|
470
480
|
illustrator.clear();
|
471
|
-
var graph = parse(description.children('description').get(0), {'row':0,'col':0});
|
481
|
+
var graph = parse(description.children('description').get(0), {'row':0,'col':0,dim:{}});
|
472
482
|
illustrator.set_svg(graph);
|
473
483
|
// set labels
|
474
484
|
self.set_labels(graph);
|
@@ -479,7 +489,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
479
489
|
if(update_illustrator){
|
480
490
|
labels = [];
|
481
491
|
illustrator.clear();
|
482
|
-
var graph = parse(description.children('description').get(0), {'row':0,'col':0});
|
492
|
+
var graph = parse(description.children('description').get(0), {'row':0,'col':0,dim:{}});
|
483
493
|
illustrator.set_svg(graph);
|
484
494
|
self.set_labels(graph);
|
485
495
|
}
|
@@ -558,7 +568,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
558
568
|
// }}}
|
559
569
|
// Helper Functions {{{
|
560
570
|
var parse = function(root, parent_pos) { // private {{{
|
561
|
-
var pos =
|
571
|
+
var pos = $.extend(true, {}, parent_pos);
|
562
572
|
var max = {'row': 0,'col': 0};
|
563
573
|
var prev = [parent_pos]; // connects parent with child(s), depending on the expansion
|
564
574
|
var endnodes = [];
|
@@ -605,7 +615,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
605
615
|
if(illustrator.elements[tname] != undefined && illustrator.elements[tname].type == 'complex') {
|
606
616
|
if(illustrator.elements[tname] != undefined && !illustrator.elements[tname].svg) pos.row--;
|
607
617
|
// TODO: Remaining problem is the order inside the svg. Thats why the connection is above the icon
|
608
|
-
block = parse(context,
|
618
|
+
block = parse(context, $.extend(true, {}, pos));
|
609
619
|
group.append(block.svg);
|
610
620
|
block.svg.attr('id', 'group-' + $(context).attr('svg-id'));
|
611
621
|
if(illustrator.elements[sname].endnodes == 'aggregate') endnodes = []; // resets endpoints e.g. potential preceding primitive
|
@@ -622,11 +632,11 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
622
632
|
var g;
|
623
633
|
set_details(tname,sname,pos,context);
|
624
634
|
|
625
|
-
var origpos =
|
635
|
+
var origpos = $.extend(true, {}, pos);
|
626
636
|
[g, endnodes] = draw_position(tname,origpos,prev,block,group,endnodes,context);
|
627
637
|
|
628
638
|
// Prepare next iteration {{{
|
629
|
-
if(root_expansion == 'vertical') { prev =
|
639
|
+
if(root_expansion == 'vertical') { prev = $.extend(true, {}, endnodes); pos.row = block.max.row;} // covers e.g. input's for alternative, parallel_branch, ... everything with horizontal expansion
|
630
640
|
if(root_expansion == 'horizontal') pos.col = block.max.col;
|
631
641
|
if(max.row < block.max.row) max.row = block.max.row;
|
632
642
|
if(max.col < block.max.col) max.col = block.max.col;
|
@@ -650,7 +660,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
650
660
|
[undefined, endnodes] = draw_position(ctname,pos,prev,block,group,[],context,{svg: g, pos: origpos});
|
651
661
|
}
|
652
662
|
set_details(ctname,csname,pos,context,true);
|
653
|
-
prev =
|
663
|
+
prev = $.extend(true, {}, endnodes);
|
654
664
|
}
|
655
665
|
});
|
656
666
|
|
@@ -745,7 +755,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
745
755
|
}
|
746
756
|
if(illustrator.elements[sname] != undefined && illustrator.elements[sname].endnodes != 'this') {
|
747
757
|
for(i in block.endnodes) { endnodes.push(block.endnodes[i]); } // collects all endpoints from different childs e.g. alternatives from choose
|
748
|
-
} else { endnodes = [
|
758
|
+
} else { endnodes = [$.extend(true, {}, pos)]; } // sets this element as only endpoint (aggregate)
|
749
759
|
if(prev[0].row == 0 || prev[0].col == 0) { // this enforces the connection from description to the first element
|
750
760
|
illustrator.draw.draw_connection(group, { row: 1, col: 1 }, pos, null, null, true);
|
751
761
|
} else {
|
@@ -753,7 +763,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
|
|
753
763
|
for (node in prev) {
|
754
764
|
if (!prev[node].final) {
|
755
765
|
if (prev[node].wide) {
|
756
|
-
var pn =
|
766
|
+
var pn = $.extend(true, {}, prev[node]);
|
757
767
|
if (pos.col > prev[node].col) {
|
758
768
|
pn.col = pos.col;
|
759
769
|
}
|
@@ -1,9 +1,16 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<testset xmlns="http://cpee.org/ns/properties/2.0">
|
3
3
|
<executionhandler>ruby</executionhandler>
|
4
|
-
<dataelements
|
4
|
+
<dataelements>
|
5
|
+
<res>{"CPEE-INSTANCE":"51480","CPEE-INSTANCE-URL":"https://cpee.org/flow/engine/51480","CPEE-INSTANCE-UUID":"61291a99-86a7-4396-8e0c-456728c60d09","CPEE-STATE":"finished","b":4,"end":1741703309.6717181,"start":1741703308.456953,"teams":["Eugen Rigger","Celine Mader","Nataliia Klievtsova","Juergen Mangler","David Williamson","Alan Joannidi","Dariusz Opoka","David Ellis","Martin Hintzen","Mark Mattimoe","Ekaterina Zhuravleva","Joanne Mailen","Andreas Schmid","Iain Wilkie","Luke Chan","Eliot Horsman","MEHDI FARIK","Nic Winter","Salim Akram","ROMAIN VIRY","CORINNE DELOR","YANN LISSILLOUR","Julian Chatwin","Gregor Mayr","Andreas Fussenegger","Alexandru Zloteanu","Clemens Neuner","Birthe Bittner","Jan Schrottenholzer","Michael Schoech","Jörg Linden","Peter John Keill","Tobias Jonk","Ralf Mueller","Peter Kovacs","Sara Mota","Ulrich Juergenschellert","Yi Ju","Sven Scharfe","Armando Hoedl","Fabienne Meier","Olaf Zalewski","Stefan Bildstein","Sebastian Schade","Tomi Walter","Pascal Wolf","Thibaut Escourrou","Peter Jezsoviczki","Felix Breuss","Thomas Kladensky","Hossam Haridy","Christoph Stadler","Jens Beecken","Bernhard Klocker"]}</res>
|
6
|
+
<start>1741706229.7376199</start>
|
7
|
+
<substart>0.8481366634368896</substart>
|
8
|
+
<subend>2.062901735305786</subend>
|
9
|
+
<duration>69.02397441864014</duration>
|
10
|
+
<teams>{"CPEE-INSTANCE":"51480","CPEE-INSTANCE-URL":"https://cpee.org/flow/engine/51480","CPEE-INSTANCE-UUID":"61291a99-86a7-4396-8e0c-456728c60d09","CPEE-STATE":"finished","b":4,"end":1741703309.6717181,"start":1741703308.456953,"teams":["Eugen Rigger","Celine Mader","Nataliia Klievtsova","Juergen Mangler","David Williamson","Alan Joannidi","Dariusz Opoka","David Ellis","Martin Hintzen","Mark Mattimoe","Ekaterina Zhuravleva","Joanne Mailen","Andreas Schmid","Iain Wilkie","Luke Chan","Eliot Horsman","MEHDI FARIK","Nic Winter","Salim Akram","ROMAIN VIRY","CORINNE DELOR","YANN LISSILLOUR","Julian Chatwin","Gregor Mayr","Andreas Fussenegger","Alexandru Zloteanu","Clemens Neuner","Birthe Bittner","Jan Schrottenholzer","Michael Schoech","Jörg Linden","Peter John Keill","Tobias Jonk","Ralf Mueller","Peter Kovacs","Sara Mota","Ulrich Juergenschellert","Yi Ju","Sven Scharfe","Armando Hoedl","Fabienne Meier","Olaf Zalewski","Stefan Bildstein","Sebastian Schade","Tomi Walter","Pascal Wolf","Thibaut Escourrou","Peter Jezsoviczki","Felix Breuss","Thomas Kladensky","Hossam Haridy","Christoph Stadler","Jens Beecken","Bernhard Klocker"]}</teams>
|
11
|
+
</dataelements>
|
5
12
|
<endpoints>
|
6
|
-
<subprocess>https-post://
|
13
|
+
<subprocess>https-post://cpee.org/flow/start/url/</subprocess>
|
7
14
|
<user>https-post://cpee.org/services/timeout-user.php</user>
|
8
15
|
<auto>https-post://cpee.org/services/timeout-auto.php</auto>
|
9
16
|
<timeout>https://cpee.org/services/timeout.php</timeout>
|
@@ -12,11 +19,11 @@
|
|
12
19
|
</endpoints>
|
13
20
|
<attributes>
|
14
21
|
<guarded>none</guarded>
|
15
|
-
<info>Subprocess</info>
|
16
22
|
<modeltype>CPEE</modeltype>
|
17
23
|
<theme>extended</theme>
|
18
|
-
<creator>Christine Ashcreek</creator>
|
19
24
|
<guarded_id/>
|
25
|
+
<info>Subprocess</info>
|
26
|
+
<creator>Christine Ashcreek</creator>
|
20
27
|
<author>Christine Ashcreek</author>
|
21
28
|
<model_uuid>1fc43528-3e4a-40ee-8503-c0ed7e5d883c</model_uuid>
|
22
29
|
<model_version/>
|
@@ -45,7 +52,8 @@
|
|
45
52
|
<finalize output="result">data.res = result
|
46
53
|
data.substart = result['start'].to_f - data.start.to_f
|
47
54
|
data.subend = result['end'].to_f - data.start.to_f
|
48
|
-
data.duration = Time.now.to_f - data.start.to_f
|
55
|
+
data.duration = Time.now.to_f - data.start.to_f
|
56
|
+
data.teams = result</finalize>
|
49
57
|
<update output="result"/>
|
50
58
|
<rescue output="result"/>
|
51
59
|
</code>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"guarded": "none",
|
3
|
-
"info": "Subprocess",
|
4
3
|
"modeltype": "CPEE",
|
5
4
|
"theme": "extended",
|
6
|
-
"creator": "Christine Ashcreek",
|
7
5
|
"guarded_id": "",
|
6
|
+
"info": "Subprocess",
|
7
|
+
"creator": "Christine Ashcreek",
|
8
8
|
"author": "Christine Ashcreek",
|
9
9
|
"model_uuid": "1fc43528-3e4a-40ee-8503-c0ed7e5d883c",
|
10
10
|
"model_version": "",
|
data/cockpit/templates/Wait.xml
CHANGED
@@ -1,18 +1,23 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<testset xmlns="http://cpee.org/ns/properties/2.0">
|
3
3
|
<executionhandler>ruby</executionhandler>
|
4
|
-
<dataelements
|
4
|
+
<dataelements>
|
5
|
+
<b>4</b>
|
6
|
+
<end>1741703309.6717181</end>
|
7
|
+
<start>1741703308.456953</start>
|
8
|
+
</dataelements>
|
5
9
|
<endpoints>
|
6
10
|
<timeout>https://cpee.org/services/timeout.php</timeout>
|
7
11
|
<subprocess>https://cpee.org/flow/start/url/</subprocess>
|
12
|
+
<orgmodel>http://localhost/data/ideas_phase1/zt.xml</orgmodel>
|
8
13
|
</endpoints>
|
9
14
|
<attributes>
|
10
15
|
<guarded>none</guarded>
|
11
|
-
<info>Wait</info>
|
12
16
|
<modeltype>CPEE</modeltype>
|
13
17
|
<theme>extended</theme>
|
14
|
-
<creator>Christine Ashcreek</creator>
|
15
18
|
<guarded_id/>
|
19
|
+
<info>Wait</info>
|
20
|
+
<creator>Christine Ashcreek</creator>
|
16
21
|
<author>Christine Ashcreek</author>
|
17
22
|
<model_uuid>c92d0c0b-8bbd-40dd-baad-01c5616dfceb</model_uuid>
|
18
23
|
<model_version/>
|
@@ -68,6 +73,51 @@
|
|
68
73
|
</code>
|
69
74
|
</documentation>
|
70
75
|
</call>
|
76
|
+
<call id="a3" endpoint="orgmodel">
|
77
|
+
<parameters>
|
78
|
+
<label>Names</label>
|
79
|
+
<method>:get</method>
|
80
|
+
<arguments/>
|
81
|
+
</parameters>
|
82
|
+
<code>
|
83
|
+
<prepare/>
|
84
|
+
<finalize output="result">result.register_namespace 'o', 'http://cpee.org/ns/organisation/1.0'
|
85
|
+
data.teams = result.find("/o:organisation/o:subjects/o:subject[o:relation/@role='Product Manager']/@id").to_a</finalize>
|
86
|
+
<update output="result"/>
|
87
|
+
<rescue output="result"/>
|
88
|
+
</code>
|
89
|
+
<annotations>
|
90
|
+
<_generic/>
|
91
|
+
<_timing>
|
92
|
+
<_timing_weight/>
|
93
|
+
<_timing_avg/>
|
94
|
+
<explanations/>
|
95
|
+
</_timing>
|
96
|
+
<_shifting>
|
97
|
+
<_shifting_type>Duration</_shifting_type>
|
98
|
+
</_shifting>
|
99
|
+
<_context_data_analysis>
|
100
|
+
<probes/>
|
101
|
+
<ips/>
|
102
|
+
</_context_data_analysis>
|
103
|
+
<report>
|
104
|
+
<url/>
|
105
|
+
</report>
|
106
|
+
<_notes>
|
107
|
+
<_notes_general/>
|
108
|
+
</_notes>
|
109
|
+
</annotations>
|
110
|
+
<documentation>
|
111
|
+
<input/>
|
112
|
+
<output/>
|
113
|
+
<implementation>
|
114
|
+
<description/>
|
115
|
+
</implementation>
|
116
|
+
<code>
|
117
|
+
<description/>
|
118
|
+
</code>
|
119
|
+
</documentation>
|
120
|
+
</call>
|
71
121
|
</description>
|
72
122
|
</description>
|
73
123
|
<transformation>
|
@@ -75,4 +125,11 @@
|
|
75
125
|
<dataelements type="none"/>
|
76
126
|
<endpoints type="none"/>
|
77
127
|
</transformation>
|
128
|
+
<subscriptions xmlns="http://riddl.org/ns/common-patterns/notifications-producer/2.0">
|
129
|
+
<subscription id="_instantiation_9c70f0aec95a9c021bb58785ecd8b674" url="http://localhost:9296/callback/_instantiation_9c70f0aec95a9c021bb58785ecd8b674">
|
130
|
+
<topic id="state">
|
131
|
+
<event>change</event>
|
132
|
+
</topic>
|
133
|
+
</subscription>
|
134
|
+
</subscriptions>
|
78
135
|
</testset>
|
data/cockpit/themes/base.js
CHANGED
@@ -426,11 +426,7 @@ function WFAdaptorManifestationBase(adaptor) {
|
|
426
426
|
return [];
|
427
427
|
}
|
428
428
|
},
|
429
|
-
'svg':
|
430
|
-
first: self.adaptor.theme_dir + 'symbols/manipulate.svg',
|
431
|
-
middle: self.adaptor.theme_dir + 'symbols/manipulate.svg',
|
432
|
-
last: self.adaptor.theme_dir + 'symbols/manipulate.svg'
|
433
|
-
}
|
429
|
+
'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
|
434
430
|
},//}}}
|
435
431
|
'description': self.adaptor.theme_dir + 'rngs/manipulate.rng',
|
436
432
|
'permissible_children': function(node,mode) { //{{{
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "2.1.
|
3
|
+
s.version = "2.1.83"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0-or-later"
|
6
6
|
s.summary = "The cloud process execution engine (cpee.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
|
data/lib/cpee/message.rb
CHANGED
data/lib/cpee/persistence.rb
CHANGED
@@ -297,13 +297,19 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
|
297
297
|
end
|
298
298
|
if options['CPEE_EVENT']
|
299
299
|
@controller.notify("task/#{options['CPEE_EVENT'].gsub(/[^\w_-]/,'')}", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
|
300
|
-
else
|
301
|
-
@handler_returnValue = recv
|
302
|
-
@handler_returnOptions = options
|
303
300
|
end
|
304
301
|
if options['CPEE_STATUS']
|
305
302
|
@controller.notify("activity/status", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :status => options['CPEE_STATUS'])
|
306
303
|
end
|
304
|
+
|
305
|
+
if options['CPEE_STATUS'] || options['CPEE_EVENT'] || options['CPEE_INSTANTIATION']
|
306
|
+
@handler_returnValue = nil
|
307
|
+
@handler_returnOptions = nil
|
308
|
+
else
|
309
|
+
@handler_returnValue = recv
|
310
|
+
@handler_returnOptions = options
|
311
|
+
end
|
312
|
+
|
307
313
|
if options['CPEE_UPDATE']
|
308
314
|
@handler_continue.continue WEEL::Signal::UpdateAgain
|
309
315
|
else
|
data/tools/cpee
CHANGED
@@ -6,6 +6,7 @@ require 'fileutils'
|
|
6
6
|
require 'webrick'
|
7
7
|
require 'typhoeus'
|
8
8
|
require 'xml/smart'
|
9
|
+
require 'redis'
|
9
10
|
require 'zip'
|
10
11
|
require 'pp'
|
11
12
|
|
@@ -55,10 +56,12 @@ ARGV.options { |opt|
|
|
55
56
|
opt.on(wrap("[ui] starts a simple static web server with the ui on http://localhost:8080. Use [cpui DIR] if you want stuff in apache or nginx."))
|
56
57
|
opt.on("")
|
57
58
|
opt.on(wrap("[convert] converts all testsets in the current directory to the newest format"))
|
59
|
+
opt.on("")
|
60
|
+
opt.on(wrap("[vacuum] clean a redis.rdb in the current directory"))
|
58
61
|
opt.parse!
|
59
62
|
}
|
60
63
|
if (ARGV.length == 0) ||
|
61
|
-
(ARGV.length == 1 && !(%w(ui convert).include?(ARGV[0]))) ||
|
64
|
+
(ARGV.length == 1 && !(%w(ui convert vacuum).include?(ARGV[0]))) ||
|
62
65
|
(ARGV.length == 2 && !(%w(abandon abandon! stopping start delete! cpui new).include?(ARGV[0]))) ||
|
63
66
|
(ARGV.length == 3 && !(%w(archive a_by_name).include?(ARGV[0]))) ||
|
64
67
|
(ARGV.length > 3)
|
@@ -424,4 +427,17 @@ elsif command == 'new'
|
|
424
427
|
else
|
425
428
|
puts 'Directory already exists.'
|
426
429
|
end
|
430
|
+
elsif command == 'vacuum'
|
431
|
+
begin
|
432
|
+
redis = Redis.new(path: 'redis.sock', db: 0, id: 'vacuum')
|
433
|
+
instances = redis.zrange('instances', 0, -1)
|
434
|
+
redis.keys('*').each do |key|
|
435
|
+
k = key.match(/instance:(\d+)/)
|
436
|
+
if k && ! instances.include?(k[1])
|
437
|
+
redis.del key
|
438
|
+
end
|
439
|
+
end
|
440
|
+
rescue => e
|
441
|
+
puts 'no redis.sock or no redis db 0 found ...'
|
442
|
+
end
|
427
443
|
end
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cpee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.83
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juergen eTM Mangler
|
8
8
|
- Ralph Vigne
|
9
9
|
- Gerhard Stuermer
|
10
|
-
autorequire:
|
11
10
|
bindir: tools
|
12
11
|
cert_chain: []
|
13
|
-
date: 2025-
|
12
|
+
date: 2025-04-17 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: riddl
|
@@ -914,7 +913,6 @@ files:
|
|
914
913
|
- lib/properties/t_status.rng
|
915
914
|
- lib/properties/t_transformation.rng
|
916
915
|
- lib/properties/transformation.rng
|
917
|
-
- server/dev.rb
|
918
916
|
- server/executionhandlers/eval/backend/README.md
|
919
917
|
- server/executionhandlers/eval/backend/instance.template
|
920
918
|
- server/executionhandlers/eval/backend/opts.yaml
|
@@ -939,25 +937,20 @@ files:
|
|
939
937
|
- server/resources/states.xml
|
940
938
|
- server/resources/topics.xml
|
941
939
|
- server/resources/transformation.xml
|
942
|
-
- server/routing/end.pid
|
943
940
|
- server/routing/end.rb
|
944
|
-
- server/routing/forward-events-00.pid
|
945
941
|
- server/routing/forward-events.rb
|
946
|
-
- server/routing/forward-votes.pid
|
947
942
|
- server/routing/forward-votes.rb
|
948
|
-
- server/routing/persist.pid
|
949
943
|
- server/routing/persist.rb
|
950
944
|
- server/server.pid
|
951
|
-
- server/server.rb
|
952
945
|
- tools/cpee
|
953
946
|
- tools/server/cpee
|
947
|
+
- tools/server/cpee.conf
|
954
948
|
- tools/server/resources/notifications/logging/subscription.xml
|
955
949
|
- tools/server/resources/properties.init
|
956
950
|
homepage: http://cpee.org/
|
957
951
|
licenses:
|
958
952
|
- LGPL-3.0-or-later
|
959
953
|
metadata: {}
|
960
|
-
post_install_message:
|
961
954
|
rdoc_options: []
|
962
955
|
require_paths:
|
963
956
|
- lib
|
@@ -972,8 +965,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
972
965
|
- !ruby/object:Gem::Version
|
973
966
|
version: '0'
|
974
967
|
requirements: []
|
975
|
-
rubygems_version: 3.
|
976
|
-
signing_key:
|
968
|
+
rubygems_version: 3.6.2
|
977
969
|
specification_version: 4
|
978
970
|
summary: The cloud process execution engine (cpee.org). If you just need workflow
|
979
971
|
execution, without a rest service exposing it, then use WEEL.
|
data/server/dev.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
#
|
3
|
-
# This file is part of CPEE.
|
4
|
-
#
|
5
|
-
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
6
|
-
# of the GNU General Public License as published by the Free Software Foundation,
|
7
|
-
# either version 3 of the License, or (at your option) any later version.
|
8
|
-
#
|
9
|
-
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
10
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
11
|
-
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
12
|
-
#
|
13
|
-
# You should have received a copy of the GNU General Public License along with
|
14
|
-
# CPEE (file COPYING in the main directory). If not, see
|
15
|
-
# <http://www.gnu.org/licenses/>.
|
16
|
-
|
17
|
-
module CPEE
|
18
|
-
module DEVELOP
|
19
|
-
RIDDL = "/home/mangler/Projects/riddl/lib/ruby"
|
20
|
-
WEEL = "/home/mangler/Projects/weel/lib/"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
require 'rubygems'
|
25
|
-
gem 'nokogiri'
|
26
|
-
require File.expand_path(File.dirname(__FILE__) + '/../lib/cpee/implementation')
|
27
|
-
|
28
|
-
Riddl::Server.new(CPEE::SERVER, :port => 8298) do |opts|
|
29
|
-
accessible_description true
|
30
|
-
cross_site_xhr true
|
31
|
-
opts[:watchdog_start_off] true
|
32
|
-
|
33
|
-
use CPEE::implementation(opts)
|
34
|
-
end.loop!
|
data/server/routing/end.pid
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1180624
|
@@ -1 +0,0 @@
|
|
1
|
-
1180642
|
@@ -1 +0,0 @@
|
|
1
|
-
1180636
|
data/server/routing/persist.pid
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1180630
|
data/server/server.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
#
|
3
|
-
# This file is part of CPEE.
|
4
|
-
#
|
5
|
-
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
6
|
-
# of the GNU General Public License as published by the Free Software Foundation,
|
7
|
-
# either version 3 of the License, or (at your option) any later version.
|
8
|
-
#
|
9
|
-
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
10
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
11
|
-
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
12
|
-
#
|
13
|
-
# You should have received a copy of the GNU General Public License along with
|
14
|
-
# CPEE (file COPYING in the main directory). If not, see
|
15
|
-
# <http://www.gnu.org/licenses/>.
|
16
|
-
|
17
|
-
require 'rubygems'
|
18
|
-
gem 'nokogiri'
|
19
|
-
require File.expand_path(File.dirname(__FILE__) + '/../lib/cpee/implementation')
|
20
|
-
|
21
|
-
Riddl::Server.new(CPEE::SERVER, :port => 8298) do |opts|
|
22
|
-
accessible_description true
|
23
|
-
cross_site_xhr true
|
24
|
-
process_out false
|
25
|
-
|
26
|
-
use CPEE::implementation(opts)
|
27
|
-
end.loop!
|