cpee 2.1.17 → 2.1.22

Sign up to get free protection for your applications and to get access to all the features.
@@ -25,92 +25,6 @@
25
25
  </element>
26
26
  </zeroOrMore>
27
27
  </element>
28
- <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data returned from the endpoint implementing this task as well as arbitray external data streams 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.">
29
-
30
- <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed">
31
- <zeroOrMore rngui:label="Add Probe">
32
- <element name="probe">
33
- <element name="name" rngui:label="Label">
34
- <data type="string" rngui:label="Label"/>
35
- </element>
36
- <element name="extractor_type" rngui:label="Extractor Type">
37
- <choice>
38
- <value id='code'>Code</value>
39
- <value id='service'>Service</value>
40
- </choice>
41
- </element>
42
- <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For extrinsic data'>
43
- <text rngui:label="Code"/>
44
- </element>
45
- <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For extrinsic &amp; discrete data'>
46
- <data type="string" rngui:label="Service Url"/>
47
- </element>
48
- <element name="extractor_params" rngui:label="Extractor Service Arguments:">
49
- <zeroOrMore rngui:label="Create Argument Pairs">
50
- <element rngui:label="Name">
51
- <anyName/>
52
- <data type="string" rngui:label="Value / Json"/>
53
- </element>
54
- </zeroOrMore>
55
- </element>
56
- <element name="visualizer_url" rngui:label="Visualizer Url">
57
- <data type="string" rngui:label="Service Url"/>
58
- </element>
59
- <element name="visualizer_params" rngui:label="Visualizer Arguments">
60
- <zeroOrMore rngui:label="Create Argument Pairs">
61
- <element rngui:label="Name">
62
- <anyName/>
63
- <data type="string" rngui:label="Value / Json"/>
64
- </element>
65
- </zeroOrMore>
66
- </element>
67
- </element>
68
- </zeroOrMore>
69
- </element>
70
-
71
- <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
72
- <zeroOrMore rngui:label="Add Impact Profile">
73
- <element name="ip">
74
- <element name="name" rngui:label="Label">
75
- <data type="string" rngui:label="Label"/>
76
- </element>
77
- <element name="target" rngui:label="Target Value">
78
- <data type="string" rngui:label="Value"/>
79
- </element>
80
- <element name="ifs" rngui:header="Impact Factors">
81
- <zeroOrMore rngui:label="Add Impact Factor">
82
- <element name="if">
83
- <element name="ivs" rngui:header="Impact Values">
84
- <zeroOrMore rngui:label="Add Impact Value ">
85
- <element name="iv">
86
- <element name="extractor_url" rngui:label="Extractor Url">
87
- <data type="string" rngui:label="Service Url + Parameters"/>
88
- </element>
89
- <element name="aggregator_url" rngui:label="Aggregator Url">
90
- <data type="string" rngui:label="Service Url + Parameters"/>
91
- </element>
92
- </element>
93
- </zeroOrMore>
94
- </element>
95
- <element name="aggregator_url" rngui:label="Impact Function Url">
96
- <data type="string" rngui:label="Service Url + Parameters"/>
97
- </element>
98
- </element>
99
- </zeroOrMore>
100
- </element>
101
- <element name="vfunc_url" rngui:label="Violation Function Url">
102
- <data type="string" rngui:label="Service Url + Parameters"/>
103
- </element>
104
- </element>
105
- </zeroOrMore>
106
- </element>
107
-
108
- </element>
109
- <element name="report" rngui:header="Reporting" rngui:fold="closed">
110
- <element name="url" rngui:label='HTML Snippet'>
111
- <data type="string" rngui:label="url to report snippet"/>
112
- </element>
113
- </element>
114
28
  </element>
115
29
  <element name="annotations" rngui:header="Annotations">
116
30
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
@@ -120,6 +34,92 @@
120
34
  <element name="_timing_avg" rngui:label="Avg in min">
121
35
  <data type="float" rngui:label="Minutes"/>
122
36
  </element>
