cpee 1.3.228 → 1.3.230

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/wfadaptor.css +11 -0
  3. data/cockpit/graph.html +2 -1
  4. data/cockpit/index.html +1 -1
  5. data/cockpit/js/instance.js +50 -56
  6. data/cockpit/js/ui.js +2 -0
  7. data/cockpit/js/wfadaptor.js +21 -9
  8. data/cockpit/themes/compact/theme.js +12 -71
  9. data/cockpit/themes/default/rngs/choose.rng +4 -0
  10. data/cockpit/themes/default/rngs/parallel.rng +8 -0
  11. data/cockpit/themes/default/rngs/stop.rng +5 -0
  12. data/cockpit/themes/default/rngs/terminate.rng +1 -0
  13. data/cockpit/themes/default/symbols/stop.svg +5 -0
  14. data/cockpit/themes/default/symbols/terminate.svg +4 -0
  15. data/cockpit/themes/default/theme.js +104 -3
  16. data/cpee.gemspec +1 -1
  17. data/lib/cpee/instantiation.rb +116 -56
  18. data/lib/instantiation.xml +55 -15
  19. data/log/log.xml +1 -15
  20. data/log/template.xes_xml +23 -0
  21. data/log/template.xes_yaml +26 -0
  22. data/log/{server.rb → xes_xml.rb} +11 -42
  23. data/log/xes_yaml.rb +111 -0
  24. data/server/handlerwrappers/default.rb +19 -10
  25. data/server/resources/properties.schema.active +18 -17
  26. data/server/resources/properties.schema.finished +18 -17
  27. data/server/resources/properties.schema.inactive +18 -17
  28. data/server/resources/transformation_dslx.xsl +29 -5
  29. data/server/server.rb +1 -1
  30. data/tools/instantiation/instantiation +1 -1
  31. data/tools/server/server.rb +1 -1
  32. metadata +10 -19
  33. data/cockpit/themes/default/rngs/callmanipulateworkqueue.rng +0 -122
  34. data/cockpit/themes/default/rngs/callworkqueue.rng +0 -107
  35. data/cockpit/themes/default/symbols/callcorrelationreceive.svg +0 -6
  36. data/cockpit/themes/default/symbols/callcorrelationsend.svg +0 -6
  37. data/cockpit/themes/default/symbols/callinstantiation.svg +0 -3
  38. data/cockpit/themes/default/symbols/callmanipulateworklist.svg +0 -6
  39. data/cockpit/themes/default/symbols/callmanipulateworkqueue.svg +0 -6
  40. data/cockpit/themes/default/symbols/callworklist.svg +0 -4
  41. data/cockpit/themes/default/symbols/callworkqueue.svg +0 -4
  42. data/log/logoverlay.xml +0 -10
  43. data/log/template.xes +0 -6
  44. data/log/yaml/log.xml +0 -27
  45. data/log/yaml/logoverlay.xml +0 -10
  46. data/log/yaml/server.rb +0 -128
  47. data/log/yaml/topics.xml +0 -22
  48. data/log/yaml/yaml.rb +0 -19
