cpee 2.1.93 → 2.1.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/{resources-label.css → extended_columns-label.css} +4 -0
  3. data/cockpit/css/ui.css +2 -1
  4. data/cockpit/css/wfadaptor.css +8 -11
  5. data/cockpit/david.html +292 -0
  6. data/cockpit/edit.html +16 -7
  7. data/cockpit/graph.html +3 -3
  8. data/cockpit/index.html +15 -7
  9. data/cockpit/js/details.js +2 -1
  10. data/cockpit/js/extended_columns.js +233 -0
  11. data/cockpit/js/instance.js +45 -161
  12. data/cockpit/js/ui.js +0 -27
  13. data/cockpit/js/wfadaptor.js +25 -14
  14. data/cockpit/llm.html +3 -3
  15. data/cockpit/llm_alternative.html +3 -3
  16. data/cockpit/model.html +2 -2
  17. data/cockpit/only_llm.html +16 -7
  18. data/cockpit/templates/Coopis 2010.xml +11 -4
  19. data/cockpit/templates/Frames.xml +78 -10
  20. data/cockpit/templates/Track Test.xml +1 -1
  21. data/cockpit/themes/base.js +11 -7
  22. data/cockpit/themes/control/rngs/call.rng +8 -0
  23. data/cockpit/themes/control/rngs/callmanipulate.rng +9 -1
  24. data/cockpit/themes/control/rngs/loop.rng +7 -0
  25. data/cockpit/themes/control/rngs/manipulate.rng +57 -2
  26. data/cockpit/themes/dataflow/rngs/call.rng +8 -0
  27. data/cockpit/themes/dataflow/rngs/callmanipulate.rng +9 -1
  28. data/cockpit/themes/dataflow/rngs/loop.rng +7 -0
  29. data/cockpit/themes/dataflow/rngs/manipulate.rng +57 -2
  30. data/cockpit/themes/dataflow/theme.js +4 -4
  31. data/cockpit/themes/default/rngs/call.rng +8 -0
  32. data/cockpit/themes/default/rngs/callmanipulate.rng +9 -1
  33. data/cockpit/themes/default/rngs/loop.rng +7 -0
  34. data/cockpit/themes/default/rngs/manipulate.rng +57 -2
  35. data/cockpit/themes/extended/rngs/call.rng +8 -0
  36. data/cockpit/themes/extended/rngs/callmanipulate.rng +9 -1
  37. data/cockpit/themes/extended/rngs/loop.rng +7 -0
  38. data/cockpit/themes/extended/rngs/manipulate.rng +57 -2
  39. data/cockpit/themes/packed/rngs/call.rng +8 -0
  40. data/cockpit/themes/packed/rngs/callmanipulate.rng +9 -1
  41. data/cockpit/themes/packed/rngs/loop.rng +7 -0
  42. data/cockpit/themes/packed/rngs/manipulate.rng +57 -2
  43. data/cockpit/themes/preset/rngs/call.rng +8 -0
  44. data/cockpit/themes/preset/rngs/callmanipulate.rng +9 -1
  45. data/cockpit/themes/preset/rngs/loop.rng +7 -0
  46. data/cockpit/themes/preset/rngs/manipulate.rng +57 -2
  47. data/cockpit/themes/presetaltid/rngs/call.rng +8 -0
  48. data/cockpit/themes/presetaltid/rngs/callmanipulate.rng +9 -1
  49. data/cockpit/themes/presetaltid/rngs/loop.rng +7 -0
  50. data/cockpit/themes/presetaltid/rngs/manipulate.rng +57 -2
  51. data/cockpit/themes/presetaltid/theme.js +27 -3
  52. data/cockpit/themes/presetid/rngs/call.rng +8 -0
  53. data/cockpit/themes/presetid/rngs/callmanipulate.rng +9 -1
  54. data/cockpit/themes/presetid/rngs/loop.rng +7 -0
  55. data/cockpit/themes/presetid/rngs/manipulate.rng +57 -2
  56. data/cockpit/themes/reduced/rngs/call.rng +8 -0
  57. data/cockpit/themes/reduced/rngs/callmanipulate.rng +9 -1
  58. data/cockpit/themes/reduced/rngs/loop.rng +7 -0
  59. data/cockpit/themes/reduced/rngs/manipulate.rng +57 -2
  60. data/cockpit/track.html +3 -3
  61. data/cpee.gemspec +1 -1
  62. data/lib/cpee/implementation.rb +25 -38
  63. data/server/executionhandlers/ruby/connection.rb +7 -3
  64. data/server/executionhandlers/ruby/dsl_to_dslx.xsl +2 -2
  65. data/server/routing/end.pid +1 -1
  66. data/server/routing/forward-events-00.pid +1 -1
  67. data/server/routing/forward-events-01.pid +1 -0
  68. data/server/routing/forward-events-02.pid +1 -0
  69. data/server/routing/forward-events-03.pid +1 -0
  70. data/server/routing/forward-events-04.pid +1 -0
  71. data/server/routing/forward-events-05.pid +1 -0
  72. data/server/routing/forward-events-06.pid +1 -0
  73. data/server/routing/forward-votes.pid +1 -1
  74. data/server/routing/persist.pid +1 -1
  75. metadata +11 -4
  76. data/cockpit/js/resources.js +0 -64
  77. /data/cockpit/css/{resources-svg.css → extended_columns-svg.css} +0 -0
@@ -1,4 +1,4 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" rngui:label="Script" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
2
  <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
@@ -19,5 +19,60 @@
19
19
  <value>#f57aa9</value>
20
20
  </choice>
21
21
  </attribute>
22
- <text rngui:label="Script that is executed"/>
22
+ <element name="code" rngui:label="Script" rngui:header="Code">
23
+ <text rngui:label="Script that is executed"/>
24
+ </element>
25
+ <element name="annotations" rngui:header="Annotations">
26
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
27
+ <element name="_exclude" rngui:label="Exclude from log">
28
+ <data type="boolean" rngui:label="Exclude from log"/>
29
+ </element>
30
+ </element>
31
+ <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data objects (written in this task and otherwise) can be consumed and transformed in data probes. All probes can be the basis for impact factors. Please go to start to define instance data probes.">
32
+
33
+ <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed_conditional">
34
+ <zeroOrMore rngui:label="Add Probe">
35
+ <element name="probe">
36
+ <element name="id" rngui:label="ID">
37
+ <data type="string" rngui:label="ID"/>
38
+ </element>
39
+ <element name="source" rngui:label="Source">
40
+ <data type="string" rngui:label="Where does the sensor value come from?"/>
41
+ </element>
42
+ <element name="extractor_type" rngui:label="Extractor Type">
43
+ <choice>
44
+ <value rngui:label='Intrinsic'>intrinsic</value>
45
+ </choice>
46
+ </element>
47
+ <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For intrinsic &amp; extrinsic data'>
48
+ <text rngui:label="Code"/>
49
+ </element>
50
+ <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For separate data'>
51
+ <data type="string" rngui:label="Service Url"/>
52
+ </element>
53
+ <element name="extractor_params" rngui:label="Extractor Service Arguments:">
54
+ <zeroOrMore rngui:label="Create Argument Pairs">
55
+ <element rngui:label="Name">
56
+ <anyName/>
57
+ <data type="string" rngui:label="Value / Json"/>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
61
+ <element name="visualizer_url" rngui:label="Visualizer Url">
62
+ <data type="string" rngui:label="Service Url"/>
63
+ </element>
64
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
65
+ <zeroOrMore rngui:label="Create Argument Pairs">
66
+ <element rngui:label="Name">
67
+ <anyName/>
68
+ <data type="string" rngui:label="Value / Json"/>
69
+ </element>
70
+ </zeroOrMore>
71
+ </element>
72
+ </element>
73
+ </zeroOrMore>
74
+ </element>
75
+
76
+ </element>
77
+ </element>
23
78
  </element>