37
+ <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data returned from the endpoint implementing this task as well as arbitray external data streams 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.">
38
+
39
+ <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed">
40
+ <zeroOrMore rngui:label="Add Probe">
41
+ <element name="probe">
42
+ <element name="name" rngui:label="Label">
43
+ <data type="string" rngui:label="Label"/>
44
+ </element>
45
+ <element name="extractor_type" rngui:label="Extractor Type">
46
+ <choice>
47
+ <value id='code'>Code</value>
48
+ <value id='service'>Service</value>
49
+ </choice>
50
+ </element>
51
+ <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For extrinsic data'>
52
+ <text rngui:label="Code"/>
53
+ </element>
54
+ <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For extrinsic &amp; discrete data'>
55
+ <data type="string" rngui:label="Service Url"/>
56
+ </element>
57
+ <element name="extractor_params" rngui:label="Extractor Service Arguments:">
58
+ <zeroOrMore rngui:label="Create Argument Pairs">
59
+ <element rngui:label="Name">
60
+ <anyName/>
61
+ <data type="string" rngui:label="Value / Json"/>
62
+ </element>
63
+ </zeroOrMore>
64
+ </element>
65
+ <element name="visualizer_url" rngui:label="Visualizer Url">
66
+ <data type="string" rngui:label="Service Url"/>
67
+ </element>
68
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
69
+ <zeroOrMore rngui:label="Create Argument Pairs">
70
+ <element rngui:label="Name">
71
+ <anyName/>
72
+ <data type="string" rngui:label="Value / Json"/>
73
+ </element>
74
+ </zeroOrMore>
75
+ </element>
76
+ </element>
77
+ </zeroOrMore>
78
+ </element>
79
+
80
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
81
+ <zeroOrMore rngui:label="Add Impact Profile">
82
+ <element name="ip">
83
+ <element name="name" rngui:label="Label">
84
+ <data type="string" rngui:label="Label"/>
85
+ </element>
86
+ <element name="target" rngui:label="Target Value">
87
+ <data type="string" rngui:label="Value"/>
88
+ </element>
89
+ <element name="ifs" rngui:header="Impact Factors">
90
+ <zeroOrMore rngui:label="Add Impact Factor">
91
+ <element name="if">
92
+ <element name="ivs" rngui:header="Impact Values">
93
+ <zeroOrMore rngui:label="Add Impact Value ">
94
+ <element name="iv">
95
+ <element name="extractor_url" rngui:label="Extractor Url">
96
+ <data type="string" rngui:label="Service Url + Parameters"/>
97
+ </element>
98
+ <element name="aggregator_url" rngui:label="Aggregator Url">
99
+ <data type="string" rngui:label="Service Url + Parameters"/>
100
+ </element>
101
+ </element>
102
+ </zeroOrMore>
103
+ </element>
104
+ <element name="aggregator_url" rngui:label="Impact Function Url">
105
+ <data type="string" rngui:label="Service Url + Parameters"/>
106
+ </element>
107
+ </element>
108
+ </zeroOrMore>
109
+ </element>
110
+ <element name="vfunc_url" rngui:label="Violation Function Url">
111
+ <data type="string" rngui:label="Service Url + Parameters"/>
112
+ </element>
113
+ </element>
114
+ </zeroOrMore>
115
+ </element>
116
+
117
+ </element>
118
+ <element name="report" rngui:header="Reporting" rngui:fold="closed">
119
+ <element name="url" rngui:label='HTML Snippet'>
120
+ <data type="string" rngui:label="url to report snippet"/>
121
+ </element>
122
+ </element>
123
123
  <element name="explanations" rngui:header="Explanations">
124
124
  <zeroOrMore rngui:label="Add Explanation">
125
125
  <element name="explanation">
@@ -155,29 +155,31 @@
155
155
  </element>
156
156
  </element>
157
157
  </element>
158
- <element name="input" rngui:header="Input Arguments Documentation" rngui:fold="closed">
159
- <zeroOrMore rngui:label="Create Argument">
160
- <element name="item" rngui:label="Description">
161
- <attribute name="label" rngui:label="Name">
162
- <data type="string"/>
163
- </attribute>
164
- <text rngui:wrap="true" rngui:label="What does it do?"/>
165
- </element>
166
- </zeroOrMore>
167
- </element>
168
- <element name="output" rngui:header="Output Elements Documentation" rngui:fold="closed">
169
- <zeroOrMore rngui:label="Create Element">
170
- <element name="item" rngui:label="Description">
171
- <attribute name="label" rngui:label="Name">
172
- <data type="string"/>
173
- </attribute>
174
- <text rngui:wrap="true" rngui:label="What does it do?"/>
158
+ <element name="input" rngui:header="Documentation">
159
+ <element name="input" rngui:header="Input Arguments" rngui:fold="closed">
160
+ <zeroOrMore rngui:label="Create Argument">
161
+ <element name="item" rngui:label="Description">
162
+ <attribute name="label" rngui:label="Name">
163
+ <data type="string"/>
164
+ </attribute>
165
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
166
+ </element>
167
+ </zeroOrMore>
168
+ </element>
169
+ <element name="output" rngui:header="Output Elements" rngui:fold="closed">
170
+ <zeroOrMore rngui:label="Create Element">
171
+ <element name="item" rngui:label="Description">
172
+ <attribute name="label" rngui:label="Name">
173
+ <data type="string"/>
174
+ </attribute>
175
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
176
+ </element>
177
+ </zeroOrMore>
178
+ </element>
179
+ <element name="implementation" rngui:header="Implementation" rngui:fold="closed">
180
+ <element name="description" rngui:label="Description">
181
+ <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
175
182
  </element>
