cpee 2.1.77 → 2.1.79

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2d89a96cf818f522774efe8d3ff16db84d5e05076adc7d67ea5672882bd5e3d
4
- data.tar.gz: 3562319ace848faf37d6e470f33d924ffbf2d4b53f925ac8e76bf7dcad54cabc
3
+ metadata.gz: c964061a70cac85b0e31055837221a3a29682b805b09896eaf5625834950f8f9
4
+ data.tar.gz: 67cb5bf54c347a06c90862645e0b59cb47319be0088ec9a1f2b0b92f6d0fdd5c
5
5
  SHA512:
6
- metadata.gz: 6c46e594dcf3d287742d3bcea20b753887f956031a815e75c4a621689a500ebe00694cd00ab61559be8e899a7cc0d570e7bd5c95620136ef17cee72b17909a7d
7
- data.tar.gz: 2aa325aa049ac762f8cd03495b90c54f4756f5c95306103cb00538a052aa28416086e698f6dee5ddf6353c48f8fe71b7bf5d16964463928b2d4dd1215bb7a1a6
6
+ metadata.gz: 1c28c2b6a6c3e4440ffc5dbb5bb610cd501b76e98e5021c9b2fe391b93b2128d52b5e319db8f4d2b45fe7c136abc23b56e5a1b25061b4d18f725ec8f8d3af482
7
+ data.tar.gz: 899cefe9a892dc6e9159c3c0bf35109b26c141b775e74cd65dbc1d6b0aedaa2fdc73ad372641ee756b8906ce94de4243f2c7ba753430f8b3778f4d39df21a750
@@ -29,22 +29,36 @@ $(document).ready(function() {
29
29
 
30
30
  function do_main_save() { //{{{
31
31
  if (save['details'].has_changed()) {
32
- do_main_work();
32
+ do_main_work(save['details_target'].svgid);
33
33
  }
34
34
  } //}}}
35
35
 
36
- function do_main_work() { //{{{
37
- var svgid = save['details_target'].svgid;
36
+ function do_main_work(svgid) { //{{{
38
37
  var desc = save['details_target'].model;
39
38
  var node = desc.get_node_by_svg_id(svgid);
40
39
  var orignode = save['graph_adaptor'].illustrator.get_node_by_svg_id(svgid).parents('g.element[element-id]');
41
40
  var origtype = orignode.attr('element-type') + '_' + orignode.attr('element-endpoint');
42
41
 
43
42
  var url = $('body').attr('current-instance');
44
- save['details'].set_checkpoint();
45
43
 
46
- var nnew = $(save['details'].save().documentElement);
47
- nnew.attr('svg-id',svgid);
44
+ var nnew;
45
+ if (svgid != save['details_target'].svgid ) {
46
+ let tn = desc.get_node_by_svg_id(svgid).get(0);
47
+ let rng = desc.elements[$(tn).attr('svg-subtype')].clone();
48
+ if (save['endpoints_cache'][$(tn).attr('endpoint')] && save['endpoints_cache'][$(tn).attr('endpoint')].schema) {
49
+ let schema = save['endpoints_cache'][$(tn).attr('endpoint')].schema.documentElement;
50
+ $(rng).find(' > element[name="parameters"] > element[name="arguments"]').replaceWith($(schema).clone());
51
+ }
52
+ if (save['endpoints_list'][$(tn).attr('endpoint')] && (!save['endpoints_list'][$(tn).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(tn).attr('endpoint')].match(/^https?-/))) {
53
+ $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
54
+ }
55
+ let rngw = new RelaxNGui(rng,$('#relaxngworker'),desc.context_eval);
56
+ nnew = $(rngw.save().documentElement);
57
+ } else {
58
+ save['details'].set_checkpoint();
59
+ nnew = $(save['details'].save().documentElement);
60
+ }
61
+ nnew.attr('svg-id',svgid);
48
62
 
49
63
  if ($('*[svg-id]',node).length > 0) {
50
64
  nnew.append(node.children().filter(function(){ return this.attributes['svg-id'] != undefined; }));
@@ -54,8 +68,6 @@ function do_main_work() { //{{{
54
68
  nnew[0].removeAttribute('xmlns');
55
69
  }
56
70
 
57
- parameters_changed
58
-
59
71
  node.replaceWith(nnew);
60
72
 
61
73
  var ttarget = manifestation.adaptor.illustrator.get_node_by_svg_id(svgid);
@@ -82,7 +94,7 @@ function do_main_work() { //{{{
82
94
 
83
95
  if (newtype != origtype) {
84
96
  manifestation.update_details(svgid);
85
- do_main_work();
97
+ do_main_work(svgid);
86
98
  } else {
87
99
  $.ajax({
88
100
  type: "PUT",
@@ -3,61 +3,29 @@
3
3
  <executionhandler>ruby</executionhandler>
4
4
  <dataelements/>
5
5
  <endpoints>
6
- <subprocess>https-post://cpee.org/flow/start/url/</subprocess>
6
+ <subprocess>https-post://echo.bpm.in.tum.de/flow/start/url/</subprocess>
7
+ <user>https-post://cpee.org/services/timeout-user.php</user>
8
+ <auto>https-post://cpee.org/services/timeout-auto.php</auto>
7
9
  <timeout>https://cpee.org/services/timeout.php</timeout>
10
+ <send>https-post://cpee.org/ing/correlators/message/send/</send>
11
+ <receive>https-get://cpee.org/ing/correlators/message/receive/</receive>
8
12
  </endpoints>
9
13
  <attributes>
14
+ <guarded>none</guarded>
10
15
  <info>Subprocess</info>
11
- <creator>Christine Ashcreek</creator>
12
- <author>Christine Ashcreek</author>
13
16
  <modeltype>CPEE</modeltype>
14
- <guarded>none</guarded>
17
+ <theme>extended</theme>
18
+ <creator>Christine Ashcreek</creator>
15
19
  <guarded_id/>
20
+ <author>Christine Ashcreek</author>
16
21
  <model_uuid>1fc43528-3e4a-40ee-8503-c0ed7e5d883c</model_uuid>
17
22
  <model_version/>
18
- <theme>extended</theme>
19
- <design_dir>Templates.dir</design_dir>
20
23
  <design_stage>development</design_stage>
24
+ <design_dir>Templates.dir</design_dir>
21
25
  </attributes>
22
26
  <description>
23
27
  <description xmlns="http://cpee.org/ns/description/1.0">
24
- <call id="a2" endpoint="timeout">
25
- <parameters>
26
- <label>Wait</label>
27
- <method>:post</method>
28
- <arguments>
29
- <timeout>2</timeout>
30
- </arguments>
31
- </parameters>
32
- <annotations>
33
- <_generic/>
34
- <_timing>
35
- <_timing_weight/>
36
- <_timing_avg/>
37
- <explanations/>
38
- </_timing>
39
- <_shifting>
40
- <_shifting_type>Duration</_shifting_type>
41
- </_shifting>
42
- <_context_data_analysis>
43
- <probes/>
44
- <ips/>
45
- </_context_data_analysis>
46
- <report>
47
- <url/>
48
- </report>
49
- <_notes>
50
- <_notes_general/>
51
- </_notes>
52
- </annotations>
53
- <documentation>
54
- <input/>
55
- <output/>
56
- <implementation>
57
- <description/>
58
- </implementation>
59
- </documentation>
60
- </call>
28
+ <manipulate id="a3" label="">data.start = Time.now.to_f</manipulate>
61
29
  <call id="a1" endpoint="subprocess">
62
30
  <parameters>
63
31
  <label>Create Sub</label>
@@ -74,7 +42,10 @@
74
42
  </parameters>
75
43
  <code>
76
44
  <prepare/>
77
- <finalize output="result">data.res = result</finalize>
45
+ <finalize output="result">data.res = result
46
+ data.substart = result['start'].to_f - data.start.to_f
47
+ data.subend = result['end'].to_f - data.start.to_f
48
+ data.duration = Time.now.to_f - data.start.to_f</finalize>
78
49
  <update output="result"/>
79
50
  <rescue output="result"/>
80
51
  </code>
@@ -110,6 +81,7 @@
110
81
  </code>
111
82
  </documentation>
112
83
  </call>
84
+ <stop id="a2"/>
113
85
  </description>
114
86
  </description>
115
87
  <transformation>
@@ -1,13 +1,13 @@
1
1
  {
2
+ "guarded": "none",
2
3
  "info": "Subprocess",
3
- "creator": "Christine Ashcreek",
4
- "author": "Christine Ashcreek",
5
4
  "modeltype": "CPEE",
6
- "guarded": "none",
5
+ "theme": "extended",
6
+ "creator": "Christine Ashcreek",
7
7
  "guarded_id": "",
8
+ "author": "Christine Ashcreek",
8
9
  "model_uuid": "1fc43528-3e4a-40ee-8503-c0ed7e5d883c",
9
10
  "model_version": "",
10
- "theme": "extended",
11
- "design_dir": "Templates.dir",
12
- "design_stage": "development"
11
+ "design_stage": "development",
12
+ "design_dir": "Templates.dir"
13
13
  }
@@ -7,29 +7,37 @@
7
7
  <subprocess>https://cpee.org/flow/start/url/</subprocess>
8
8
  </endpoints>
9
9
  <attributes>
10
+ <guarded>none</guarded>
10
11
  <info>Wait</info>
11
- <creator>Christine Ashcreek</creator>
12
- <author>Christine Ashcreek</author>
13
12
  <modeltype>CPEE</modeltype>
14
- <guarded>none</guarded>
13
+ <theme>extended</theme>
14
+ <creator>Christine Ashcreek</creator>
15
15
  <guarded_id/>
16
+ <author>Christine Ashcreek</author>
16
17
  <model_uuid>c92d0c0b-8bbd-40dd-baad-01c5616dfceb</model_uuid>
17
18
  <model_version/>
18
- <theme>extended</theme>
19
19
  <design_dir>Templates.dir</design_dir>
20
20
  <design_stage>development</design_stage>
21
21
  </attributes>
22
22
  <description>
23
23
  <description xmlns="http://cpee.org/ns/description/1.0">
24
+ <manipulate id="a2" label="Measure Start">data.start = Time.now.to_f</manipulate>
24
25
  <call id="a1" endpoint="timeout">
25
26
  <parameters>
26
27
  <label>Wait</label>
27
28
  <method>:post</method>
28
29
  <arguments>
29
- <timeout>2</timeout>
30
+ <timeout>1</timeout>
30
31
  </arguments>
31
32
  </parameters>
33
+ <code>
34
+ <prepare/>
35
+ <finalize output="result">data.end = Time.now.to_f</finalize>
36
+ <update output="result"/>
37
+ <rescue output="result"/>
38
+ </code>
32
39
  <annotations>
40
+ <_generic/>
33
41
  <_timing>
34
42
  <_timing_weight/>
35
43
  <_timing_avg/>
@@ -55,6 +63,9 @@
55
63
  <implementation>
56
64
  <description/>
57
65
  </implementation>
66
+ <code>
67
+ <description/>
68
+ </code>
58
69
  </documentation>
59
70
  </call>
60
71
  </description>
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
@@ -17,6 +17,7 @@
17
17
  <value>:get</value>
18
18
  <value>:put</value>
19
19
  <value>:delete</value>
20
+ <value>:patch</value>
20
21
  </choice>
21
22
  </element>
22
23
  <element name="arguments" rngui:header="Arguments">
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.77"
3
+ s.version = "2.1.79"
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."
@@ -87,13 +87,16 @@ module CPEE
87
87
  opts[:redis_db_name] ||= 'redis.rdb' # use e.g. /var/lib/redis.rdb for global stuff. Look it up in your redis config
88
88
 
89
89
  opts[:libs_preload] ||= ['weel', 'json', 'redis', 'securerandom', 'riddl/client', 'cpee/value_helper', 'cpee/attributes_helper', 'cpee/message', 'cpee/redis', 'cpee/persistence', 'yaml', 'charlock_holmes', 'psych', 'xml/smart', 'ostruct', 'bigdecimal', 'mimemagic', 'cpee-eval-ruby/translation', 'get_process_mem']
90
+ opts[:libs_preloader] ||= '~/bin/by-server'
91
+ opts[:libs_preloaderrun] ||= '~/bin/by'
90
92
 
91
93
  CPEE::redis_connect opts, 'Server Main'
92
94
 
93
95
  ### start by server
94
96
  if opts[:libs_preload]&.is_a?(Array) && opts[:libs_preload].length > 0
95
- puts '(re)starting by-server ... it will keep running, just to let you know ...'
96
- `/usr/bin/env by-server '#{opts[:libs_preload].join("' '")}'`
97
+ puts '(re)starting by-server ...'
98
+ `pkill -f #{File.basename(opts[:libs_preloader])}`
99
+ `#{opts[:libs_preloader]} '#{opts[:libs_preload].join("' '")}'`
97
100
  end
98
101
 
99
102
  opts[:sse_keepalive_frequency] ||= 10
@@ -319,7 +322,7 @@ module CPEE
319
322
  id, uuid = NewInstance::create(opts,redis,doc.find('string(/*/p:attributes/p:info)'))
320
323
 
321
324
  subscriptions = []
322
- doc.find('/*/sub:subscriptions/sub:subscription').each do |s|
325
+ (doc.find('/*/sub:subscriptions/sub:subscription') rescue []).each do |s|
323
326
  sub = []
324
327
  unless sub[0] = s.attributes['id']
325
328
  sub[0] = Digest::MD5.hexdigest(Kernel::rand().to_s)
@@ -186,27 +186,27 @@ module CPEE
186
186
  end #}}}
187
187
  class Put < Riddl::Implementation #{{{
188
188
  def self::change_first(id,opts,doc)
189
- if (node = doc.find('/p:properties/p:status')).any?
189
+ if (node = doc.find('/*/p:status')).any?
190
190
  CPEE::Properties::PutStatus::set id, opts, node.first.dump
191
191
  end
192
- if (node = doc.find('/p:properties/p:executionhandler')).any?
192
+ if (node = doc.find('/*/p:executionhandler')).any?
193
193
  CPEE::Properties::PutExecutionHandler::set id, opts, node.first.text, false
194
194
  end
195
195
 
196
196
  %w{dataelements endpoints attributes}.each do |item|
197
- if (node = doc.find('/p:properties/p:' + item)).any?
197
+ if (node = doc.find('/*/p:' + item)).any?
198
198
  CPEE::Properties::PutItems::set item, id, opts, node.first.dump
199
199
  end
200
200
  end
201
201
 
202
- if (node = doc.find('/p:properties/p:transformation')).any?
202
+ if (node = doc.find('/*/p:transformation')).any?
203
203
  CPEE::Properties::PutTransformation::set id, opts, node.first.dump
204
204
  end
205
- if (node = doc.find('/p:properties/p:description/*')).any?
205
+ if (node = doc.find('/*/p:description/*')).any?
206
206
  CPEE::Properties::PutDescription::set id, opts, node.first.dump
207
207
  end
208
208
 
209
- if (node = doc.find('/p:properties/p:positions')).any?
209
+ if (node = doc.find('/*/p:positions')).any?
210
210
  if node.first.find('p:*').any?
211
211
  CPEE::Properties::PutPositions::set id, opts, node.first.dump
212
212
  end
@@ -215,7 +215,7 @@ module CPEE
215
215
  end
216
216
 
217
217
  def self::change_last(id,opts,doc)
218
- if (node = doc.find('/p:properties/p:state')).any?
218
+ if (node = doc.find('/*/p:state')).any?
219
219
  CPEE::Properties::PutState::run id, opts, node.first.text
220
220
  end
221
221
  end
@@ -158,20 +158,25 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
158
158
  a[k_ht] = headers[hname] if headers[hname]
159
159
  end
160
160
  end
161
- params.each do |p|
162
- if p.name == k
163
- if a.is_a? String
164
- p.value = a
165
- elsif a.is_a? Hash
166
- ohash = JSON::parse(p.value) rescue {}
167
- ohash.merge!(a)
168
- p.value = JSON.generate(ohash)
169
- end
170
- end
161
+ p = params.find{|p| p.name == k }
162
+ if p.nil?
163
+ p = Riddl::Parameter::Simple.new(k,'{}')
164
+ params << p
165
+ end
166
+
167
+ if a.is_a? String
168
+ p.value = a
169
+ elsif a.is_a? Hash
170
+ ohash = JSON::parse(p.value) rescue {}
171
+ ohash.merge!(a)
172
+ p.value = JSON.generate(ohash)
171
173
  end
172
174
  end
173
175
  end
174
176
  end
177
+
178
+ order = { 'behavior' => 1, 'url' => 2, 'init' => 3, 'endpoints' => 4, 'attributes' => 5, 'customization' => 6 }
179
+ params.sort!{|a,b| order[a.name].to_i <=> order[b.name].to_i }
175
180
  end
176
181
  else
177
182
  @handler_endpoint = @handler_endpoint_orig
@@ -55,12 +55,13 @@ module CPEE
55
55
  end
56
56
  template = ERB.new(File.read(ExecutionHandler::Ruby::BACKEND_TEMPLATE), trim_mode: '-')
57
57
  res = template.result_with_hash(dsl: dsl, dataelements: dataelements, endpoints: endpoints, positions: positions)
58
+ pp dataelements
58
59
  File.write(File.join(opts[:instances],id.to_s,ExecutionHandler::Ruby::BACKEND_INSTANCE),res)
59
60
  end
60
61
 
61
62
  def self::run(id,opts)
62
63
  exe = File.join(opts[:instances],id.to_s,File.basename(ExecutionHandler::Ruby::BACKEND_RUN))
63
- pid = Kernel.spawn(exe , :pgroup => true, :in => '/dev/null', :out => exe + '.out', :err => exe + '.err')
64
+ pid = Kernel.spawn(opts[:libs_preloaderrun] + ' ' + exe , :pgroup => true, :in => '/dev/null', :out => exe + '.out', :err => exe + '.err')
64
65
  Process.detach pid
65
66
  File.write(exe + '.pid',pid)
66
67
  end
@@ -1 +1 @@
1
- 949873
1
+ 55683
@@ -1 +1 @@
1
- 949891
1
+ 55702
@@ -1 +1 @@
1
- 949885
1
+ 55696
@@ -1 +1 @@
1
- 949879
1
+ 55689
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: 2.1.77
4
+ version: 2.1.79
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: tools
12
12
  cert_chain: []
13
- date: 2025-02-16 00:00:00.000000000 Z
13
+ date: 2025-02-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl