cpee 2.0.27 → 2.1.2
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/config.json.example +7 -0
- data/cockpit/css/wfadaptor.css +11 -0
- data/cockpit/js/instance.js +8 -3
- data/cockpit/js/wfadaptor.js +2 -0
- data/cockpit/templates.legacy/Async.xml +12 -12
- data/cockpit/templates.legacy/BCO.xml +9 -11
- data/cockpit/templates.legacy/BCS.xml +9 -11
- data/cockpit/templates.legacy/Centurio.xml +7 -7
- data/cockpit/templates.legacy/Concurrent.xml +7 -7
- data/cockpit/templates.legacy/Coopis Testset.xml +7 -7
- data/cockpit/templates.legacy/Endpoints and Data Manipulation.xml +6 -7
- data/cockpit/templates.legacy/ICSOC Testset.xml +7 -7
- data/cockpit/templates.legacy/Infinity.xml +7 -7
- data/cockpit/templates.legacy/Lego Boxer.xml +13 -13
- data/cockpit/templates.legacy/Lego Conveyor.xml +13 -13
- data/cockpit/templates.legacy/Lego Crane.xml +16 -16
- data/cockpit/templates.legacy/Lego Ejector.xml +16 -16
- data/cockpit/templates.legacy/Lego Full.xml +12 -12
- data/cockpit/templates.legacy/Lego Liddy.xml +13 -13
- data/cockpit/templates.legacy/Lego Plate.xml +13 -13
- data/cockpit/templates.legacy/Lego Transporter.xml +14 -14
- data/cockpit/templates.legacy/Lego_Part_1.xml +12 -12
- data/cockpit/templates.legacy/LgLinear.xml +7 -10
- data/cockpit/templates.legacy/Linear.xml +11 -14
- data/cockpit/templates.legacy/Log.xml +11 -12
- data/cockpit/templates.legacy/Mangler 1.xml +7 -7
- data/cockpit/templates.legacy/Mangler 2.xml +7 -7
- data/cockpit/templates.legacy/Manuel Labels.xml +11 -11
- data/cockpit/templates.legacy/Promise.xml +30 -30
- data/cockpit/templates.legacy/SOPROMO Test Sonification.xml +7 -7
- data/cockpit/templates.legacy/Subprocess.xml +15 -15
- data/cockpit/templates.legacy/Syncing P34 1.xml +8 -11
- data/cockpit/templates.legacy/Syncing P34 2.xml +8 -11
- data/cockpit/templates.legacy/Syncing P34 3.xml +8 -11
- data/cockpit/templates.legacy/Syncing P34.xml +8 -11
- data/cockpit/templates.legacy/TEST - Bad Loop.xml +7 -7
- data/cockpit/templates.legacy/TEST - Wrong Positions.xml +7 -7
- data/cockpit/templates.legacy/Take_5.xml +14 -14
- data/cockpit/templates.legacy/Update.xml +11 -11
- data/cockpit/templates.legacy/Worklist Parallel.xml +17 -17
- data/cockpit/templates.legacy/Worklist Test CPEE.xml +14 -14
- data/cockpit/templates.legacy/Worklist Test.xml +14 -14
- data/cockpit/templates.legacy/Worklist Test2.xml +14 -14
- data/cockpit/templates/Coopis 2010.xml +19 -11
- data/cockpit/templates/Coopis 2010.xml.active +1 -0
- data/cockpit/templates/Coopis 2010.xml.active-uuid +1 -0
- data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +13 -12
- data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +13 -12
- data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +13 -12
- data/cockpit/templates/Track Test Local.xml +3 -3
- data/cockpit/templates/Track Test.xml +2 -2
- data/cockpit/templates/UR-VUE 2020 Manual Adjust.xml +2 -2
- data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml +2 -2
- data/cockpit/templates/UR-VUE 2020 Solution NN.xml +2 -2
- data/cockpit/templates/UR-VUE 2020 Solution View.xml +2 -2
- data/cockpit/templates/UR-VUE 2020.xml +4 -2
- data/cockpit/templates/Worklist.xml +19 -14
- data/cockpit/templates/instantiate.local/Take_Sub.xml +2 -2
- data/cockpit/templates/instantiate/Take_Perf.xml +1 -1
- data/cockpit/templates/instantiate/Take_Sub.xml +2 -2
- data/cockpit/templates/instantiate/Take_X.xml +2 -2
- data/cockpit/themes/compact/rngs/parallel.rng +6 -0
- data/cockpit/themes/compact/rngs/start.rng +83 -0
- data/cockpit/themes/compact/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/compact/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/compact/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/compact/symbols/start.svg +1 -1
- data/cockpit/themes/compact/theme.js +45 -2
- data/cockpit/themes/control/rngs/parallel.rng +6 -0
- data/cockpit/themes/control/rngs/start.rng +83 -0
- data/cockpit/themes/control/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/control/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/control/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/control/symbols/start.svg +1 -1
- data/cockpit/themes/control/theme.js +45 -2
- data/cockpit/themes/default/rngs/parallel.rng +6 -0
- data/cockpit/themes/default/rngs/start.rng +83 -0
- data/cockpit/themes/default/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/default/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/default/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/default/symbols/start.svg +1 -1
- data/cockpit/themes/default/theme.js +46 -3
- data/cockpit/themes/extended/rngs/parallel.rng +6 -0
- data/cockpit/themes/extended/rngs/start.rng +83 -0
- data/cockpit/themes/extended/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/extended/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/extended/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/extended/symbols/start.svg +1 -1
- data/cockpit/themes/extended/theme.js +45 -2
- data/cockpit/themes/model/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/model/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/model/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/model/symbols/start.svg +1 -1
- data/cockpit/themes/model/theme.js +45 -2
- data/cockpit/themes/packed/rngs/parallel.rng +6 -0
- data/cockpit/themes/packed/rngs/start.rng +83 -0
- data/cockpit/themes/packed/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/packed/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/packed/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/packed/symbols/start.svg +1 -1
- data/cockpit/themes/packed/theme.js +45 -2
- data/cockpit/themes/preset/rngs/parallel.rng +6 -0
- data/cockpit/themes/preset/rngs/start.rng +83 -0
- data/cockpit/themes/preset/symbols/parallel_branch_event.svg +2 -2
- data/cockpit/themes/preset/symbols/parallel_eventbased_exclusive.svg +9 -0
- data/cockpit/themes/preset/symbols/parallel_eventbased_parallel.svg +8 -0
- data/cockpit/themes/preset/symbols/start.svg +1 -1
- data/cockpit/themes/preset/theme.js +46 -3
- data/cpee.gemspec +2 -2
- data/lib/cpee/attributes_helper.rb +14 -0
- data/lib/cpee/implementation.rb +10 -8
- data/lib/cpee/implementation_callbacks.rb +14 -0
- data/lib/cpee/implementation_notifications.rb +14 -0
- data/lib/cpee/implementation_properties.rb +128 -24
- data/lib/cpee/persistence.rb +0 -27
- data/lib/cpee/statemachine.rb +14 -0
- data/lib/cpee/value_helper.rb +14 -0
- data/lib/properties.xml +4 -4
- data/lib/properties/{handlerwrapper.rng → executionhandler.rng} +3 -3
- data/lib/properties/properties.rng +2 -2
- data/lib/properties/set-properties.rng +2 -2
- data/lib/properties/set-some-properties.rng +2 -2
- data/server/{resources → executionhandlers/ruby}/backend/README.md +0 -0
- data/server/{resources → executionhandlers/ruby}/backend/instance.template +2 -4
- data/server/{resources → executionhandlers/ruby}/backend/opts.yaml +2 -2
- data/server/executionhandlers/ruby/backend/run +37 -0
- data/server/{handlerwrappers/default.rb → executionhandlers/ruby/connection.rb} +7 -3
- data/server/executionhandlers/ruby/controller.rb +195 -0
- data/server/{resources/transformation_dslx.xsl → executionhandlers/ruby/dsl_to_dslx.xsl} +57 -8
- data/server/executionhandlers/ruby/execution.rb +81 -0
- data/server/resources/properties.empty +1 -1
- data/server/resources/properties.init +1 -1
- data/server/resources/topics.xml +2 -2
- data/server/routing/persist.rb +3 -3
- data/tools/cpee +10 -4
- data/tools/server/cpee +1 -1
- data/tools/server/resources/properties.init +1 -1
- metadata +37 -239
- data/cockpit/js_libs.zip +0 -0
- data/cockpit/templates.legacy/convert_cpee2.rb +0 -15
- data/lib/cpee/controller.rb +0 -199
- data/lib/cpee/transform.rb +0 -95
- data/server/resources/backend/instance.rb +0 -23
- data/server/resources/backend/run +0 -33
- data/server/routing/end.pid +0 -1
- data/server/routing/forward-events.pid +0 -1
- data/server/routing/forward-votes.pid +0 -1
- data/server/routing/persist.pid +0 -1
- data/server/server.pid +0 -1
- data/tools/test/README +0 -4
- data/tools/test/config.json +0 -3
- data/tools/test/contrib/graph_example.svg +0 -1166
- data/tools/test/contrib/legend.svg +0 -817
- data/tools/test/contrib/symbols.svg +0 -224
- data/tools/test/contrib/transformation1.xsl +0 -264
- data/tools/test/contrib/transformation2.xsl +0 -10
- data/tools/test/contrib/tree_example.svg +0 -788
- data/tools/test/css/model.css +0 -24
- data/tools/test/css/track.css +0 -60
- data/tools/test/css/ui.css +0 -214
- data/tools/test/css/wfadaptor.css +0 -422
- data/tools/test/edit.html +0 -258
- data/tools/test/graph.html +0 -69
- data/tools/test/index.html +0 -258
- data/tools/test/js/details.js +0 -109
- data/tools/test/js/instance.js +0 -1344
- data/tools/test/js/model.js +0 -41
- data/tools/test/js/parameters.js +0 -82
- data/tools/test/js/track.js +0 -18
- data/tools/test/js/ui.js +0 -104
- data/tools/test/js/wfadaptor.js +0 -763
- data/tools/test/js_libs.zip +0 -0
- data/tools/test/js_libs/Makefile +0 -2
- data/tools/test/js_libs/ansi_up.js +0 -333
- data/tools/test/js_libs/console.js +0 -80
- data/tools/test/js_libs/custommenu.css +0 -84
- data/tools/test/js_libs/custommenu.js +0 -104
- data/tools/test/js_libs/experiments1/relaxngui.css +0 -185
- data/tools/test/js_libs/experiments1/relaxngui.js +0 -488
- data/tools/test/js_libs/experiments1/rngtest9.html +0 -60
- data/tools/test/js_libs/experiments1/rngtest9.rng +0 -35
- data/tools/test/js_libs/experiments1/rngtest9.xml +0 -8
- data/tools/test/js_libs/jquery-2.2.4.min.js +0 -4
- data/tools/test/js_libs/jquery-3.2.1.min.js +0 -4
- data/tools/test/js_libs/jquery-3.3.1.min.js +0 -2
- data/tools/test/js_libs/jquery.browser.js +0 -40
- data/tools/test/js_libs/jquery.caret.min.js +0 -10
- data/tools/test/js_libs/jquery.cookie.js +0 -117
- data/tools/test/js_libs/jquery.min.js +0 -1
- data/tools/test/js_libs/jquery.svg.min.js +0 -6
- data/tools/test/js_libs/jquery.svgdom.min.js +0 -6
- data/tools/test/js_libs/markdown.min.js +0 -1
- data/tools/test/js_libs/parsequery.js +0 -21
- data/tools/test/js_libs/printf.js +0 -368
- data/tools/test/js_libs/relaxngui.css +0 -213
- data/tools/test/js_libs/relaxngui.js +0 -543
- data/tools/test/js_libs/strftime.min.js +0 -1
- data/tools/test/js_libs/tests/dataelements.html +0 -59
- data/tools/test/js_libs/tests/dataelements.rng +0 -8
- data/tools/test/js_libs/tests/dataelements.xml +0 -3
- data/tools/test/js_libs/tests/relaxngui.css +0 -203
- data/tools/test/js_libs/tests/relaxngui.js +0 -502
- data/tools/test/js_libs/tests/rngtest1.html +0 -66
- data/tools/test/js_libs/tests/rngtest1.rng +0 -147
- data/tools/test/js_libs/tests/rngtest1.xml +0 -13
- data/tools/test/js_libs/tests/rngtest2.html +0 -60
- data/tools/test/js_libs/tests/rngtest2.rng +0 -6
- data/tools/test/js_libs/tests/rngtest2.xml +0 -3
- data/tools/test/js_libs/tests/rngtest3.html +0 -60
- data/tools/test/js_libs/tests/rngtest3.rng +0 -23
- data/tools/test/js_libs/tests/rngtest3.xml +0 -9
- data/tools/test/js_libs/tests/rngtest4.html +0 -60
- data/tools/test/js_libs/tests/rngtest4.rng +0 -19
- data/tools/test/js_libs/tests/rngtest4.xml +0 -12
- data/tools/test/js_libs/tests/rngtest5.html +0 -60
- data/tools/test/js_libs/tests/rngtest5.rng +0 -75
- data/tools/test/js_libs/tests/rngtest5.xml +0 -40
- data/tools/test/js_libs/tests/rngtest6.html +0 -60
- data/tools/test/js_libs/tests/rngtest6.rng +0 -24
- data/tools/test/js_libs/tests/rngtest6.xml +0 -6
- data/tools/test/js_libs/tests/rngtest8.html +0 -60
- data/tools/test/js_libs/tests/rngtest8.rng +0 -13
- data/tools/test/js_libs/tests/rngtest8.xml +0 -2
- data/tools/test/js_libs/tests/rngtest9.html +0 -60
- data/tools/test/js_libs/tests/rngtest9.rng +0 -31
- data/tools/test/js_libs/tests/rngtest9.xml +0 -8
- data/tools/test/js_libs/ui.css +0 -333
- data/tools/test/js_libs/ui.html +0 -168
- data/tools/test/js_libs/ui.js +0 -177
- data/tools/test/js_libs/underscore.min.js +0 -27
- data/tools/test/js_libs/util.js +0 -81
- data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +0 -358
- data/tools/test/js_libs/vkbeautify.js +0 -1
- data/tools/test/js_libs/webcomponents.min.js +0 -196
- data/tools/test/model.html +0 -192
- data/tools/test/rngs/attributes.rng +0 -8
- data/tools/test/rngs/dataelements.rng +0 -8
- data/tools/test/rngs/endpoints.rng +0 -8
- data/tools/test/templates.legacy/Async.xml +0 -46
- data/tools/test/templates.legacy/BCO.xml +0 -70
- data/tools/test/templates.legacy/BCS.xml +0 -70
- data/tools/test/templates.legacy/Centurio.xml +0 -75
- data/tools/test/templates.legacy/Concurrent.xml +0 -40
- data/tools/test/templates.legacy/Coopis Testset.xml +0 -76
- data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +0 -30
- data/tools/test/templates.legacy/ICSOC Testset.xml +0 -95
- data/tools/test/templates.legacy/Infinity.xml +0 -28
- data/tools/test/templates.legacy/Lego Boxer.xml +0 -31
- data/tools/test/templates.legacy/Lego Conveyor.xml +0 -31
- data/tools/test/templates.legacy/Lego Crane.xml +0 -87
- data/tools/test/templates.legacy/Lego Ejector.xml +0 -55
- data/tools/test/templates.legacy/Lego Full.xml +0 -142
- data/tools/test/templates.legacy/Lego Liddy.xml +0 -40
- data/tools/test/templates.legacy/Lego Plate.xml +0 -31
- data/tools/test/templates.legacy/Lego Transporter.xml +0 -43
- data/tools/test/templates.legacy/Lego_Part_1.xml +0 -85
- data/tools/test/templates.legacy/LgLinear.xml +0 -65
- data/tools/test/templates.legacy/Linear.xml +0 -77
- data/tools/test/templates.legacy/Log.xml +0 -117
- data/tools/test/templates.legacy/Mangler 1.xml +0 -87
- data/tools/test/templates.legacy/Mangler 2.xml +0 -103
- data/tools/test/templates.legacy/Manuel Labels.xml +0 -55
- data/tools/test/templates.legacy/Promise.xml +0 -275
- data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +0 -83
- data/tools/test/templates.legacy/Subprocess.xml +0 -56
- data/tools/test/templates.legacy/Syncing P34 1.xml +0 -77
- data/tools/test/templates.legacy/Syncing P34 2.xml +0 -77
- data/tools/test/templates.legacy/Syncing P34 3.xml +0 -77
- data/tools/test/templates.legacy/Syncing P34.xml +0 -77
- data/tools/test/templates.legacy/TEST - Bad Loop.xml +0 -173
- data/tools/test/templates.legacy/TEST - Wrong Positions.xml +0 -174
- data/tools/test/templates.legacy/Take_5.xml +0 -48
- data/tools/test/templates.legacy/Update.xml +0 -32
- data/tools/test/templates.legacy/Worklist Parallel.xml +0 -104
- data/tools/test/templates.legacy/Worklist Test CPEE.xml +0 -40
- data/tools/test/templates.legacy/Worklist Test.xml +0 -42
- data/tools/test/templates.legacy/Worklist Test2.xml +0 -43
- data/tools/test/templates.legacy/convert_cpee2.rb +0 -15
- data/tools/test/templates.legacy/convert_preset.rb +0 -32
- data/tools/test/templates.legacy/testsets.xml +0 -37
- data/tools/test/templates.legacy/transformations.xml +0 -4
- data/tools/test/templates/Coopis 2010.xml +0 -76
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +0 -77
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +0 -77
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +0 -77
- data/tools/test/templates/Track Test Local.xml +0 -82
- data/tools/test/templates/Track Test.xml +0 -82
- data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +0 -182
- data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +0 -203
- data/tools/test/templates/UR-VUE 2020 Solution NN.xml +0 -197
- data/tools/test/templates/UR-VUE 2020 Solution View.xml +0 -151
- data/tools/test/templates/UR-VUE 2020.xml +0 -26
- data/tools/test/templates/Worklist.xml +0 -42
- data/tools/test/templates/instantiate.local/Take_Sub.xml +0 -59
- data/tools/test/templates/instantiate/Take_Perf.xml +0 -46
- data/tools/test/templates/instantiate/Take_Sub.xml +0 -58
- data/tools/test/templates/instantiate/Take_X.xml +0 -48
- data/tools/test/themes/compact/theme.js +0 -1285
- data/tools/test/themes/diana/theme.js +0 -1650
- data/tools/test/themes/extended/theme.js +0 -1325
- data/tools/test/themes/model/rngs/alternative.rng +0 -1
- data/tools/test/themes/model/rngs/call.rng +0 -67
- data/tools/test/themes/model/rngs/callmanipulate.rng +0 -72
- data/tools/test/themes/model/rngs/choose.rng +0 -1
- data/tools/test/themes/model/rngs/critical.rng +0 -1
- data/tools/test/themes/model/rngs/escape.rng +0 -1
- data/tools/test/themes/model/rngs/group.rng +0 -1
- data/tools/test/themes/model/rngs/loop.rng +0 -1
- data/tools/test/themes/model/rngs/manipulate.rng +0 -1
- data/tools/test/themes/model/rngs/otherwise.rng +0 -1
- data/tools/test/themes/model/rngs/parallel.rng +0 -1
- data/tools/test/themes/model/rngs/parallel_branch.rng +0 -1
- data/tools/test/themes/model/rngs/scripts.rng +0 -7
- data/tools/test/themes/model/rngs/stop.rng +0 -1
- data/tools/test/themes/model/rngs/terminate.rng +0 -1
- data/tools/test/themes/model/theme.js +0 -1268
- data/tools/test/themes/packed/theme.js +0 -1286
- data/tools/test/themes/preset/rngs/alternative.rng +0 -25
- data/tools/test/themes/preset/rngs/call.rng +0 -122
- data/tools/test/themes/preset/rngs/callmanipulate.rng +0 -145
- data/tools/test/themes/preset/rngs/choose.rng +0 -14
- data/tools/test/themes/preset/rngs/closed_loop.rng +0 -62
- data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +0 -5
- data/tools/test/themes/preset/rngs/closed_loop_control.rng +0 -31
- data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +0 -12
- data/tools/test/themes/preset/rngs/critical.rng +0 -5
- data/tools/test/themes/preset/rngs/escape.rng +0 -1
- data/tools/test/themes/preset/rngs/group.rng +0 -3
- data/tools/test/themes/preset/rngs/loop.rng +0 -22
- data/tools/test/themes/preset/rngs/manipulate.rng +0 -9
- data/tools/test/themes/preset/rngs/otherwise.rng +0 -22
- data/tools/test/themes/preset/rngs/parallel.rng +0 -21
- data/tools/test/themes/preset/rngs/parallel_branch.rng +0 -8
- data/tools/test/themes/preset/rngs/scripts.rng +0 -23
- data/tools/test/themes/preset/rngs/stop.rng +0 -5
- data/tools/test/themes/preset/rngs/terminate.rng +0 -1
- data/tools/test/themes/preset/symbols/alternative.svg +0 -5
- data/tools/test/themes/preset/symbols/arrow.svg +0 -3
- data/tools/test/themes/preset/symbols/call.svg +0 -6
- data/tools/test/themes/preset/symbols/callmanipulate.svg +0 -8
- data/tools/test/themes/preset/symbols/choose.svg +0 -5
- data/tools/test/themes/preset/symbols/choose_exclusive.svg +0 -5
- data/tools/test/themes/preset/symbols/choose_inclusive.svg +0 -4
- data/tools/test/themes/preset/symbols/closed_loop.svg +0 -5
- data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +0 -5
- data/tools/test/themes/preset/symbols/closed_loop_control.svg +0 -5
- data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +0 -6
- data/tools/test/themes/preset/symbols/complex.svg +0 -8
- data/tools/test/themes/preset/symbols/critical.svg +0 -4
- data/tools/test/themes/preset/symbols/end.svg +0 -3
- data/tools/test/themes/preset/symbols/escape.svg +0 -5
- data/tools/test/themes/preset/symbols/event_end.svg +0 -3
- data/tools/test/themes/preset/symbols/loop.svg +0 -5
- data/tools/test/themes/preset/symbols/manipulate.svg +0 -4
- data/tools/test/themes/preset/symbols/otherwise.svg +0 -5
- data/tools/test/themes/preset/symbols/parallel.svg +0 -5
- data/tools/test/themes/preset/symbols/parallel_branch.svg +0 -5
- data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +0 -4
- data/tools/test/themes/preset/symbols/parallel_branch_event.svg +0 -14
- data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +0 -5
- data/tools/test/themes/preset/symbols/scripts.svg +0 -4
- data/tools/test/themes/preset/symbols/start.svg +0 -3
- data/tools/test/themes/preset/symbols/stop.svg +0 -5
- data/tools/test/themes/preset/symbols/terminate.svg +0 -4
- data/tools/test/themes/preset/theme.js +0 -1287
- data/tools/test/track.html +0 -142
data/lib/cpee/persistence.rb
CHANGED
@@ -15,33 +15,6 @@
|
|
15
15
|
module CPEE
|
16
16
|
|
17
17
|
module Persistence
|
18
|
-
def self::write_instance(id,opts) #{{{
|
19
|
-
Dir.mkdir(File.join(opts[:instances],id.to_s)) rescue nil
|
20
|
-
FileUtils.copy(opts[:backend_run],File.join(opts[:instances],id.to_s))
|
21
|
-
dsl = CPEE::Persistence::extract_item(id,opts,'dsl')
|
22
|
-
hw = CPEE::Persistence::extract_item(id,opts,'handlerwrapper')
|
23
|
-
endpoints = CPEE::Persistence::extract_list(id,opts,'endpoints')
|
24
|
-
dataelements = CPEE::Persistence::extract_list(id,opts,'dataelements')
|
25
|
-
positions = CPEE::Persistence::extract_set(id,opts,'positions')
|
26
|
-
positions.map! do |k, v|
|
27
|
-
[ k, v, CPEE::Persistence::extract_item(id,opts,File.join('positions',k,'@passthrough')) ]
|
28
|
-
end
|
29
|
-
File.open(File.join(opts[:instances],id.to_s,opts[:backend_opts]),'w') do |f|
|
30
|
-
YAML::dump({
|
31
|
-
:host => opts[:host],
|
32
|
-
:url => opts[:url],
|
33
|
-
:redis_url => opts[:redis_url],
|
34
|
-
:redis_path => File.join(opts[:basepath],opts[:redis_path]),
|
35
|
-
:redis_db => opts[:redis_db],
|
36
|
-
:global_handlerwrappers => opts[:global_handlerwrappers],
|
37
|
-
:handlerwrappers => opts[:handlerwrappers]
|
38
|
-
},f)
|
39
|
-
end
|
40
|
-
template = ERB.new(File.read(opts[:backend_template]), trim_mode: '-')
|
41
|
-
res = template.result_with_hash(dsl: dsl, handlerwrapper: hw, dataelements: dataelements, endpoints: endpoints, positions: positions)
|
42
|
-
File.write(File.join(opts[:instances],id.to_s,opts[:backend_instance]),res)
|
43
|
-
end #}}}
|
44
|
-
|
45
18
|
def self::set_list(id,opts,item,values,deleted=[]) #{{{
|
46
19
|
ah = AttributesHelper.new
|
47
20
|
attributes = Persistence::extract_list(id,opts,'attributes').to_h
|
data/lib/cpee/statemachine.rb
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# This file is part of CPEE.
|
2
|
+
#
|
3
|
+
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
4
|
+
# of the GNU General Public License as published by the Free Software Foundation,
|
5
|
+
# either version 3 of the License, or (at your option) any later version.
|
6
|
+
#
|
7
|
+
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
8
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
9
|
+
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
10
|
+
#
|
11
|
+
# You should have received a copy of the GNU General Public License along with
|
12
|
+
# CPEE (file COPYING in the main directory). If not, see
|
13
|
+
# <http://www.gnu.org/licenses/>.
|
14
|
+
|
1
15
|
module CPEE
|
2
16
|
|
3
17
|
class StateMachine
|
data/lib/cpee/value_helper.rb
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# This file is part of CPEE.
|
2
|
+
#
|
3
|
+
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
4
|
+
# of the GNU General Public License as published by the Free Software Foundation,
|
5
|
+
# either version 3 of the License, or (at your option) any later version.
|
6
|
+
#
|
7
|
+
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
8
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
9
|
+
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
10
|
+
#
|
11
|
+
# You should have received a copy of the GNU General Public License along with
|
12
|
+
# CPEE (file COPYING in the main directory). If not, see
|
13
|
+
# <http://www.gnu.org/licenses/>.
|
14
|
+
|
1
15
|
require 'json'
|
2
16
|
require 'time'
|
3
17
|
|
data/lib/properties.xml
CHANGED
@@ -63,7 +63,7 @@
|
|
63
63
|
<parameter name="value" type="string"/>
|
64
64
|
</message> <!--}}}-->
|
65
65
|
|
66
|
-
<message name="
|
66
|
+
<message name="executionhandler"> <!--{{{-->
|
67
67
|
<parameter name="value" type="string">
|
68
68
|
<param name="pattern">[A-Z][a-zA-Z]*</param>
|
69
69
|
</parameter>
|
@@ -165,9 +165,9 @@
|
|
165
165
|
<get out="string"/>
|
166
166
|
</resource>
|
167
167
|
</resource> <!--}}}-->
|
168
|
-
<resource relative="
|
169
|
-
<put in="
|
170
|
-
<get out="
|
168
|
+
<resource relative="executionhandler"> <!--{{{-->
|
169
|
+
<put in="executionhandler"/>
|
170
|
+
<get out="executionhandler"/>
|
171
171
|
</resource> <!--}}}-->
|
172
172
|
<resource relative="positions"> <!--{{{-->
|
173
173
|
<get out="positions"/>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
|
-
<define name="
|
3
|
-
<element name="
|
2
|
+
<define name="executionhandler">
|
3
|
+
<element name="executionhandler" ns="http://cpee.org/ns/properties/2.0">
|
4
4
|
<data type="string">
|
5
|
-
<param name="pattern">[
|
5
|
+
<param name="pattern">[a-zA-Z]+</param>
|
6
6
|
</data>
|
7
7
|
</element>
|
8
8
|
</define>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
2
|
<include href="state.rng"/>
|
3
3
|
<include href="status.rng"/>
|
4
|
-
<include href="
|
4
|
+
<include href="executionhandler.rng"/>
|
5
5
|
<include href="positions.rng"/>
|
6
6
|
<include href="dataelements.rng"/>
|
7
7
|
<include href="endpoints.rng"/>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
<element name="properties" ns="http://cpee.org/ns/properties/2.0">
|
16
16
|
<ref name="state"/>
|
17
17
|
<ref name="status"/>
|
18
|
-
<ref name="
|
18
|
+
<ref name="executionhandler"/>
|
19
19
|
<ref name="positions"/>
|
20
20
|
<ref name="dataelements"/>
|
21
21
|
<ref name="endpoints"/>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
2
|
<include href="state.rng"/>
|
3
3
|
<include href="status.rng"/>
|
4
|
-
<include href="
|
4
|
+
<include href="executionhandler.rng"/>
|
5
5
|
<include href="positions.rng"/>
|
6
6
|
<include href="dataelements.rng"/>
|
7
7
|
<include href="endpoints.rng"/>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<element name="properties" ns="http://cpee.org/ns/properties/2.0">
|
14
14
|
<ref name="set-state"/>
|
15
15
|
<ref name="status"/>
|
16
|
-
<ref name="
|
16
|
+
<ref name="executionhandler"/>
|
17
17
|
<ref name="positions"/>
|
18
18
|
<ref name="dataelements"/>
|
19
19
|
<ref name="endpoints"/>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
2
|
<include href="state.rng"/>
|
3
3
|
<include href="status.rng"/>
|
4
|
-
<include href="
|
4
|
+
<include href="executionhandler.rng"/>
|
5
5
|
<include href="positions.rng"/>
|
6
6
|
<include href="dataelements.rng"/>
|
7
7
|
<include href="endpoints.rng"/>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<ref name="status"/>
|
20
20
|
</optional>
|
21
21
|
<optional>
|
22
|
-
<ref name="
|
22
|
+
<ref name="executionhandler"/>
|
23
23
|
</optional>
|
24
24
|
<optional>
|
25
25
|
<ref name="positions"/>
|
File without changes
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class Instance < WEEL
|
2
|
-
|
2
|
+
connectionwrapper ConnectionWrapper
|
3
3
|
|
4
4
|
<% for key, value in endpoints -%>
|
5
5
|
endpoint :<%= key %> => <%= CPEE::ValueHelper::parse(value).inspect %>
|
@@ -13,7 +13,5 @@ class Instance < WEEL
|
|
13
13
|
search <% positions.each_with_index { |de,i| %><%= (i > 0 ? ', ' : '') %>Position.new(:<%= de[0] %>, :<%=de[1] %>, <%= de[2].nil? || de[2].strip.empty? ? 'nil' : '"' + de[2] + '"' %>)<% } %>
|
14
14
|
<% end -%>
|
15
15
|
|
16
|
-
|
17
|
-
<%= dsl.strip.gsub(/\n/,"\n ") %>
|
18
|
-
end
|
16
|
+
<%= dsl.strip.gsub(/\n/,"\n ") %>
|
19
17
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'yaml'
|
3
|
+
opts = YAML::load_file(File.join(__dir__,'opts.yaml'))
|
4
|
+
opts[:pidf] = __FILE__ + '.pid'
|
5
|
+
opts[:pid] = Process.pid
|
6
|
+
|
7
|
+
global_controller = File.join(opts[:global_executionhandlers],opts[:executionhandler],'controller.rb')
|
8
|
+
controller = File.join(opts[:executionhandlers], opts[:executionhandler],'controller.rb')
|
9
|
+
if File.exists? global_controller
|
10
|
+
require global_controller
|
11
|
+
elsif File.exists? controller
|
12
|
+
require controller
|
13
|
+
end
|
14
|
+
|
15
|
+
global_connectionhandler = File.join(opts[:global_executionhandlers],opts[:executionhandler],'connection.rb')
|
16
|
+
connectionhandler = File.join(opts[:executionhandlers], opts[:executionhandler],'connection.rb')
|
17
|
+
if File.exists? global_connectionhandler
|
18
|
+
require global_connectionhandler
|
19
|
+
elsif File.exists? connectionhandler
|
20
|
+
require connectionhandler
|
21
|
+
end
|
22
|
+
|
23
|
+
require_relative 'instance'
|
24
|
+
controller = Controller.new(File.basename(__dir__).to_i, __dir__, opts)
|
25
|
+
controller.instance = Instance.new controller
|
26
|
+
|
27
|
+
File.write(opts[:pidf],opts[:pid])
|
28
|
+
|
29
|
+
%w{TERM HUP INT}.each do |sig|
|
30
|
+
Signal.trap(sig) do
|
31
|
+
puts "Caught #{sig}!"
|
32
|
+
controller.stop
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
controller.start
|
37
|
+
File.unlink(opts[:pidf])
|
@@ -12,7 +12,7 @@
|
|
12
12
|
# CPEE (file COPYING in the main directory). If not, see
|
13
13
|
# <http://www.gnu.org/licenses/>.
|
14
14
|
|
15
|
-
class
|
15
|
+
class ConnectionWrapper < WEEL::ConnectionWrapperBase
|
16
16
|
def self::loop_guard(arguments,id,count) # {{{
|
17
17
|
controller = arguments[0]
|
18
18
|
tsn = Time.now
|
@@ -30,11 +30,11 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
30
30
|
controller = arguments[0]
|
31
31
|
controller.notify("description/error", :message => err.message)
|
32
32
|
end# }}}
|
33
|
-
def self::
|
33
|
+
def self::inform_connectionwrapper_error(arguments,err) # {{{
|
34
34
|
controller = arguments[0]
|
35
35
|
p err.message
|
36
36
|
p err.backtrace
|
37
|
-
controller.notify("
|
37
|
+
controller.notify("executionhandler/error", :message => err.message)
|
38
38
|
end # }}}
|
39
39
|
def self::inform_position_change(arguments,ipc={}) # {{{
|
40
40
|
controller = arguments[0]
|
@@ -72,6 +72,10 @@ class DefaultHandlerWrapper < WEEL::HandlerWrapperBase
|
|
72
72
|
params
|
73
73
|
end #}}}
|
74
74
|
|
75
|
+
def additional #{{{
|
76
|
+
{ :attributes => @controller.attributes }
|
77
|
+
end #}}}
|
78
|
+
|
75
79
|
def proto_curl(parameters) #{{{
|
76
80
|
params = []
|
77
81
|
callback = Digest::MD5.hexdigest(Kernel::rand().to_s)
|
@@ -0,0 +1,195 @@
|
|
1
|
+
# This file is part of CPEE.
|
2
|
+
#
|
3
|
+
# CPEE is free software: you can redistribute it and/or modify it under the terms
|
4
|
+
# of the GNU General Public License as published by the Free Software Foundation,
|
5
|
+
# either version 3 of the License, or (at your option) any later version.
|
6
|
+
#
|
7
|
+
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
|
8
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
9
|
+
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
10
|
+
#
|
11
|
+
# You should have received a copy of the GNU General Public License along with
|
12
|
+
# CPEE (file COPYING in the main directory). If not, see
|
13
|
+
# <http://www.gnu.org/licenses/>.
|
14
|
+
|
15
|
+
require 'weel'
|
16
|
+
require 'json'
|
17
|
+
require 'redis'
|
18
|
+
require 'securerandom'
|
19
|
+
require 'riddl/client'
|
20
|
+
require 'cpee/value_helper'
|
21
|
+
require 'cpee/attributes_helper'
|
22
|
+
require 'cpee/message'
|
23
|
+
require 'cpee/redis'
|
24
|
+
|
25
|
+
require 'ostruct'
|
26
|
+
class ParaStruct < OpenStruct
|
27
|
+
def to_json(*a)
|
28
|
+
table.to_json
|
29
|
+
end
|
30
|
+
end
|
31
|
+
def →(a); ParaStruct.new(a); end
|
32
|
+
def ⭐(a); ParaStruct.new(a); end
|
33
|
+
|
34
|
+
class Controller
|
35
|
+
def initialize(id,dir,opts)
|
36
|
+
CPEE::redis_connect(opts)
|
37
|
+
|
38
|
+
@redis = opts[:redis]
|
39
|
+
@votes = []
|
40
|
+
|
41
|
+
@id = id
|
42
|
+
|
43
|
+
@attributes = {}
|
44
|
+
@redis.keys("instance:#{id}/attributes/*").each do |key|
|
45
|
+
@attributes[File.basename(key)] = @redis.get(key)
|
46
|
+
end
|
47
|
+
|
48
|
+
@attributes_helper = AttributesHelper.new
|
49
|
+
@thread = nil
|
50
|
+
@opts = opts
|
51
|
+
@instance = nil
|
52
|
+
@loop_guard = {}
|
53
|
+
|
54
|
+
@callback_keys = {}
|
55
|
+
@psredis = @opts[:redis_dyn].call
|
56
|
+
|
57
|
+
Thread.new do
|
58
|
+
@psredis.psubscribe('callback-response:*','callback-end:*') do |on|
|
59
|
+
on.pmessage do |pat, what, message|
|
60
|
+
if pat == 'callback-response:*' && @callback_keys.has_key?(what[18..-1])
|
61
|
+
index = message.index(' ')
|
62
|
+
mess = message[index+1..-1]
|
63
|
+
instance = message[0...index]
|
64
|
+
m = JSON.parse(mess)
|
65
|
+
resp = []
|
66
|
+
m['content']['values'].each do |e|
|
67
|
+
if e[1][0] == 'simple'
|
68
|
+
resp << Riddl::Parameter::Simple.new(e[0],e[1][1])
|
69
|
+
elsif e[1][0] == 'complex'
|
70
|
+
resp << Riddl::Parameter::Complex.new(e[0],e[1][1],File.open(e[1][2]))
|
71
|
+
end
|
72
|
+
end
|
73
|
+
@callback_keys[what[18..-1]].send(:callback,resp,m['content']['headers'])
|
74
|
+
end
|
75
|
+
if pat == 'callback-end:*'
|
76
|
+
@callback_keys.delete(what[13..-1])
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
attr_reader :id
|
84
|
+
attr_reader :attributes
|
85
|
+
attr_reader :loop_guard
|
86
|
+
|
87
|
+
def uuid
|
88
|
+
@attributes['uuid']
|
89
|
+
end
|
90
|
+
|
91
|
+
def attributes_translated
|
92
|
+
@attributes_helper.translate(attributes,dataelements,endpoints)
|
93
|
+
end
|
94
|
+
|
95
|
+
def host
|
96
|
+
@opts[:host]
|
97
|
+
end
|
98
|
+
def base_url
|
99
|
+
@opts[:url]
|
100
|
+
end
|
101
|
+
def instance_url
|
102
|
+
File.join(@opts[:url].to_s,@id.to_s)
|
103
|
+
end
|
104
|
+
def instance_id
|
105
|
+
@id
|
106
|
+
end
|
107
|
+
def base
|
108
|
+
base_url
|
109
|
+
end
|
110
|
+
def instance=(inst)
|
111
|
+
@instance = inst
|
112
|
+
end
|
113
|
+
def endpoints
|
114
|
+
@instance.endpoints
|
115
|
+
end
|
116
|
+
def dataelements
|
117
|
+
@instance.data
|
118
|
+
end
|
119
|
+
|
120
|
+
def start
|
121
|
+
if vote("state/change", :state => 'running')
|
122
|
+
@thread = @instance.start
|
123
|
+
@thread.join
|
124
|
+
else
|
125
|
+
@thread = @instance.stop
|
126
|
+
@thread.join
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
def stop
|
131
|
+
### tell the instance to stop
|
132
|
+
@instance.stop
|
133
|
+
### end all votes or it will not work
|
134
|
+
Thread.new do # doing stuff in trap context is a nono. but in a thread its fine :-)
|
135
|
+
@votes.each do |key|
|
136
|
+
CPEE::Message::send(:'vote-response',key,base,@id,uuid,info,true,@redis)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
@thread.join if !@thread.nil? && @thread.alive?
|
140
|
+
end
|
141
|
+
|
142
|
+
def info
|
143
|
+
@attributes['info']
|
144
|
+
end
|
145
|
+
|
146
|
+
def notify(what,content={})
|
147
|
+
content[:attributes] = attributes_translated
|
148
|
+
CPEE::Message::send(:event,what,base,@id,uuid,info,content,@redis)
|
149
|
+
end
|
150
|
+
|
151
|
+
def vote(what,content={})
|
152
|
+
topic, name = what.split('/')
|
153
|
+
handler = File.join(topic,'vote',name)
|
154
|
+
votes = []
|
155
|
+
@redis.smembers("instance:#{id}/handlers/#{handler}").each do |client|
|
156
|
+
voteid = Digest::MD5.hexdigest(Kernel::rand().to_s)
|
157
|
+
content[:key] = voteid
|
158
|
+
content[:attributes] = attributes_translated
|
159
|
+
content[:subscription] = client
|
160
|
+
votes << voteid
|
161
|
+
CPEE::Message::send(:vote,what,base,@id,uuid,info,content,@redis)
|
162
|
+
end
|
163
|
+
|
164
|
+
if votes.length > 0
|
165
|
+
@votes += votes
|
166
|
+
psredis = @opts[:redis_dyn].call
|
167
|
+
collect = []
|
168
|
+
psredis.subscribe(votes.map{|e| ['vote-response:' + e.to_s] }.flatten) do |on|
|
169
|
+
on.message do |what, message|
|
170
|
+
index = message.index(' ')
|
171
|
+
mess = message[index+1..-1]
|
172
|
+
m = JSON.parse(mess)
|
173
|
+
collect << ((m['content'] == true || m['content'] == 'true') || false)
|
174
|
+
@votes.delete m['name']
|
175
|
+
cancel_callback m['name']
|
176
|
+
if collect.length >= votes.length
|
177
|
+
psredis.unsubscribe
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
!collect.include?(false)
|
182
|
+
else
|
183
|
+
true
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def callback(hw,key,content)
|
188
|
+
CPEE::Message::send(:callback,'activity/content',base,@id,uuid,info,content.merge(:key => key),@redis)
|
189
|
+
@callback_keys[key] = hw
|
190
|
+
end
|
191
|
+
|
192
|
+
def cancel_callback(key)
|
193
|
+
CPEE::Message::send(:'callback-end',key,base,@id,uuid,info,{},@redis)
|
194
|
+
end
|
195
|
+
end
|