176
- </zeroOrMore>
177
- </element>
178
- <element name="implementation" rngui:header="Implementation Documentation" rngui:fold="closed">
179
- <element name="description" rngui:label="Description">
180
- <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
181
183
  </element>
182
184
  </element>
183
185
  </element>
@@ -25,6 +25,67 @@
25
25
  </element>
26
26
  </zeroOrMore>
27
27
  </element>
28
+ </element>
29
+ <element name="code" rngui:header="Output Handling">
30
+ <element name="prepare" rngui:header="Prepare" rngui:label="Code" rngui:fold="closed_conditional">
31
+ <text rngui:label="Script that is executed, before a service call"/>
32
+ </element>
33
+ <element name="finalize" rngui:header="Finalize" rngui:label="Code" rngui:fold="closed_conditional">
34
+ <attribute name="output" rngui:label="Access Variable" rngui:default="result">
35
+ <data type="string" rngui:readonly="true"/>
36
+ </attribute>
37
+ <text rngui:label="Script that is executed, when a service returns data"/>
38
+ </element>
39
+ <element name="update" rngui:header="Update" rngui:label="Code" rngui:fold="closed_conditional">
40
+ <attribute name="output" rngui:label="Access Variable" rngui:default="result">
41
+ <data type="string" rngui:readonly="true"/>
42
+ </attribute>
43
+ <text rngui:label="Script that is executed, when a service sends intermediate data"/>
44
+ </element>
45
+ <element name="rescue" rngui:header="Rescue" rngui:label="Code" rngui:fold="closed_conditional">
46
+ <attribute name="output" rngui:label="Access Variable" rngui:default="result">
47
+ <data type="string" rngui:readonly="true"/>
48
+ </attribute>
49
+ <text rngui:label="Script that is executed, if a service call fails"/>
50
+ </element>
51
+ </element>
52
+ <element name="annotations" rngui:header="Annotations">
53
+ <element name="_timing" rngui:header="Timing" rngui:fold="closed">
54
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
55
+ <data type="float" rngui:label="[0,1]"/>
56
+ </element>
57
+ <element name="_timing_avg" rngui:label="Avg in min">
58
+ <data type="float" rngui:label="Minutes"/>
59
+ </element>
60
+ <element name="explanations" rngui:header="Explanations">
61
+ <zeroOrMore rngui:label="Add Explanation">
62
+ <element name="explanation">
63
+ <element name="type" rngui:label="Type">
64
+ <choice>
65
+ <value>&gt;</value>
66
+ <value>&lt;</value>
67
+ </choice>
68
+ </element>
69
+ <element name="deviation" rngui:label="Deviation">
70
+ <data type="float" rngui:label="Minutes"/>
71
+ </element>
72
+ <element name="behaviour" rngui:label="Behaviour">
73
+ <choice>
74
+ <value>Immediately</value>
75
+ <value>Wait until next</value>
76
+ <value>Use grace period value</value>
77
+ </choice>
78
+ </element>
79
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
80
+ <data type="float" rngui:label="Minutes"/>
81
+ </element>
82
+ <element name="text" rngui:label="Explanation">
83
+ <data type="string" rngui:label="Patterns"/>
84
+ </element>
85
+ </element>
86
+ </zeroOrMore>
87
+ </element>
88
+ </element>
28
89
  <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data returned from the endpoint implementing this task as well as arbitray external data streams 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.">
29
90
 
30
91
  <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed">
@@ -127,101 +188,43 @@
127
188
  <data type="string" rngui:label="url to report snippet"/>
128
189
  </element>
129
190
  </element>
