cpee 1.3.228 → 1.3.230
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/cockpit/css/wfadaptor.css +11 -0
- data/cockpit/graph.html +2 -1
- data/cockpit/index.html +1 -1
- data/cockpit/js/instance.js +50 -56
- data/cockpit/js/ui.js +2 -0
- data/cockpit/js/wfadaptor.js +21 -9
- data/cockpit/themes/compact/theme.js +12 -71
- data/cockpit/themes/default/rngs/choose.rng +4 -0
- data/cockpit/themes/default/rngs/parallel.rng +8 -0
- data/cockpit/themes/default/rngs/stop.rng +5 -0
- data/cockpit/themes/default/rngs/terminate.rng +1 -0
- data/cockpit/themes/default/symbols/stop.svg +5 -0
- data/cockpit/themes/default/symbols/terminate.svg +4 -0
- data/cockpit/themes/default/theme.js +104 -3
- data/cpee.gemspec +1 -1
- data/lib/cpee/instantiation.rb +116 -56
- data/lib/instantiation.xml +55 -15
- data/log/log.xml +1 -15
- data/log/template.xes_xml +23 -0
- data/log/template.xes_yaml +26 -0
- data/log/{server.rb → xes_xml.rb} +11 -42
- data/log/xes_yaml.rb +111 -0
- data/server/handlerwrappers/default.rb +19 -10
- data/server/resources/properties.schema.active +18 -17
- data/server/resources/properties.schema.finished +18 -17
- data/server/resources/properties.schema.inactive +18 -17
- data/server/resources/transformation_dslx.xsl +29 -5
- data/server/server.rb +1 -1
- data/tools/instantiation/instantiation +1 -1
- data/tools/server/server.rb +1 -1
- metadata +10 -19
- data/cockpit/themes/default/rngs/callmanipulateworkqueue.rng +0 -122
- data/cockpit/themes/default/rngs/callworkqueue.rng +0 -107
- data/cockpit/themes/default/symbols/callcorrelationreceive.svg +0 -6
- data/cockpit/themes/default/symbols/callcorrelationsend.svg +0 -6
- data/cockpit/themes/default/symbols/callinstantiation.svg +0 -3
- data/cockpit/themes/default/symbols/callmanipulateworklist.svg +0 -6
- data/cockpit/themes/default/symbols/callmanipulateworkqueue.svg +0 -6
- data/cockpit/themes/default/symbols/callworklist.svg +0 -4
- data/cockpit/themes/default/symbols/callworkqueue.svg +0 -4
- data/log/logoverlay.xml +0 -10
- data/log/template.xes +0 -6
- data/log/yaml/log.xml +0 -27
- data/log/yaml/logoverlay.xml +0 -10
- data/log/yaml/server.rb +0 -128
- data/log/yaml/topics.xml +0 -22
- data/log/yaml/yaml.rb +0 -19
data/log/log.xml
CHANGED
|
@@ -2,25 +2,11 @@
|
|
|
2
2
|
<interface name="events">
|
|
3
3
|
<xi:include href="http://www.riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml"/>
|
|
4
4
|
</interface>
|
|
5
|
-
<interface name="cpee" location="http://cpee.org:9298">
|
|
6
|
-
<xi:include href="http://cpee.org:9298/?riddl-description"/>
|
|
7
|
-
</interface>
|
|
8
|
-
<interface name="logoverlay">
|
|
9
|
-
<xi:include href="logoverlay.xml"/>
|
|
10
|
-
</interface>
|
|
11
5
|
|
|
12
6
|
<facade>
|
|
13
|
-
<tile>
|
|
14
|
-
<layer name="cpee"/>
|
|
15
|
-
</tile>
|
|
16
7
|
<tile>
|
|
17
8
|
<layer name="events">
|
|
18
|
-
<apply-to
|
|
19
|
-
</layer>
|
|
20
|
-
</tile>
|
|
21
|
-
<tile>
|
|
22
|
-
<layer name="logoverlay">
|
|
23
|
-
<apply-to>/{}/log</apply-to>
|
|
9
|
+
<apply-to>/</apply-to>
|
|
24
10
|
</layer>
|
|
25
11
|
</tile>
|
|
26
12
|
</facade>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<log xmlns="http://www.xes-standard.org/" xes.version="2.0" xes.features="nested-attributes">
|
|
2
|
+
<extension name="Time" prefix="time" uri="http://www.xes-standard.org/time.xesext"/>
|
|
3
|
+
<extension name="Concept" prefix="concept" uri="http://www.xes-standard.org/concept.xesext"/>
|
|
4
|
+
<extension name="Organizational" prefix="org" uri="http://www.xes-standard.org/org.xesext"/>
|
|
5
|
+
<extension name="Lifecycle" prefix="lifecycle" uri="http://www.xes-standard.org/lifecycle.xesext"/>
|
|
6
|
+
<global scope="trace">
|
|
7
|
+
<string key="concept:name" value="__INVALID__"/>
|
|
8
|
+
</global>
|
|
9
|
+
<global scope="event">
|
|
10
|
+
<string key="concept:name" value="__INVALID__"/>
|
|
11
|
+
<string key="concept:endpoint" value="__ENDPOINT__"/>
|
|
12
|
+
<string key="id:id" value="__ID__"/>
|
|
13
|
+
<string key="lifecycle:transition" value="complete" />
|
|
14
|
+
<date key="time:timestamp" value="1990-02-17T09:45:00.000+01:00"/>
|
|
15
|
+
</global>
|
|
16
|
+
<classifier name="Data" keys="data_send data_received"/>
|
|
17
|
+
<classifier name="Data_Received" keys="data_received"/>
|
|
18
|
+
<classifier name="Name" keys="concept:name"/>
|
|
19
|
+
<classifier name="Endpoint" keys="concept:endpoint"/>
|
|
20
|
+
<classifier name="ID" keys="id:id"/>
|
|
21
|
+
<classifier name="Lifecycle" keys="lifecycle:transition"/>
|
|
22
|
+
<trace/>
|
|
23
|
+
</log>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
log:
|
|
3
|
+
extension:
|
|
4
|
+
time: http://www.xes-standard.org/time.xesext
|
|
5
|
+
concept: http://www.xes-standard.org/concept.xesext
|
|
6
|
+
organisational: http://www.xes-standard.org/org.xesext
|
|
7
|
+
lifecylce: http://www.xes-standard.org/lifecycle.xesext
|
|
8
|
+
cpee: http://cpee.org/cpee.xesext
|
|
9
|
+
global:
|
|
10
|
+
trace:
|
|
11
|
+
concept:name: __INVALID__
|
|
12
|
+
cpee:name: __INVALID__
|
|
13
|
+
event:
|
|
14
|
+
concept:name: __INVALID__
|
|
15
|
+
concept:endpoint: ''
|
|
16
|
+
id:id: ''
|
|
17
|
+
lifecycle:transition: complete
|
|
18
|
+
cpee:lifecycle:transition: activity/call
|
|
19
|
+
time:timestamp: ''
|
|
20
|
+
classifier:
|
|
21
|
+
Data: data_send data_received data_changed data_values
|
|
22
|
+
Data_Received: data_receiver
|
|
23
|
+
Data_Send: data_send
|
|
24
|
+
Data_Changed: data_changer
|
|
25
|
+
Data_Values: data_values
|
|
26
|
+
trace: {}
|
|
@@ -12,33 +12,7 @@ require 'riddl/utils/turtle'
|
|
|
12
12
|
require 'time'
|
|
13
13
|
|
|
14
14
|
class Logging < Riddl::Implementation #{{{
|
|
15
|
-
LOGTEMPLATE = <<-END
|
|
16
|
-
<log xmlns="http://www.xes-standard.org/" xes.version="2.0" xes.features="nested-attributes">
|
|
17
|
-
<extension name="Time" prefix="time" uri="http://www.xes-standard.org/time.xesext"/>
|
|
18
|
-
<extension name="Concept" prefix="concept" uri="http://www.xes-standard.org/concept.xesext"/>
|
|
19
|
-
<extension name="Organizational" prefix="org" uri="http://www.xes-standard.org/org.xesext"/>
|
|
20
|
-
<extension name="Lifecycle" prefix="lifecycle" uri="http://www.xes-standard.org/lifecycle.xesext"/>
|
|
21
|
-
<global scope="trace">
|
|
22
|
-
<string key="concept:name" value="__INVALID__"/>
|
|
23
|
-
</global>
|
|
24
|
-
<global scope="event">
|
|
25
|
-
<string key="concept:name" value="__INVALID__"/>
|
|
26
|
-
<string key="concept:endpoint" value="__ENDPOINT__"/>
|
|
27
|
-
<string key="id:id" value="__ID__"/>
|
|
28
|
-
<string key="lifecycle:transition" value="complete" />
|
|
29
|
-
<date key="time:timestamp" value="1990-02-17T09:45:00.000+01:00"/>
|
|
30
|
-
</global>
|
|
31
|
-
<classifier name="Data" keys="data_send data_received"/>
|
|
32
|
-
<classifier name="Data_Received" keys="data_received"/>
|
|
33
|
-
<classifier name="Name" keys="concept:name"/>
|
|
34
|
-
<classifier name="Endpoint" keys="concept:endpoint"/>
|
|
35
|
-
<classifier name="ID" keys="id:id"/>
|
|
36
|
-
<classifier name="Lifecycle" keys="lifecycle:transition"/>
|
|
37
|
-
<trace/>
|
|
38
|
-
</log>
|
|
39
|
-
END
|
|
40
15
|
def doc(event_name,log_dir,instancenr,notification)
|
|
41
|
-
start_x = Time.now
|
|
42
16
|
uuid = notification['instance_uuid']
|
|
43
17
|
activity = notification["activity"]
|
|
44
18
|
parameters = notification['parameters']
|
|
@@ -75,7 +49,7 @@ class Logging < Riddl::Implementation #{{{
|
|
|
75
49
|
receiving.each do |e|
|
|
76
50
|
e.each do |k,v|
|
|
77
51
|
case v['mimetype']
|
|
78
|
-
when /\/xml$/
|
|
52
|
+
when /\/xml$/
|
|
79
53
|
list = event.add 'list', :key => "data_received"
|
|
80
54
|
node = list.add 'string', :key => k
|
|
81
55
|
node.add XML::Smart.string(v['content']).root
|
|
@@ -84,13 +58,13 @@ class Logging < Riddl::Implementation #{{{
|
|
|
84
58
|
when /\/html$/
|
|
85
59
|
list = event.add 'list', :key => "data_received"
|
|
86
60
|
list.add 'string', :key => k, :value => v['content']
|
|
87
|
-
else
|
|
61
|
+
else
|
|
88
62
|
list = event.add 'list', :key => "data_received"
|
|
89
63
|
list.add 'string', :key => k, :value => v
|
|
90
|
-
end
|
|
64
|
+
end
|
|
91
65
|
end
|
|
92
66
|
end
|
|
93
|
-
else
|
|
67
|
+
else
|
|
94
68
|
pp receiving
|
|
95
69
|
end
|
|
96
70
|
end
|
|
@@ -102,11 +76,8 @@ class Logging < Riddl::Implementation #{{{
|
|
|
102
76
|
puts e.backtrace
|
|
103
77
|
end
|
|
104
78
|
end
|
|
105
|
-
end_x = Time.now
|
|
106
|
-
x = end_x - start_x
|
|
107
|
-
File.open(log_dir+'/'+uuid+'/time.file',"a+"){ |f| f<< x << "\n" }
|
|
108
79
|
end
|
|
109
|
-
|
|
80
|
+
|
|
110
81
|
def rec_unjson(value,list,key)
|
|
111
82
|
case value
|
|
112
83
|
when Array then
|
|
@@ -127,7 +98,7 @@ class Logging < Riddl::Implementation #{{{
|
|
|
127
98
|
def response
|
|
128
99
|
topic = @p[1].value
|
|
129
100
|
event_name = @p[2].value
|
|
130
|
-
log_dir =
|
|
101
|
+
log_dir = @a[0]
|
|
131
102
|
instancenr = @h['CPEE_INSTANCE'].split('/').last
|
|
132
103
|
notification = JSON.parse(@p[3].value)
|
|
133
104
|
doc(event_name,log_dir,instancenr,notification)
|
|
@@ -135,18 +106,16 @@ class Logging < Riddl::Implementation #{{{
|
|
|
135
106
|
end #}}}
|
|
136
107
|
|
|
137
108
|
|
|
138
|
-
Riddl::Server.new(
|
|
109
|
+
Riddl::Server.new(File.join(__dir__,'/log.xml'), :host => 'localhost', :port => 9299) do #{{{
|
|
139
110
|
accessible_description true
|
|
140
111
|
cross_site_xhr true
|
|
141
|
-
|
|
112
|
+
@riddllog_dir = File.join(__dir__,logs)"
|
|
142
113
|
|
|
143
|
-
interface 'events' do
|
|
144
|
-
|
|
145
|
-
#run CB if post 'vote'
|
|
114
|
+
interface 'events' do
|
|
115
|
+
run Logging if post 'event'
|
|
146
116
|
end
|
|
147
117
|
interface 'logoverlay' do |r|
|
|
148
|
-
run Riddl::Utils::FileServe,
|
|
118
|
+
run Riddl::Utils::FileServe, log_dir + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes","text/xml" if get
|
|
149
119
|
end
|
|
150
120
|
|
|
151
|
-
|
|
152
121
|
end.loop! #}}}
|
data/log/xes_yaml.rb
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
require 'pp'
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'yaml'
|
|
5
|
+
require 'rubygems'
|
|
6
|
+
require 'riddl/server'
|
|
7
|
+
require 'riddl/utils/fileserve'
|
|
8
|
+
require 'time'
|
|
9
|
+
|
|
10
|
+
class Logging < Riddl::Implementation #{{{
|
|
11
|
+
def doc(topic,event_name,log_dir,template,instancenr,notification)
|
|
12
|
+
uuid = notification['instance_uuid']
|
|
13
|
+
return unless uuid
|
|
14
|
+
|
|
15
|
+
activity = notification["activity"]
|
|
16
|
+
parameters = notification['parameters']
|
|
17
|
+
receiving = notification['received']
|
|
18
|
+
|
|
19
|
+
log = YAML::load(File.read(template))
|
|
20
|
+
log["log"]["trace"]["concept:name"] ||= instancenr
|
|
21
|
+
log["log"]["trace"]["cpee:name"] ||= notification['instance_name'] if notification["instance_name"]
|
|
22
|
+
log["log"]["trace"]["cpee:uuid"] ||= notification['instance_uuid'] if notification["instance_uuid"]
|
|
23
|
+
File.open(File.join(log_dir,uuid+'.xes.yaml'),'w'){|f| f.puts log.to_yaml} unless File.exists? File.join(log_dir,uuid+'.xes.yaml')
|
|
24
|
+
event = {}
|
|
25
|
+
event["trace:id"] = instancenr
|
|
26
|
+
event["concept:name"] = notification["label"] if notification["label"]
|
|
27
|
+
if notification["endpoint"]
|
|
28
|
+
event["concept:endpoint"] = notification["endpoint"]
|
|
29
|
+
else
|
|
30
|
+
event["concept:name"] = 'Script Task'
|
|
31
|
+
end
|
|
32
|
+
event["id:id"] = activity
|
|
33
|
+
case event_name
|
|
34
|
+
when 'receiving', 'change'
|
|
35
|
+
event["lifecycle:transition"] = "unknown"
|
|
36
|
+
when 'done'
|
|
37
|
+
event["lifecycle:transition"] = "complete"
|
|
38
|
+
else
|
|
39
|
+
event["lifecycle:transition"] = "start"
|
|
40
|
+
end
|
|
41
|
+
event["cpee:lifecycle:transition"] = "#{topic}/#{event_name}"
|
|
42
|
+
data_send = ((parameters["arguments"].nil? ? [] : parameters["arguments"]) rescue [])
|
|
43
|
+
event["list"] = {"data_send" => data_send} unless data_send.empty?
|
|
44
|
+
if notification['changed']&.any?
|
|
45
|
+
if event.has_key? "list"
|
|
46
|
+
event["list"]["data_changed"] ||= notification['changed']
|
|
47
|
+
else
|
|
48
|
+
event["list"] = {"data_changer" => notification['changed']}
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
if notification['values']&.any?
|
|
52
|
+
if event.has_key? "list"
|
|
53
|
+
event["list"]["data_values"] ||= notification['values']
|
|
54
|
+
else
|
|
55
|
+
event["list"] = {"data_values" => notification['values']}
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
if receiving&.any?
|
|
59
|
+
if event.has_key? "list"
|
|
60
|
+
event["list"]["data_received"] ||= receiving
|
|
61
|
+
else
|
|
62
|
+
event["list"] = {"data_receiver" => receiving}
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
event["time:timestamp"]= Time.now.iso8601
|
|
66
|
+
File.open(File.join(log_dir,uuid+'.xes.yaml'),'a') do |f|
|
|
67
|
+
f << {'event' => event}.to_yaml
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def rec_unjson(value,list,key)
|
|
72
|
+
case value
|
|
73
|
+
when Array then
|
|
74
|
+
li = list.add 'list', :key => key
|
|
75
|
+
value.each_with_index do |v,k|
|
|
76
|
+
rec_unjson(v,li,k)
|
|
77
|
+
end
|
|
78
|
+
when Hash then
|
|
79
|
+
li = list.add 'list', :key => key
|
|
80
|
+
value.each do |k,v|
|
|
81
|
+
rec_unjson(v,li,k)
|
|
82
|
+
end
|
|
83
|
+
else
|
|
84
|
+
list.add 'string', :key => key, :value => value
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def response
|
|
89
|
+
topic = @p[1].value
|
|
90
|
+
event_name = @p[2].value
|
|
91
|
+
log_dir = @a[0]
|
|
92
|
+
template = @a[1]
|
|
93
|
+
instancenr = @h['CPEE_INSTANCE'].split('/').last
|
|
94
|
+
notification = JSON.parse(@p[3].value)
|
|
95
|
+
doc topic, event_name, log_dir, template, instancenr, notification
|
|
96
|
+
end
|
|
97
|
+
end #}}}
|
|
98
|
+
|
|
99
|
+
Riddl::Server.new(File.join(__dir__,'/log.xml'), :host => 'localhost', :port => 9299) do
|
|
100
|
+
accessible_description true
|
|
101
|
+
cross_site_xhr true
|
|
102
|
+
@riddl_opts[:log_dir] ||= File.join(__dir__,'logs')
|
|
103
|
+
@riddl_opts[:template] ||= File.join(__dir__,'template.xes_yaml')
|
|
104
|
+
|
|
105
|
+
interface 'events' do
|
|
106
|
+
run Logging, @riddl_opts[:log_dir], @riddl_opts[:template] if post 'event'
|
|
107
|
+
end
|
|
108
|
+
interface 'logoverlay' do |r|
|
|
109
|
+
run Riddl::Utils::FileServe, log_dir + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes","text/plain" if get
|
|
110
|
+
end
|
|
111
|
+
end.loop!
|
|
@@ -40,10 +40,12 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
|
40
40
|
@handler_position = position
|
|
41
41
|
@handler_passthrough = nil
|
|
42
42
|
@handler_returnValue = nil
|
|
43
|
+
@label = ''
|
|
43
44
|
end # }}}
|
|
44
45
|
|
|
45
46
|
def activity_handle(passthrough, parameters) # {{{
|
|
46
|
-
@
|
|
47
|
+
@label = parameters[:label]
|
|
48
|
+
@controller.notify("activity/calling", :instance => @controller.instance, :instance_uuid => @controller.uuid, :label => @label, :instance_name => @controller.info, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
47
49
|
if passthrough.nil?
|
|
48
50
|
params = []
|
|
49
51
|
callback = Digest::MD5.hexdigest(Kernel::rand().to_s)
|
|
@@ -82,6 +84,9 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
|
82
84
|
@handler_passthrough = passthrough
|
|
83
85
|
end
|
|
84
86
|
end # }}}
|
|
87
|
+
def activity_manipulate_handle(parameters) #{{{
|
|
88
|
+
@label = parameters[:label]
|
|
89
|
+
end #}}}
|
|
85
90
|
|
|
86
91
|
def activity_result_status # {{{
|
|
87
92
|
WEEL::Status.new(1, "everything okay")
|
|
@@ -105,28 +110,28 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
|
105
110
|
end # }}}
|
|
106
111
|
|
|
107
112
|
def inform_activity_done # {{{
|
|
108
|
-
@controller.notify("activity/done", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
113
|
+
@controller.notify("activity/done", :endpoint => @handler_endpoint, :instance => @controller.instance, :label => @label, :instance_name => @controller.info, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
109
114
|
end # }}}
|
|
110
115
|
def inform_activity_manipulate # {{{
|
|
111
|
-
@controller.notify("activity/manipulating", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
116
|
+
@controller.notify("activity/manipulating", :endpoint => @handler_endpoint, :instance => @controller.instance, :label => @label, :instance_name => @controller.info, :instance_uuid => @controller.uuid, :activity => @handler_position, :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
112
117
|
end # }}}
|
|
113
118
|
def inform_activity_failed(err) # {{{
|
|
114
119
|
puts err.message
|
|
115
120
|
puts err.backtrace
|
|
116
|
-
@controller.notify("activity/failed", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :message => err.message, :line => err.backtrace[0].match(/(.*?):(\d+):/)[2], :where => err.backtrace[0].match(/(.*?):(\d+):/)[1], :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
121
|
+
@controller.notify("activity/failed", :endpoint => @handler_endpoint, :label => @label, :instance_name => @controller.info, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :message => err.message, :line => err.backtrace[0].match(/(.*?):(\d+):/)[2], :where => err.backtrace[0].match(/(.*?):(\d+):/)[1], :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
117
122
|
end # }}}
|
|
118
123
|
def inform_manipulate_change(status,changed_dataelements,changed_endpoints,dataelements,endpoints) # {{{
|
|
119
124
|
unless status.nil?
|
|
120
125
|
@controller.serialize_status!
|
|
121
|
-
@controller.notify("status/change", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :id => status.id, :message => status.message)
|
|
126
|
+
@controller.notify("status/change", :endpoint => @handler_endpoint, :label => @label, :instance_name => @controller.info, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :id => status.id, :message => status.message)
|
|
122
127
|
end
|
|
123
128
|
unless changed_dataelements.nil?
|
|
124
129
|
@controller.serialize_dataelements!
|
|
125
|
-
@controller.notify("dataelements/change", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :changed => changed_dataelements)
|
|
130
|
+
@controller.notify("dataelements/change", :endpoint => @handler_endpoint, :label => @label, :instance_name => @controller.info, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :changed => changed_dataelements, :values => dataelements)
|
|
126
131
|
end
|
|
127
132
|
unless changed_endpoints.nil?
|
|
128
133
|
@controller.serialize_endpoints!
|
|
129
|
-
@controller.notify("endpoints/change", :endpoint => @handler_endpoint, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :changed => changed_endpoints)
|
|
134
|
+
@controller.notify("endpoints/change", :endpoint => @handler_endpoint, :label => @label, :instance_name => @controller.info, :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :changed => changed_endpoints, :values => endpoints)
|
|
130
135
|
end
|
|
131
136
|
end # }}}
|
|
132
137
|
|
|
@@ -148,8 +153,12 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
|
148
153
|
result = XML::Smart::string(result[0].value.read) rescue nil
|
|
149
154
|
elsif result[0].mimetype == 'text/plain'
|
|
150
155
|
result = result[0].value.read
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
if result.start_with?("<?xml version=")
|
|
157
|
+
result = XML::Smart::string(result)
|
|
158
|
+
else
|
|
159
|
+
result = result.to_f if result == result.to_f.to_s
|
|
160
|
+
result = result.to_i if result == result.to_i.to_s
|
|
161
|
+
end
|
|
153
162
|
elsif result[0].mimetype == 'text/html'
|
|
154
163
|
result = result[0].value.read
|
|
155
164
|
result = result.to_f if result == result.to_f.to_s
|
|
@@ -180,7 +189,7 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
|
180
189
|
end
|
|
181
190
|
|
|
182
191
|
def callback(result=nil,options={})
|
|
183
|
-
@controller.notify("activity/receiving", :instance => @controller.instance, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :received => structurize_result(result), :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
192
|
+
@controller.notify("activity/receiving", :instance => @controller.instance, :label => @label, :instance_name => @controller.info, :instance_uuid => @controller.uuid, :activity => @handler_position, :endpoint => @handler_endpoint, :received => structurize_result(result), :time=>Time.now.strftime("%Y-%m-%dT%H:%M:%S.%L%:z"))
|
|
184
193
|
result = simplify_result(result)
|
|
185
194
|
if options['CPEE_UPDATE']
|
|
186
195
|
@handler_returnValue = result
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
<attributes type="complex" modifiable="false" mutable="false">
|
|
19
19
|
<zeroOrMore>
|
|
20
20
|
<element><anyName/><text/></element>
|
|
21
|
-
</zeroOrMore>
|
|
22
|
-
</attributes>
|
|
21
|
+
</zeroOrMore>
|
|
22
|
+
</attributes>
|
|
23
23
|
<handlerwrapper type="simple" modifiable="false" mutable="false">
|
|
24
24
|
<data type="string">
|
|
25
25
|
<param name="pattern">[A-Z][a-zA-Z]*</param>
|
|
26
|
-
</data>
|
|
26
|
+
</data>
|
|
27
27
|
</handlerwrapper>
|
|
28
28
|
<dsl type="simple" modifiable="false" mutable="false">
|
|
29
29
|
<text/>
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<value>xslt</value>
|
|
40
40
|
<value>clean</value>
|
|
41
41
|
<value>none</value>
|
|
42
|
-
</choice>
|
|
42
|
+
</choice>
|
|
43
43
|
</attribute>
|
|
44
44
|
<data type="anyURI"/>
|
|
45
45
|
</element>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<value>xslt</value>
|
|
51
51
|
<value>clean</value>
|
|
52
52
|
<value>none</value>
|
|
53
|
-
</choice>
|
|
53
|
+
</choice>
|
|
54
54
|
</attribute>
|
|
55
55
|
<data type="anyURI"/>
|
|
56
56
|
</element>
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<value>xslt</value>
|
|
62
62
|
<value>clean</value>
|
|
63
63
|
<value>none</value>
|
|
64
|
-
</choice>
|
|
64
|
+
</choice>
|
|
65
65
|
</attribute>
|
|
66
66
|
<data type="anyURI"/>
|
|
67
67
|
</element>
|
|
@@ -71,9 +71,10 @@
|
|
|
71
71
|
<running putable="true"/>
|
|
72
72
|
<ready putable="true"/>
|
|
73
73
|
<simulating putable="true"/>
|
|
74
|
-
</ready>
|
|
74
|
+
</ready>
|
|
75
75
|
<running>
|
|
76
76
|
<stopping putable="true"/>
|
|
77
|
+
<finishing putable="false"/>
|
|
77
78
|
<finished putable="false"/>
|
|
78
79
|
</running>
|
|
79
80
|
<simulating>
|
|
@@ -87,9 +88,9 @@
|
|
|
87
88
|
<stopped putable="true"/>
|
|
88
89
|
<running putable="true"/>
|
|
89
90
|
<simulating putable="true"/>
|
|
90
|
-
</stopped>
|
|
91
|
+
</stopped>
|
|
91
92
|
<finished/>
|
|
92
|
-
</state>
|
|
93
|
+
</state>
|
|
93
94
|
<status type="complex" modifiable="false" mutable="true">
|
|
94
95
|
<optional>
|
|
95
96
|
<element name='id'>
|
|
@@ -98,26 +99,26 @@
|
|
|
98
99
|
<element name='message'>
|
|
99
100
|
<data type="string"/>
|
|
100
101
|
</element>
|
|
101
|
-
</optional>
|
|
102
|
-
</status>
|
|
102
|
+
</optional>
|
|
103
|
+
</status>
|
|
103
104
|
<positions type="complex" modifiable="false" mutable="true">
|
|
104
105
|
<zeroOrMore>
|
|
105
106
|
<element>
|
|
106
107
|
<anyName/>
|
|
107
108
|
<data type="string">
|
|
108
109
|
<param name="pattern">(at|after)(;[A-Za-z0-9]+)?</param>
|
|
109
|
-
</data>
|
|
110
|
+
</data>
|
|
110
111
|
</element>
|
|
111
|
-
</zeroOrMore>
|
|
112
|
-
</positions>
|
|
112
|
+
</zeroOrMore>
|
|
113
|
+
</positions>
|
|
113
114
|
<dataelements type="complex" modifiable="false" mutable="true">
|
|
114
115
|
<zeroOrMore>
|
|
115
116
|
<element><anyName/><text/></element>
|
|
116
|
-
</zeroOrMore>
|
|
117
|
-
</dataelements>
|
|
117
|
+
</zeroOrMore>
|
|
118
|
+
</dataelements>
|
|
118
119
|
<endpoints type="complex" modifiable="false" mutable="true">
|
|
119
120
|
<zeroOrMore>
|
|
120
121
|
<element><anyName/><text/></element>
|
|
121
|
-
</zeroOrMore>
|
|
122
|
+
</zeroOrMore>
|
|
122
123
|
</endpoints>
|
|
123
124
|
</properties>
|