@@ -4,13 +4,37 @@ WFAdaptorManifestation = class extends WFAdaptorManifestationBase {
4
4
  this.compact = true;
5
5
  this.rotated_labels = false;
6
6
  this.elements.call.illustrator.label = function(node) { //{{{
7
- return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt-id') + ')' } ];
7
+ return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt_id') + ')' } ];
8
+ }; //}}}
9
+ this.elements.call.illustrator.info = function(node) { //{{{
10
+ return { 'element-endpoint': $(node).attr('endpoint'), 'element-alt_id': $(node).attr('a:alt_id') };
11
+ }; //}}}
12
+ this.elements.callmanipulate.illustrator.label = function(node) { //{{{
13
+ return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt_id') + ')' } ];
14
+ }; //}}}
15
+ this.elements.callmanipulate.illustrator.info = function(node) { //{{{
16
+ return { 'element-endpoint': $(node).attr('endpoint'), 'element-alt_id': $(node).attr('a:alt_id') };
8
17
  }; //}}}
9
18
  this.elements.stop.illustrator.label = function(node) { //{{{
10
- return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt-id') + ')' } ];
19
+ return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt_id') + ')' } ];
20
+ }; //}}}
21
+ this.elements.stop.illustrator.info = function(node) { //{{{
22
+ return { 'element-alt_id': $(node).attr('a:alt_id') };
11
23
  }; //}}}
12
24
  this.elements.wait_for_signal.illustrator.label = function(node) { //{{{
13
- return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt-id') + ')' } ];
25
+ return [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' (' + $(node).attr('a:alt_id') + ')' } ];
26
+ }; //}}}
27
+ this.elements.wait_for_signal.illustrator.info = function(node) { //{{{
28
+ return { 'element-alt_id': $(node).attr('a:alt_id') };
29
+ }; //}}}
30
+ this.elements.choose.illustrator.info = function(node) { //{{{
31
+ return { 'element-alt_id': $(node).attr('a:alt_id') };
32
+ }; //}}}
33
+ this.elements.loop.illustrator.info = function(node) { //{{{
34
+ return { 'element-alt_id': $(node).attr('a:alt_id') };
35
+ }; //}}}
36
+ this.elements.parallel.illustrator.info = function(node) { //{{{
37
+ return { 'element-alt_id': $(node).attr('a:alt_id') };
14
38
  }; //}}}
15
39
  }
16
40
  }
@@ -52,6 +52,14 @@
52
52
  </element>
53
53
  </zeroOrMore>
54
54
  </element>
55
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
56
+ <element name="_exclude" rngui:label="Exclude from log">
57
+ <data type="boolean" rngui:label="Exclude from log"/>
58
+ </element>
59
+ <element name="_include" rngui:label="Include nested events">
60
+ <data type="boolean" rngui:label="Include nested events"/>
61
+ </element>
62
+ </element>
55
63
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
56
64
  <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
57
65
  <data type="float" rngui:label="[0,1]"/>
@@ -44,7 +44,7 @@
44
44
  </element>
45
45
  </element>
46
46
  <element name="code" rngui:header="Data Handling">
47
- <element name="signal" rngui:label="Signal after data manipulation (finalize/update)">
47
+ <element name="signal" rngui:label="Signal after finalize/update">
48
48
  <data type="boolean" rngui:label="A signal is sent every time the activity changes a data object"/>
49
49
  </element>
50
50
  <element name="prepare" rngui:header="Prepare" rngui:label="Code" rngui:fold="closed_conditional">
@@ -78,6 +78,14 @@
78
78
  </element>
79
79
  </zeroOrMore>
80
80
  </element>