130
- </element>
131
- <element name="code" rngui:header="Output Handling">
132
- <element name="prepare" rngui:header="Prepare" rngui:label="Code" rngui:fold="closed_conditional">
133
- <text rngui:label="Script that is executed, before a service call"/>
134
- </element>
135
- <element name="finalize" rngui:header="Finalize" rngui:label="Code" rngui:fold="closed_conditional">
136
- <attribute name="output" rngui:label="Access Variable" rngui:default="result">
137
- <data type="string" rngui:readonly="true"/>
138
- </attribute>
139
- <text rngui:label="Script that is executed, when a service returns data"/>
140
- </element>
141
- <element name="update" rngui:header="Update" rngui:label="Code" rngui:fold="closed_conditional">
142
- <attribute name="output" rngui:label="Access Variable" rngui:default="result">
143
- <data type="string" rngui:readonly="true"/>
144
- </attribute>
145
- <text rngui:label="Script that is executed, when a service sends intermediate data"/>
146
- </element>
147
- <element name="rescue" rngui:header="Rescue" rngui:label="Code" rngui:fold="closed_conditional">
148
- <attribute name="output" rngui:label="Access Variable" rngui:default="result">
149
- <data type="string" rngui:readonly="true"/>
150
- </attribute>
151
- <text rngui:label="Script that is executed, if a service call fails"/>
152
- </element>
153
- </element>
154
- <element name="annotations" rngui:header="Annotations">
155
- <element name="_timing" rngui:header="Timing" rngui:fold="closed">
156
- <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
157
- <data type="float" rngui:label="[0,1]"/>
158
- </element>
159
- <element name="_timing_avg" rngui:label="Avg in min">
160
- <data type="float" rngui:label="Minutes"/>
161
- </element>
162
- <element name="explanations" rngui:header="Explanations">
163
- <zeroOrMore rngui:label="Add Explanation">
164
- <element name="explanation">
165
- <element name="type" rngui:label="Type">
166
- <choice>
167
- <value>&gt;</value>
168
- <value>&lt;</value>
169
- </choice>
170
- </element>
171
- <element name="deviation" rngui:label="Deviation">
172
- <data type="float" rngui:label="Minutes"/>
173
- </element>
174
- <element name="behaviour" rngui:label="Behaviour">
175
- <choice>
176
- <value>Immediately</value>
177
- <value>Wait until next</value>
178
- <value>Use grace period value</value>
179
- </choice>
180
- </element>
181
- <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
182
- <data type="float" rngui:label="Minutes"/>
183
- </element>
184
- <element name="text" rngui:label="Explanation">
185
- <data type="string" rngui:label="Patterns"/>
186
- </element>
187
- </element>
188
- </zeroOrMore>
189
- </element>
190
- </element>
191
191
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
192
192
  <element name="_notes_general" rngui:label="General">
193
193
  <text rngui:wrap="true" rngui:label="Notes"/>
194
194
  </element>
195
195
  </element>
196
196
  </element>
197
- <element name="input" rngui:header="Input Arguments Documentation" rngui:fold="closed">
198
- <zeroOrMore rngui:label="Create Argument">
199
- <element name="item" rngui:label="Description">
200
- <attribute name="label" rngui:label="Name">
201
- <data type="string"/>
202
- </attribute>
203
- <text rngui:wrap="true" rngui:label="What does it do?"/>
204
- </element>
205
- </zeroOrMore>
206
- </element>
207
- <element name="output" rngui:header="Output Elements Documentation" rngui:fold="closed">
208
- <zeroOrMore rngui:label="Create Element">
209
- <element name="item" rngui:label="Description">
210
- <attribute name="label" rngui:label="Name">
211
- <data type="string"/>
212
- </attribute>
213
- <text rngui:wrap="true" rngui:label="What does it do?"/>
197
+
198
+ <element name="input" rngui:header="Documentation">
199
+ <element name="input" rngui:header="Input Arguments" rngui:fold="closed">
200
+ <zeroOrMore rngui:label="Create Argument">
201
+ <element name="item" rngui:label="Description">
202
+ <attribute name="label" rngui:label="Name">
203
+ <data type="string"/>
204
+ </attribute>
205
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
206
+ </element>
207
+ </zeroOrMore>
208
+ </element>
209
+ <element name="output" rngui:header="Output Elements" rngui:fold="closed">
210
+ <zeroOrMore rngui:label="Create Element">
211
+ <element name="item" rngui:label="Description">
212
+ <attribute name="label" rngui:label="Name">
213
+ <data type="string"/>
214
+ </attribute>
215
+ <text rngui:wrap="true" rngui:label="What does it do?"/>
216
+ </element>
217
+ </zeroOrMore>
218
+ </element>
219
+ <element name="implementation" rngui:header="Implementation" rngui:fold="closed">
220
+ <element name="description" rngui:label="Description">
221
+ <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
214
222
  </element>