@@ -1,107 +0,0 @@
1
- <element rngui:version="1.2" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
- <data type="string" rngui:readonly="true"/>
4
- </attribute>
5
- <attribute name="endpoint" rngui:label="Endpoint">
6
- <data type="string"/>
7
- </attribute>
8
- <element name='parameters' rngui:header="Parameters">
9
- <element name="label" rngui:label="Label">
10
- <data type="string" rngui:label="Short description of the task"/>
11
- </element>
12
- <element name="method" rngui:label="Method">
13
- <choice>
14
- <value>:post</value>
15
- <value>:get</value>
16
- <value>:put</value>
17
- <value>:delete</value>
18
- </choice>
19
- </element>
20
- <element name="arguments" rngui:header="Arguments">
21
- <element name="nc-program" rngui:label="NC Program">
22
- <data type="string" rngui:label="Unique ID of the NC Program"/>
23
- </element>
24
- <element name="material-name" rngui:label="Material Name">
25
- <data type="string" rngui:label="Name of the raw material"/>
26
- </element>
27
- <element name="material-pic" rngui:label="Material Picture">
28
- <data type="string" rngui:label="Picture of the raw material"/>
29
- </element>
30
- <element name="result-pic" rngui:label="Result Picture">
31
- <data type="string" rngui:label="Picture of the result"/>
32
- </element>
33
- <element name="comment" rngui:label="Comment">
34
- <text rngui:wrap='true' rngui:label='Additional comments for the operator'/>
35
- </element>
36
- <element name="tools" rngui:header="Tools">
37
- <zeroOrMore rngui:label="Add Tool">
38
- <element name="tool">
39
- <element name="place" rngui:label="Position">
40
- <data type="integer" rngui:label="Position in Tool Magazine"/>
41
- </element>
42
- <element name="tool-name" rngui:label="Tool">
43
- <data type="string" rngui:label="Name of Tool"/>
44
- </element>
45
- <element name="tool-holder" rngui:label="Holder">
46
- <data type="string" rngui:label="Name of Tool Holder"/>
47
- </element>
48
- <element name="tool-orientation" rngui:label="Orientation">
49
- <data type="string" rngui:label="Orientation in Tool Holder"/>
50
- </element>
51
- <element name="corrections" rngui:header="Corrections">
52
- <zeroOrMore rngui:label="Add Correction">
53
- <element name="correction">
54
- <attribute name="length-x" rngui:label="Length X">
55
- <data type="float"/>
56
- </attribute>
57
- <attribute name="length-z" rngui:label="Length Y">
58
- <data type="float"/>
59
- </attribute>
60
- <attribute name="radius" rngui:label="Radius">
61
- <data type="float"/>
62
- </attribute>
63
- </element>
64
- </zeroOrMore>
65
- </element>
66
- <element name="attachments" rngui:header="Attachments">
67
- <zeroOrMore rngui:label="Add Attachment">
68
- <element name="attachment" rngui:label="URL">
69
- <attribute name="label" rngui:label="Label">
70
- <data type="string" rngui:label="Label"/>
71
- </attribute>
72
- <data type="string" rngui:label="URL"/>
73
- </element>
74
- </zeroOrMore>
75
- </element>
76
- </element>
77
- </zeroOrMore>
78
- </element>
79
- </element>
80
- </element>
81
- <element name="_timing" rngui:header="Timing">
82
- <element name="_timing_min" rngui:label='Min in m'>
83
- <data type='float' rngui:label='Minutes'/>
84
- </element>
85
- <element name="_timing_max" rngui:label='Max in m'>
86
- <data type='float' rngui:label='Minutes'/>
87
- </element>
88
- <element name="_timing_avg" rngui:label='Avg in m'>
89
- <data type='float' rngui:label='Minutes'/>
90
- </element>
91
- </element>
92
- <element name="_notes" rngui:header="Notes">
93
- <element name="_notes_general" rngui:label='General'>
94
- <text rngui:wrap='true' rngui:label='Notes'/>
95
- </element>
96
- <element name="_attachments">
97
- <zeroOrMore rngui:label="Create Attachment">
98
- <element name='_attachment' rngui:label='Attachment'>
99
- <attribute name="label" rngui:label="Note">
100
- <data type="string"/>
101
- </attribute>
102
- <data type="string" rngui:label="Url"/>
103
- </element>
104
- </zeroOrMore>
105
- </element>
106
- </element>
107
- </element>
@@ -1,6 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <circle cx="15" cy="15" r="11" class="cline hfill rfill stand"/>
4
- <rect x="9" y="11" width="12" height="8" class="black" style="fill: none"/>
5
- <path d="m 9,11 6,4 6,-4" class="black" style="fill: none"/>
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="cline stand"/>
3
- <circle cx="15" cy="15" r="11" class="cline hfill rfill stand"/>
4
- <rect x="9" y="11" width="12" height="8" class="black"/>
5
- <path d="m 9,11 6,3 6,-3" class="white hline" style="fill: none;"/>
6
- </svg>
@@ -1,3 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="cline hfill rfill stand" style="stroke-dasharray: 1, 3;"/>
3
- </svg>
@@ -1,6 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="cline hfill rfill stand"/>
3
- <path transform="translate(-2,-2)" class="normal" style="fill:#000000;" d="m 15,6.5 a 3.9999995,4 0 0 0 -4,4 3.9999995,4 0 0 0 4,4 3.9999995,4 0 0 0 4,-4 3.9999995,4 0 0 0 -4,-4 z m 0,8 -3.5,0 c -1.108,0 -2,0.892 -2,2 l 0,5 c 0,1.108 0.892,2 2,2 l 7,0 c 1.108,0 2,-0.892 2,-2 l 0,-5 c 0,-1.108 -0.892,-2 -2,-2 l -3.5,0 z"/>
4
- <circle cx="28" cy="27" r="9" class="cline hfill rfill stand"/>
5
- <text transform="translate(28,31)" class="small">s</text>
6
- </svg>
@@ -1,6 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="cline hfill rfill stand"/>
3
- <path transform="translate(-2,-2)" class="normal" style="fill:#000000;" d="m 15,6.5 a 3.9999995,4 0 0 0 -4,4 3.9999995,4 0 0 0 4,4 3.9999995,4 0 0 0 4,-4 3.9999995,4 0 0 0 -4,-4 z m 0,8 -3.5,0 c -1.108,0 -2,0.892 -2,2 l 0,5 c 0,1.108 0.892,2 2,2 l 7,0 c 1.108,0 2,-0.892 2,-2 l 0,-5 c 0,-1.108 -0.892,-2 -2,-2 l -3.5,0 z"/>
4
- <circle cx="28" cy="27" r="9" class="cline hfill rfill stand"/>
5
- <text transform="translate(28,31)" class="small">s</text>
6
- </svg>
@@ -1,4 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="cline hfill rfill stand"/>
3
- <path class="normal" style="fill:#000000;" d="m 15,6.5 a 3.9999995,4 0 0 0 -4,4 3.9999995,4 0 0 0 4,4 3.9999995,4 0 0 0 4,-4 3.9999995,4 0 0 0 -4,-4 z m 0,8 -3.5,0 c -1.108,0 -2,0.892 -2,2 l 0,5 c 0,1.108 0.892,2 2,2 l 7,0 c 1.108,0 2,-0.892 2,-2 l 0,-5 c 0,-1.108 -0.892,-2 -2,-2 l -3.5,0 z"/>
4
- </svg>
@@ -1,4 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="cline hfill rfill stand"/>
3
- <path class="normal" style="fill:#000000;" d="m 15,6.5 a 3.9999995,4 0 0 0 -4,4 3.9999995,4 0 0 0 4,4 3.9999995,4 0 0 0 4,-4 3.9999995,4 0 0 0 -4,-4 z m 0,8 -3.5,0 c -1.108,0 -2,0.892 -2,2 l 0,5 c 0,1.108 0.892,2 2,2 l 7,0 c 1.108,0 2,-0.892 2,-2 l 0,-5 c 0,-1.108 -0.892,-2 -2,-2 l -3.5,0 z"/>
4
- </svg>
@@ -1,10 +0,0 @@
1
- <description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
- <message name="logresponse">
3
- <parameter name="file" mimetype="*"/>
4
- </message>
5
-
6
- <resource>
7
- <get in='*' out="logresponse"/>
8
- </resource>
9
-
10
- </description>
@@ -1,6 +0,0 @@
1
- <log xmlns="http://www.xes-standard.org/" xes.version="1.0" xes.features="nested-attributes" openxes.version="1.0RC7">
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
- <trace/>
6
- </log>
@@ -1,27 +0,0 @@
1
- <declaration xmlns="http://riddl.org/ns/declaration/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
- <interface name="events">
3
- <xi:include href="http://www.riddl.org/ns/common-patterns/notifications-consumer/1.0/consumer.xml"/>
4
- </interface>
5
- <interface name="cpee" location="http://localhost:9298">
6
- <xi:include href="http://localhost:9298/?riddl-description"/>
7
- </interface>
8
- <interface name="logoverlay">
9
- <xi:include href="logoverlay.xml"/>
10
- </interface>
11
-
12
- <facade>
13
- <tile>
14
- <layer name="cpee"/>
15
- </tile>
16
- <tile>
17
- <layer name="events">
18
- <apply-to>/log</apply-to>
19
- </layer>
20
- </tile>
21
- <tile>
22
- <layer name="logoverlay">
23
- <apply-to>/{}/log</apply-to>
24
- </layer>
25
- </tile>
26
- </facade>
27
- </declaration>
@@ -1,10 +0,0 @@
1
- <description datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://riddl.org/ns/description/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
2
- <message name="logresponse">
3
- <parameter name="file" mimetype="text/xml"/>
4
- </message>
5
-
6
- <resource>
7
- <get out="logresponse"/>
8
- </resource>
9
-
10
- </description>
@@ -1,128 +0,0 @@
1
- #!/usr/bin/ruby
2
- require 'pp'
3
- require 'json'
4
- require 'yaml'
5
- require 'rubygems'
6
- require 'riddl/server'
7
- require 'riddl/client'
8
- require 'riddl/utils/notifications_producer'
9
- require 'riddl/utils/properties'
10
- require 'riddl/utils/fileserve'
11
- require 'riddl/utils/downloadify'
12
- require 'riddl/utils/turtle'
13
- require 'time'
14
-
15
- class Logging < Riddl::Implementation #{{{
16
- LOGTEMPLATE = {"log" =>
17
- {"extension" =>
18
- { "time" =>"http://www.xes-standard.org/time.xesext",
19
- "concept" => "http://www.xes-standard.org/concept.xesext",
20
- "organisational" => "http://www.xes-standard.org/org.xesext",
21
- "lifecylce" => "http://www.xes-standard.org/lifecycle.xesext"
22
- },
23
- "global" =>
24
- {
25
- "trace" =>{"concept:name" => "__INVALID__"},
26
- "event"=> {
27
- "concept:name"=>"__INVALID__",
28
- "concept:endpoint" => "",
29
- "id:id" => "",
30
- "lifecycle:transition" => "complete",
31
- "time:timestamp" => ""
32
- }
33
- },
34
- "classifier" =>{
35
- "Data" => "data_send data_received",
36
- "Data_Received"=>"data_receiver",
37
- "Data_Send" => "data_send"
38
- },
39
- "trace" => {}
40
- }
41
- }
42
- def doc(event_name,log_dir,instancenr,notification)
43
- x = Time.now
44
- log = LOGTEMPLATE
45
- uuid = notification['instance_uuid']
46
- activity = notification["activity"]
47
- parameters = notification['parameters']
48
- receiving = notification['received']
49
- Dir.mkdir(log_dir+'/'+uuid) unless Dir.exist?(log_dir+'/'+uuid)
50
- time_added=false
51
- log["log"]["trace"]["concept:name"] ||= "Instance #{instancenr}" unless log["log"]["trace"]["concept:name"]
52
- File.open(log_dir+'/'+uuid+'/log.xes','w'){|f| f.puts log.to_yaml} unless File.exists? log_dir+'/'+uuid+'/log.xes'
53
- event = {}
54
- event["trace:id"] = instancenr
55
- if parameters && parameters.has_key?('label')
56
- event["concept:name"] = parameters["label"]
57
- else
58
- event["concept:name"]= log["log"]["trace"]["concept:name"]
59
- end
60
- event["concept:endpoint"] = notification["endpoint"] if notification["endpoint"]
61
- event["id:id"] = activity
62
- unless event_name=='receiving'
63
- event["lifecycle:transition"]= event_name=='done'?"complete":"start"
64
- else
65
- event["lifecycle:transition"]="unknown"
66
- end
67
- data_send = ((parameters["arguments"].nil? ? [] : parameters["arguments"]) rescue [])
68
- event["list"] = {"data_send" => data_send} unless data_send.empty?
69
- if receiving && receiving.any?
70
- if event.has_key? "list"
71
- event["list"]["data_received"] ||= receiving
72
- else
73
- event["list"] = {"data_receiver" => receiving}
74
- end
75
- end
76
- event["time:timestamp"]= Time.now.iso8601 unless time_added
77
- File.open(log_dir+'/'+uuid+'/log.xes',"a") do |f|
78
- f << {'event' => event}.to_yaml
79
- pid, size = `ps ax -o pid,rss | grep -E "^[[:space:]]*#{$$}"`.strip.split.map(&:to_i)
80
- File.open(log_dir+'/'+uuid+'/memory.file',"a+"){ |fl| fl<< size << "\n" }
81
- end
82
- y = Time.now
83
- z = y-x
84
- File.open(log_dir+'/'+uuid+'/time.file',"a+"){ |f| f<< z << "\n" }
85
- end
86
-
87
- def rec_unjson(value,list,key)
88
- case value
89
- when Array then
90
- li = list.add 'list', :key => key
91
- value.each_with_index do |v,k|
92
- rec_unjson(v,li,k)
93
- end
94
- when Hash then
95
- li = list.add 'list', :key => key
96
- value.each do |k,v|
97
- rec_unjson(v,li,k)
98
- end
99
- else
100
- list.add 'string', :key => key, :value => value
101
- end
102
- end
103
-
104
- def response
105
- topic = @p[1].value
106
- event_name = @p[2].value
107
- log_dir = ::File.dirname(__FILE__) + "/../logs_yaml"
108
- instancenr = @h['CPEE_INSTANCE'].split('/').last
109
- notification = JSON.parse(@p[3].value)
110
- doc(event_name,log_dir,instancenr,notification)
111
- end
112
- end #}}}
113
-
114
-
115
- Riddl::Server.new(::File.dirname(__FILE__) + '/log.xml', :host => "coruscant.wst.univie.ac.at", :port => 9300) do #{{{
116
- accessible_description true
117
- cross_site_xhr true
118
- log_dir = "/home/centurio/Projects/cpee/log/logs_yaml"
119
-
120
- interface 'events' do
121
- run Logging if post 'event'
122
- end
123
- interface 'logoverlay' do |r|
124
- p log_dir + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes"
125
- run Riddl::Utils::FileServe, log_dir + r[:h]["RIDDL_DECLARATION_PATH"]+ ".xes","text/xml" if get
126
- end
127
-
128
- end.loop! #}}}
@@ -1,22 +0,0 @@
1
- <!--
2
- This file is part of CPEE.
3
-
4
- CPEE is free software: you can redistribute it and/or modify it under the terms
5
- of the GNU General Public License as published by the Free Software Foundation,
6
- either version 3 of the License, or (at your option) any later version.
7
-
8
- CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
- PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
-
12
- You should have received a copy of the GNU General Public License along with
13
- CPEE (file COPYING in the main directory). If not, see
14
- <http://www.gnu.org/licenses/>.
15
- -->
16
-
17
- <topics xmlns='http://riddl.org/ns/common-patterns/notifications-producer/1.0'>
18
- <topic id='activity'>
19
- <event>calling</event>
20
- <event>done</event>
21
- </topic>
22
- </topics>
@@ -1,19 +0,0 @@
1
- #!/usr/bin/ruby
2
- require 'yaml'
3
- require 'pp'
4
-
5
- def pbuf(buf)
6
- unless buf.empty?
7
- x = YAML.load(buf)
8
- end
9
- buf.clear
10
- x
11
- end
12
-
13
- result = []
14
- buf = ""
15
- File.open('log.xes').each do |line|
16
- result << pbuf(buf) if line == "---\n"
17
- buf += line
18
- end
19
- result << pbuf(buf)