81
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
82
+ <element name="_exclude" rngui:label="Exclude from log">
83
+ <data type="boolean" rngui:label="Exclude from log"/>
84
+ </element>
85
+ <element name="_include" rngui:label="Include nested events">
86
+ <data type="boolean" rngui:label="Include nested events"/>
87
+ </element>
88
+ </element>
81
89
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
82
90
  <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
83
91
  <data type="float" rngui:label="[0,1]"/>
@@ -19,4 +19,11 @@
19
19
  <data type="nonNegativeInteger" rngui:label="Times"/>
20
20
  </element>
21
21
  </element>
22
+ <element name="_annotations" rngui:header="Annotations">
23
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
24
+ <element name="_iteration" rngui:label="Log per iteration">
25
+ <data type="boolean" rngui:label="Log per iteration"/>
26
+ </element>
27
+ </element>
28
+ </element>
22
29
  </element>
@@ -1,4 +1,4 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" rngui:label="Script" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
2
  <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
@@ -19,5 +19,60 @@
19
19
  <value>#f57aa9</value>
20
20
  </choice>
21
21
  </attribute>
22
- <text rngui:label="Script that is executed"/>
22
+ <element name="code" rngui:label="Script" rngui:header="Code">
23
+ <text rngui:label="Script that is executed"/>
24
+ </element>
25
+ <element name="annotations" rngui:header="Annotations">
26
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
27
+ <element name="_exclude" rngui:label="Exclude from log">
28
+ <data type="boolean" rngui:label="Exclude from log"/>
29
+ </element>
30
+ </element>
31
+ <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data objects (written in this task and otherwise) can be consumed and transformed in data probes. All probes can be the basis for impact factors. Please go to start to define instance data probes.">
32
+
33
+ <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed_conditional">
34
+ <zeroOrMore rngui:label="Add Probe">
35
+ <element name="probe">
36
+ <element name="id" rngui:label="ID">
37
+ <data type="string" rngui:label="ID"/>
38
+ </element>
39
+ <element name="source" rngui:label="Source">
40
+ <data type="string" rngui:label="Where does the sensor value come from?"/>
41
+ </element>
42
+ <element name="extractor_type" rngui:label="Extractor Type">
43
+ <choice>
44
+ <value rngui:label='Intrinsic'>intrinsic</value>
45
+ </choice>
46
+ </element>
47
+ <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For intrinsic &amp; extrinsic data'>
48
+ <text rngui:label="Code"/>
49
+ </element>
50
+ <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For separate data'>
51
+ <data type="string" rngui:label="Service Url"/>
52
+ </element>
53
+ <element name="extractor_params" rngui:label="Extractor Service Arguments:">
54
+ <zeroOrMore rngui:label="Create Argument Pairs">
55
+ <element rngui:label="Name">
56
+ <anyName/>
57
+ <data type="string" rngui:label="Value / Json"/>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
61
+ <element name="visualizer_url" rngui:label="Visualizer Url">
62
+ <data type="string" rngui:label="Service Url"/>
63
+ </element>
64
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
65
+ <zeroOrMore rngui:label="Create Argument Pairs">
66
+ <element rngui:label="Name">
67
+ <anyName/>
68
+ <data type="string" rngui:label="Value / Json"/>
69
+ </element>
70
+ </zeroOrMore>
71
+ </element>
72
+ </element>
73
+ </zeroOrMore>
74
+ </element>
75
+
76
+ </element>
77
+ </element>
23
78
  </element>
@@ -52,6 +52,14 @@
52
52
  </element>
53
53
  </zeroOrMore>
54
54
  </element>
55
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
56
+ <element name="_exclude" rngui:label="Exclude from log">
57
+ <data type="boolean" rngui:label="Exclude from log"/>
58
+ </element>
59
+ <element name="_include" rngui:label="Include nested events">
60
+ <data type="boolean" rngui:label="Include nested events"/>
61
+ </element>
62
+ </element>
55
63
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
56
64
  <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
57
65
  <data type="float" rngui:label="[0,1]"/>
@@ -44,7 +44,7 @@
44
44
  </element>