215
- </zeroOrMore>
216
- </element>
217
- <element name="implementation" rngui:header="Implementation Documentation" rngui:fold="closed">
218
- <element name="description" rngui:label="Description">
219
- <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
220
223
  </element>
221
- </element>
222
- <element name="code" rngui:header="Output Handling Documentation" rngui:fold="closed">
223
- <element name="description" rngui:label="Description">
224
- <text rngui:wrap="true" rngui:label="Which output elements are important? How to transform and save them?"/>
224
+ <element name="code" rngui:header="Output Handling" rngui:fold="closed">
225
+ <element name="description" rngui:label="Description">
226
+ <text rngui:wrap="true" rngui:label="Which output elements are important? How to transform and save them?"/>
227
+ </element>
225
228
  </element>
226
229
  </element>
227
230
  </element>
@@ -1,8 +1,2 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="parallel_branch" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="pass" rngui:label="Pass to branch">
3
- <data type="string" rngui:label="Data element passed to the local scope, thus not affected by global changes ..."/>
4
- </attribute>
5
- <attribute name="local" rngui:label="Local scope">
6
- <data type="string" rngui:label="Name of the passed data element in the local scope ..."/>
7
- </attribute>
8
- </element>
2
+ </element>
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.17"
3
+ s.version = "2.1.22"
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.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
@@ -18,6 +18,8 @@ require 'json'
18
18
  require 'erb'
19
19
  require 'yaml'
20
20
 
21
+ Encoding.default_external = 'UTF-8'
22
+
21
23
  module CPEE
22
24
  module Properties
23
25
 
@@ -1,3 +1,4 @@
1
+ <%# coding: UTF-8 %>
1
2
  class Instance < WEEL
2
3
  connectionwrapper ConnectionWrapper
3
4
 
@@ -13,6 +13,7 @@
13
13
  # <http://www.gnu.org/licenses/>.
14
14
 
15
15
  require 'charlock_holmes'
16
+ require 'mimemagic'
16
17
  require 'base64'
17
18
 
18
19
  class ConnectionWrapper < WEEL::ConnectionWrapperBase
@@ -199,7 +200,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
199
200
  @controller.notify("status/change", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :id => status.id, :message => status.message)
200
201
  end
201
202
  unless changed_dataelements.nil? || changed_dataelements.empty?
202
- de = dataelements.slice(*changed_dataelements).transform_values { |v| detect_encoding(v) == 'UTF-8' ? v : convert_to_base64(v) }
203
+ de = dataelements.slice(*changed_dataelements).transform_values { |v| enc = detect_encoding(v); (enc == 'OTHER' ? v.inspect : (v.encode('UTF-8',enc) rescue convert_to_base64(v))) }
203
204
  @controller.notify("dataelements/change", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :changed => changed_dataelements, :values => de)
204
205
  end
205
206
  unless changed_endpoints.nil? || changed_endpoints.empty?
@@ -244,11 +245,26 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
244
245
  end
245
246
 
246
247
  def detect_encoding(text)
247
- CharlockHolmes::EncodingDetector.detect(text)[:encoding] || 'ISO-8859-1'
248
+ if text.is_a? String
249
+ if text.valid_encoding? && text.encoding.name == 'UTF-8'
250
+ 'UTF-8'
251
+ else
252
+ res = CharlockHolmes::EncodingDetector.detect(text)
253
+ if res.is_a?(Hash) && res[:type] == :text && res[:ruby_encoding] != "binary"
254
+ res[:encoding]
255
+ elsif res.is_a?(Hash) && res[:type] == :binary
256
+ 'BINARY'
257
+ else
258
+ 'ISO-8859-1'
259
+ end
260
+ end
261
+ else
262
+ 'OTHER'
263
+ end
248
264
  end
249
265
 
250
266
  def convert_to_base64(text)
251
- 'data:application/octet-stream;base64,' + Base64::urlsafe_encode64(text)
267
+ ('data:' + MimeMagic.by_magic(text).type + ';base64,' + Base64::encode64(text)) rescue ('data:application/octet-stream;base64,' + Base64::encode64(text))
252
268
  end
