cpee 1.3.228 → 1.3.230
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|