45
45
  </element>
46
46
  <element name="code" rngui:header="Data Handling">
47
- <element name="signal" rngui:label="Signal after data manipulation (finalize/update)">
47
+ <element name="signal" rngui:label="Signal after finalize/update">
48
48
  <data type="boolean" rngui:label="A signal is sent every time the activity changes a data object"/>
49
49
  </element>
50
50
  <element name="prepare" rngui:header="Prepare" rngui:label="Code" rngui:fold="closed_conditional">
@@ -78,6 +78,14 @@
78
78
  </element>
79
79
  </zeroOrMore>
80
80
  </element>
81
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
82
+ <element name="_exclude" rngui:label="Exclude from log">
83
+ <data type="boolean" rngui:label="Exclude from log"/>
84
+ </element>
85
+ <element name="_include" rngui:label="Include nested events">
86
+ <data type="boolean" rngui:label="Include nested events"/>
87
+ </element>
88
+ </element>
81
89
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
82
90
  <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
83
91
  <data type="float" rngui:label="[0,1]"/>
@@ -19,4 +19,11 @@
19
19
  <data type="nonNegativeInteger" rngui:label="Times"/>
20
20
  </element>
21
21
  </element>
22
+ <element name="_annotations" rngui:header="Annotations">
23
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
24
+ <element name="_iteration" rngui:label="Log per iteration">
25
+ <data type="boolean" rngui:label="Log per iteration"/>
26
+ </element>
27
+ </element>
28
+ </element>
22
29
  </element>
@@ -1,4 +1,4 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" rngui:label="Script" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
2
  <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
@@ -19,5 +19,60 @@
19
19
  <value>#f57aa9</value>
20
20
  </choice>
21
21
  </attribute>
22
- <text rngui:label="Script that is executed"/>
22
+ <element name="code" rngui:label="Script" rngui:header="Code">
23
+ <text rngui:label="Script that is executed"/>
24
+ </element>
25
+ <element name="annotations" rngui:header="Annotations">
26
+ <element name="_logging_behavior" rngui:header="Logging Behavior" rngui:fold="closed">
27
+ <element name="_exclude" rngui:label="Exclude from log">
28
+ <data type="boolean" rngui:label="Exclude from log"/>
29
+ </element>
30
+ </element>
31
+ <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data objects (written in this task and otherwise) can be consumed and transformed in data probes. All probes can be the basis for impact factors. Please go to start to define instance data probes.">
32
+
33
+ <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed_conditional">
34
+ <zeroOrMore rngui:label="Add Probe">
35
+ <element name="probe">
36
+ <element name="id" rngui:label="ID">
37
+ <data type="string" rngui:label="ID"/>
38
+ </element>
39
+ <element name="source" rngui:label="Source">
40
+ <data type="string" rngui:label="Where does the sensor value come from?"/>
41
+ </element>
42
+ <element name="extractor_type" rngui:label="Extractor Type">
43
+ <choice>
44
+ <value rngui:label='Intrinsic'>intrinsic</value>
45
+ </choice>
46
+ </element>
47
+ <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For intrinsic &amp; extrinsic data'>
48
+ <text rngui:label="Code"/>
49
+ </element>
50
+ <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For separate data'>
51
+ <data type="string" rngui:label="Service Url"/>
52
+ </element>
53
+ <element name="extractor_params" rngui:label="Extractor Service Arguments:">
54
+ <zeroOrMore rngui:label="Create Argument Pairs">
55
+ <element rngui:label="Name">
56
+ <anyName/>
57
+ <data type="string" rngui:label="Value / Json"/>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
61
+ <element name="visualizer_url" rngui:label="Visualizer Url">
62
+ <data type="string" rngui:label="Service Url"/>
63
+ </element>
64
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
65
+ <zeroOrMore rngui:label="Create Argument Pairs">
66
+ <element rngui:label="Name">
67
+ <anyName/>
68
+ <data type="string" rngui:label="Value / Json"/>
69
+ </element>
70
+ </zeroOrMore>
71
+ </element>
72
+ </element>
73
+ </zeroOrMore>
74
+ </element>
75
+
76
+ </element>
77
+ </element>
23
78
  </element>