253
269
 
254
270
  def structurize_result(result)
@@ -257,19 +273,28 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
257
273
  { 'name' => r.name, 'data' => r.value }
258
274
  elsif r.is_a? Riddl::Parameter::Complex
259
275
  res = if r.mimetype == 'application/json'
260
- JSON::parse(r.value.read) rescue nil
276
+ ttt = JSON::parse(r.value.read) rescue nil
277
+ if ttt.nil?
278
+ ''
279
+ else
280
+ enc = detect_encoding(ttt)
281
+ enc == 'OTHER' ? ttt.inspect : (ttt.encode('UTF-8',enc) rescue convert_to_base64(ttt))
282
+ end
261
283
  elsif r.mimetype == 'text/plain' || r.mimetype == 'text/html'
262
284
  ttt = r.value.read
263
285
  ttt = ttt.to_f if ttt == ttt.to_f.to_s
264
286
  ttt = ttt.to_i if ttt == ttt.to_i.to_s
265
- ttt
287
+ enc = detect_encoding(ttt)
288
+ enc == 'OTHER' ? ttt.inspect : (ttt.encode('UTF-8',enc) rescue convert_to_base64(ttt))
266
289
  else
267
- r.value.read
290
+ convert_to_base64(r.value.read)
291
+ r.value.rewind
268
292
  end
293
+
269
294
  tmp = {
270
295
  'name' => r.name == '' ? 'result' : r.name,
271
296
  'mimetype' => r.mimetype,
272
- 'data' => (detect_encoding(res) == 'UTF-8' ? res : convert_to_base64(res))
297
+ 'data' => res.to_s
273
298
  }
274
299
  r.value.rewind
275
300
  tmp
data/tools/cpee CHANGED
@@ -116,13 +116,20 @@ elsif command == 'convert'
116
116
  doc.root.prepend('x:executionhandler','ruby')
117
117
  end
118
118
  end rescue nil
119
+ doc.find('//d:parallel_branch/@pass').delete_all!
120
+ doc.find('//d:parallel_branch/@local').delete_all!
121
+ doc.find('//d:call').each do |c|
122
+ c.find('d:annotations').first.add c.find('d:parameters/d:_context_data_analysis')
123
+ c.find('d:annotations').first.add c.find('d:parameters/d:_report')
124
+ if c.find('d:documentation').empty?
125
+ node = c.add('d:documentation')
126
+ node.add c.find('d:input')
127
+ node.add c.find('d:output')
128
+ node.add c.find('d:implementation')
129
+ node.add c.find('d:code[d:description]')
130
+ end
131
+ end
119
132
  doc.find('//x:handlerwrapper').delete_all!
120
- doc.find('//x:start_url').each do |e|
121
- e.text = 'https://cpee.org/flow/start/url/'
122
- end rescue nil
123
- doc.find('//x:start_git').each do |e|
124
- e.text = 'https://cpee.org/flow/start/git/'
125
- end rescue nil
126
133
  doc.find('//d:finalize | //d:update | //d:prepare | //d:rescue').each do |e|
127
134
  if e.parent.qname.name != 'code'
128
135
  n = e.parent
data/tools/server/cpee CHANGED
@@ -4,7 +4,7 @@ require 'cpee/implementation'
4
4
 
5
5
  Riddl::Server.new(CPEE::SERVER, :host => 'localhost', :port => 8298) do |opts|
6
6
  opts[:instances] = File.join(__dir__,'instances')
7
- opts[:executionhandlers = File.join(__dir__,'executionhandlers')
7
+ opts[:executionhandlers] = File.join(__dir__,'executionhandlers')
8
8
  opts[:notifications_init] = File.join(__dir__,'resources','notifications')
9
9
  opts[:properties_init] = File.join(__dir__,'resources','properties.init')
10
10
 
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.17
4
+ version: 2.1.22
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: 2021-08-02 00:00:00.000000000 Z
13
+ date: 2021-11-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riddl
@@ -675,7 +675,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
675
675
  - !ruby/object:Gem::Version
676
676
  version: '0'
677
677
  requirements: []
678
- rubygems_version: 3.1.6
678
+ rubygems_version: 3.2.22
679
679
  signing_key:
680
680
  specification_version: 4
681
681
  summary: Preliminary release of cloud process execution engine (cpee.org). If you