data/cockpit/track.html CHANGED
@@ -56,11 +56,11 @@
56
56
  <script type="text/javascript" src="js/parameters.js"></script>
57
57
  <script type="text/javascript" src="js/track.js"></script>
58
58
  <script type="text/javascript" src="js/modifiers.js"></script>
59
- <script type="text/javascript" src="js/resources.js"></script>
59
+ <script type="text/javascript" src="js/extended_columns.js"></script>
60
60
  <script type="text/javascript" src="themes/base.js"></script>
61
61
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
62
- <link rel="stylesheet" href="css/resources-label.css" type="text/css"/>
63
- <link rel="stylesheet" href="css/resources-svg.css" type="text/css" data-include-export="true"/>
62
+ <link rel="stylesheet" href="css/extended_columns-label.css" type="text/css"/>
63
+ <link rel="stylesheet" href="css/extended_columns-svg.css" type="text/css" data-include-export="true"/>
64
64
  <link rel="stylesheet" href="css/track.css" type="text/css"/>
65
65
  </head>
66
66
  <body data-base-port="8298" data-res-port="9303" data-theme-base="themes" is="x-ui-">
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.93"
3
+ s.version = "2.1.96"
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."
@@ -117,7 +117,7 @@ module CPEE
117
117
  Dir[File.join(opts[:global_executionhandlers],'*','execution.rb')].each do |h|
118
118
  require h
119
119
  end unless opts[:global_executionhandlers].nil? || opts[:global_executionhandlers].strip == ''
120
- Dir[File.join(opts[:executionhandlers],'*','execution.rb')].each do |h|
120
+ Dir[File.join(opts[:executionhandlers],'**','execution.rb')].each do |h|
121
121
  require h
122
122
  end unless opts[:executionhandlers].nil? || opts[:executionhandlers].strip == ''
123
123
  CPEE::Message::set_workers(opts[:workers])
@@ -316,34 +316,12 @@ module CPEE
316
316
 
317
317
  doc = XML::Smart::string(@p[0].value.read)
318
318
  doc.register_namespace 'p', 'http://cpee.org/ns/properties/2.0'
319
- doc.register_namespace 'sub', 'http://riddl.org/ns/common-patterns/notifications-producer/2.0'
319
+ doc.register_namespace 'np', 'http://riddl.org/ns/common-patterns/notifications-producer/2.0'
320
320
 
321
321
  name = doc.find('string(/*/p:attributes/p:info)')
322
322
 
323
- id, uuid = NewInstance::create(opts,redis,name,doc)
324
-
325
- subscriptions = []
326
- (doc.find('/*/sub:subscriptions/sub:subscription') rescue []).each do |s|
327
- sub = []
328
- unless sub[0] = s.attributes['id']
329
- sub[0] = Digest::MD5.hexdigest(Kernel::rand().to_s)
330
- end
331
-
332
- unless sub[1] = s.attributes['url']
333
- raise "no url"
334
- end
335
-
336
- sub[2] = []
337
- s.find('sub:topic').each do |t|
338
- %w(event vote).each do |type|
339
- t.find('sub:' + type).each do |e|
340
- sub[2] << File.join(t.attributes['id'],type,e.text)
341
- end
342
- end
343
- end
344
-
345
- CPEE::Persistence::set_handler(id,opts,*sub)
346
- end
323
+ subs = (doc.find('/*/np:subscriptions/np:subscription') rescue []).to_a
324
+ id, uuid = NewInstance::create(opts,redis,name,subs,doc)
347
325
 
348
326
  content = {
349
327
  :state => 'ready',
@@ -372,7 +350,19 @@ module CPEE
372
350
  File.join(*ret.reverse)
373
351
  end
374
352
 
375
- def self::create(opts,redis,name,doc=nil)
353
+ def self::sub(multi,id,doc,key)
354
+ doc.register_namespace 'np', 'http://riddl.org/ns/common-patterns/notifications-producer/2.0'
355
+ url = doc.find('string(/np:subscription/@url)')
356
+ multi.sadd(CPEE::Persistence::obj + ":#{id}/handlers",key)
357
+ multi.set(CPEE::Persistence::obj + ":#{id}/handlers/#{key}/url",url)
358
+ doc.find('/np:subscription/np:topic/*').each do |e|
359
+ c = File.join(e.parent.attributes['id'],e.qname.name,e.text)
360
+ multi.sadd(CPEE::Persistence::obj + ":#{id}/handlers/#{key}",c)
361
+ multi.sadd(CPEE::Persistence::obj + ":#{id}/handlers/#{c}",key)
362
+ end
363
+ end
364
+
365
+ def self::create(opts,redis,name,subs,doc=nil)
376
366
  doc = XML::Smart::open_unprotected(opts[:properties_init]) if doc.nil?
377
367
  doc.register_namespace 'p', 'http://cpee.org/ns/properties/2.0'
378
368
  id = CPEE::Persistence::new_object(opts)
@@ -399,18 +389,15 @@ module CPEE
399
389
  end
400
390
  Dir[File.join(opts[:notifications_init],'*','subscription.xml')].each do |f|
401
391
  XML::Smart::open_unprotected(f) do |doc|
402
- doc.register_namespace 'np', 'http://riddl.org/ns/common-patterns/notifications-producer/2.0'
403
- key = File.basename(File.dirname(f))
404
- url = doc.find('string(/np:subscription/@url)')
405
- multi.sadd(CPEE::Persistence::obj + ":#{id}/handlers",key)
406
- multi.set(CPEE::Persistence::obj + ":#{id}/handlers/#{key}/url",url)
407
- doc.find('/np:subscription/np:topic/*').each do |e|
408
- c = File.join(e.parent.attributes['id'],e.qname.name,e.text)
409
- multi.sadd(CPEE::Persistence::obj + ":#{id}/handlers/#{key}",c)
410
- multi.sadd(CPEE::Persistence::obj + ":#{id}/handlers/#{c}",key)
411
- end
392
+ NewInstance::sub(multi,id,doc,File.basename(File.dirname(f)))
412
393
  end rescue nil # all the ones that are not ok, are ignored
413
394
  end
395
+ subs.each do |s|
396
+ begin
397
+ NewInstance::sub(multi,id,s.to_doc,s.attributes['id'] || Digest::MD5.hexdigest(Kernel::rand().to_s))
398
+ end
399
+ end
400
+
414
401
  multi.set(File.join(instance, 'attributes', 'uuid'), uuid)
415
402
  multi.zadd(File.join(instance, 'attributes'), -2, 'uuid')
416
403
  multi.set(File.join(instance, 'attributes', 'info'), name)
@@ -426,7 +413,7 @@ module CPEE
426
413
  redis = opts[:redis]
427
414
  name = @p[0].value
428
415
 
429
- id, uuid = NewInstance::create(opts,redis,name)
416
+ id, uuid = NewInstance::create(opts,redis,name,[])
430
417
  content = {
431
418
  :state => 'ready',
432
419
  :attributes => CPEE::Persistence::extract_list(id,opts,'attributes').to_h
@@ -221,7 +221,8 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
221
221
  @label = parameters[:label]
222
222
  @anno = parameters.delete(:annotations) rescue nil
223
223
  @controller.notify("status/resource_utilization", :mib => GetProcessMem.new.mb, **Process.times.to_h)
224
- @controller.notify("activity/calling", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters, :annotations => @anno)
224
+ @controller.notify("activity/calling", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters)
225
+ @controller.notify("activity/annotation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => @anno)
225
226
  if passthrough.to_s.empty?
226
227
  proto_curl parameters
227
228
  else
@@ -231,6 +232,8 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
231
232
  end # }}}
232
233
  def activity_manipulate_handle(parameters) #{{{
233
234
  @label = parameters[:label]
235
+ @anno = parameters.delete(:annotations) rescue nil
236
+ @controller.notify("activity/annotation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => @anno)
234
237
  end #}}}
235
238
 
236
239
  def activity_result_value # {{{
@@ -269,7 +272,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
269
272
  end # }}}
270
273
  def inform_manipulate_change(status,changed_dataelements,changed_endpoints,dataelements,endpoints) # {{{
271
274
  unless status.nil?
272
- @controller.notify("status/change", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :id => status.id, :message => status.message)
275
+ @controller.notify("status/change", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :data => { :id => status.id, :message => status.message } )
273
276
  end
274
277
  unless changed_dataelements.nil? || changed_dataelements.empty?
275
278
  de = dataelements.slice(*changed_dataelements).transform_values { |v| enc = CPEE::EvalRuby::Translation::detect_encoding(v); (enc == 'OTHER' ? v : (v.encode('UTF-8',enc) rescue CPEE::EvalRuby::Translation::convert_to_base64(v))) }
@@ -295,7 +298,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
295
298
  nil
296
299
  end
297
300
 
298
- @controller.notify("activity/receiving", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv, :annotations => @anno)
301
+ @controller.notify("activity/receiving", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
299
302
 
300
303
  @guard_files += result
301
304
  @guard_files += ret
@@ -430,6 +433,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
430
433
  recv = 'false' unless recv
431
434
  recv = (recv == 'false' || recv == 'null' || recv == 'nil' || recv == false ? false : true)
432
435
  @controller.notify("gateway/decide", :ecid => Thread.current.__id__, :instance_uuid => @controller.uuid, :code => code, :condition => recv)
436
+ @controller.notify("gateway/annotation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => {})
433
437
  recv
434
438
  end #}}}
435
439
  def manipulate(readonly,lock,dataelements,endpoints,status,local,additional,code,where,result=nil,options=nil) #{{{
@@ -718,7 +718,7 @@
718
718
  </xsl:template>
719
719
  <xsl:template name="print-mcontent">
720
720
  <xsl:param name="myspace"/>
721
- <xsl:if test="text()">
721
+ <xsl:if test="d:code/text()">
722
722
  <xsl:choose>
723
723
  <xsl:when test="@language='application/x-ruby'">
724
724
  <xsl:text> do </xsl:text>
@@ -732,7 +732,7 @@
732
732
  <xsl:text>, &lt;&lt;-END</xsl:text>
733
733
  </xsl:otherwise>
734
734
  </xsl:choose>
735
- <xsl:for-each select="str:tokenize(text(), '&#x0A;')">
735
+ <xsl:for-each select="str:tokenize(d:code/text(), '&#x0A;')">
736
736
  <xsl:value-of select="concat('&#x0A;',concat(str:padding($myspace+$myspacemultiplier+$myspacemultiplier),str:replace(str:replace(str:replace(string(.),'\','\\'),'&quot;','\&quot;'),'#','\#')))" />
737
737
  </xsl:for-each>
738
738
  <xsl:call-template name="print-newline"/>
@@ -1 +1 @@
1
- 91247
1
+ 2372948
@@ -1 +1 @@
1
- 91265
1
+ 2372966
@@ -0,0 +1 @@
1
+ 2372972
@@ -0,0 +1 @@
1
+ 2372978
@@ -0,0 +1 @@
1
+ 2372984
@@ -0,0 +1 @@
1
+ 2372990
@@ -0,0 +1 @@
1
+ 2372996
@@ -0,0 +1 @@
1
+ 2373002
@@ -1 +1 @@
1
- 91259
1
+ 2372960
@@ -1 +1 @@
1
- 91253
1
+ 2372954