cpee 2.0.26 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cockpit/config.json.example +7 -0
- data/cockpit/css/ui.css +1 -0
- data/cockpit/css/wfadaptor.css +11 -0
- data/cockpit/edit.html +1 -4
- data/cockpit/js/instance.js +9 -4
- 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 +3 -3
- 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} +2 -2
- 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 +38 -240
- 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
@@ -481,8 +481,12 @@ function WFAdaptorManifestation(adaptor) {
|
|
481
481
|
'endnodes': 'this',
|
482
482
|
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
|
483
483
|
'resolve_symbol': function(node) {
|
484
|
-
if($(node).attr('wait') == '-1') {
|
484
|
+
if($(node).attr('cancel') == 'last' && $(node).attr('wait') == '-1') {
|
485
485
|
return 'parallel_simple';
|
486
|
+
} else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == '-1') {
|
487
|
+
return 'parallel_event_all';
|
488
|
+
} else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == '1') {
|
489
|
+
return 'parallel_event_one';
|
486
490
|
} else {
|
487
491
|
return 'parallel_complex';
|
488
492
|
}
|
@@ -848,7 +852,16 @@ function WFAdaptorManifestation(adaptor) {
|
|
848
852
|
'col_shift': function(node) {
|
849
853
|
return true;
|
850
854
|
},
|
851
|
-
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
|
855
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
|
856
|
+
'resolve_symbol': function(node) {
|
857
|
+
if($(node).attr('cancel') == 'last') {
|
858
|
+
return 'parallel_start';
|
859
|
+
} else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == 1) {
|
860
|
+
return 'parallel_eventbased_exclusive';
|
861
|
+
} else {
|
862
|
+
return 'parallel_eventbased_parallel';
|
863
|
+
}
|
864
|
+
},
|
852
865
|
},//}}}
|
853
866
|
'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
|
854
867
|
'permissible_children': function(node,mode) { //{{{
|
@@ -1275,6 +1288,24 @@ function WFAdaptorManifestation(adaptor) {
|
|
1275
1288
|
'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
|
1276
1289
|
},//}}}
|
1277
1290
|
}; /*}}}*/
|
1291
|
+
this.elements.parallel_start = { /*{{{*/
|
1292
|
+
'parent': 'parallel',
|
1293
|
+
'illustrator': {//{{{
|
1294
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
|
1295
|
+
}//}}}
|
1296
|
+
}; /*}}}*/
|
1297
|
+
this.elements.parallel_eventbased_exclusive = { /*{{{*/
|
1298
|
+
'parent': 'parallel',
|
1299
|
+
'illustrator': {//{{{
|
1300
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_exclusive.svg'
|
1301
|
+
}//}}}
|
1302
|
+
}; /*}}}*/
|
1303
|
+
this.elements.parallel_eventbased_parallel = { /*{{{*/
|
1304
|
+
'parent': 'parallel',
|
1305
|
+
'illustrator': {//{{{
|
1306
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_parallel.svg'
|
1307
|
+
}//}}}
|
1308
|
+
}; /*}}}*/
|
1278
1309
|
this.elements.parallel_simple = { /*{{{*/
|
1279
1310
|
'parent': 'parallel_finish',
|
1280
1311
|
'illustrator': {//{{{
|
@@ -1287,6 +1318,18 @@ function WFAdaptorManifestation(adaptor) {
|
|
1287
1318
|
'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
|
1288
1319
|
},//}}}
|
1289
1320
|
}; /*}}}*/
|
1321
|
+
this.elements.parallel_event_all = { /*{{{*/
|
1322
|
+
'parent': 'parallel_finish',
|
1323
|
+
'illustrator': {//{{{
|
1324
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_parallel.svg'
|
1325
|
+
}//}}}
|
1326
|
+
}; /*}}}*/
|
1327
|
+
this.elements.parallel_event_one = { /*{{{*/
|
1328
|
+
'parent': 'parallel_finish',
|
1329
|
+
'illustrator': {//{{{
|
1330
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_exclusive.svg'
|
1331
|
+
}//}}}
|
1332
|
+
}; /*}}}*/
|
1290
1333
|
this.elements.parallel_branch_normal = { /*{{{*/
|
1291
1334
|
'parent': 'parallel_branch',
|
1292
1335
|
'illustrator': {//{{{
|
@@ -2,6 +2,12 @@
|
|
2
2
|
<attribute name="wait" rngui:label="Wait" rngui:default="-1" rngui:hint="-1 to wait for all branches.">
|
3
3
|
<data type="integer"/>
|
4
4
|
</attribute>
|
5
|
+
<attribute name="cancel" rngui:label="Cancel" rngui:default="last" rngui:hint="Set 'Wait' to 1 for standard Event-based Gateway.">
|
6
|
+
<choice>
|
7
|
+
<value id='last'>After Last Task in Branch</value>
|
8
|
+
<value id='first'>After First Task in Branch (Event-Based Gateway)</value>
|
9
|
+
</choice>
|
10
|
+
</attribute>
|
5
11
|
<element rngui:ignore="true" name="parallel_branch">
|
6
12
|
<attribute name="pass">
|
7
13
|
<data type="string"/>
|
@@ -0,0 +1,83 @@
|
|
1
|
+
<element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="description" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
|
2
|
+
<element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data elements (internal context) in the process can be used as input for context data probes. All probes can be the basis for impact factors. Please go to individual tasks to define deal with data that is ">
|
3
|
+
|
4
|
+
<element name="probes" rngui:header="Context Data Extraction" rngui:fold="closed">
|
5
|
+
<zeroOrMore rngui:label="Add Probe">
|
6
|
+
<element name="probe">
|
7
|
+
<element name="name" rngui:label="Label">
|
8
|
+
<data type="string" rngui:label="Label"/>
|
9
|
+
</element>
|
10
|
+
<element name="extractor_type" rngui:label="Extractor Type">
|
11
|
+
<choice>
|
12
|
+
<value id='code'>Extractor Code</value>
|
13
|
+
<value id='service'>Extractor Service</value>
|
14
|
+
</choice>
|
15
|
+
</element>
|
16
|
+
<element name="extractor_code" rngui:label="Extractor Code">
|
17
|
+
<text rngui:label="Service Url"/>
|
18
|
+
</element>
|
19
|
+
<element name="extractor_url" rngui:label="Extractor Service">
|
20
|
+
<data type="string" rngui:label="Service Url"/>
|
21
|
+
</element>
|
22
|
+
<element name="extractor_params" rngui:label="Extractor Service Arguments:">
|
23
|
+
<zeroOrMore rngui:label="Create Extractor Argument Pairs">
|
24
|
+
<element rngui:label="Name">
|
25
|
+
<anyName/>
|
26
|
+
<data type="string" rngui:label="Value / Json"/>
|
27
|
+
</element>
|
28
|
+
</zeroOrMore>
|
29
|
+
</element>
|
30
|
+
<element name="visualizer_url" rngui:label="Visualizer Url">
|
31
|
+
<data type="string" rngui:label="Service Url"/>
|
32
|
+
</element>
|
33
|
+
<element name="visualizer_params" rngui:label="Visualizer Arguments">
|
34
|
+
<zeroOrMore rngui:label="Create Visualizer Argument Pairs">
|
35
|
+
<element rngui:label="Name">
|
36
|
+
<anyName/>
|
37
|
+
<data type="string" rngui:label="Value / Json"/>
|
38
|
+
</element>
|
39
|
+
</zeroOrMore>
|
40
|
+
</element>
|
41
|
+
</element>
|
42
|
+
</zeroOrMore>
|
43
|
+
</element>
|
44
|
+
|
45
|
+
<element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
|
46
|
+
<zeroOrMore rngui:label="Add Impact Profile">
|
47
|
+
<element name="ip">
|
48
|
+
<element name="name" rngui:label="Label">
|
49
|
+
<data type="string" rngui:label="Label"/>
|
50
|
+
</element>
|
51
|
+
<element name="target" rngui:label="Target Value">
|
52
|
+
<data type="string" rngui:label="Value"/>
|
53
|
+
</element>
|
54
|
+
<element name="ifs" rngui:header="Impact Factors">
|
55
|
+
<zeroOrMore rngui:label="Add Impact Factor">
|
56
|
+
<element name="if">
|
57
|
+
<element name="ivs" rngui:header="Impact Values">
|
58
|
+
<zeroOrMore rngui:label="Add Impact Value ">
|
59
|
+
<element name="iv">
|
60
|
+
<element name="extractor_url" rngui:label="Extractor Url">
|
61
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
62
|
+
</element>
|
63
|
+
<element name="aggregator_url" rngui:label="Aggregator Url">
|
64
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
65
|
+
</element>
|
66
|
+
</element>
|
67
|
+
</zeroOrMore>
|
68
|
+
</element>
|
69
|
+
<element name="aggregator_url" rngui:label="Impact Function Url">
|
70
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
71
|
+
</element>
|
72
|
+
</element>
|
73
|
+
</zeroOrMore>
|
74
|
+
</element>
|
75
|
+
<element name="vfunc_url" rngui:label="Violation Function Url">
|
76
|
+
<data type="string" rngui:label="Service Url + Parameters"/>
|
77
|
+
</element>
|
78
|
+
</element>
|
79
|
+
</zeroOrMore>
|
80
|
+
</element>
|
81
|
+
|
82
|
+
</element>
|
83
|
+
</element>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
2
2
|
<rect x="1" y="3" width="24" height="24" rx="4" class="hfill rfill cline stand"/>
|
3
3
|
|
4
|
-
<circle cx="24" cy="15" r="
|
5
|
-
<circle cx="24" cy="15" r="7" class="cline rfill
|
4
|
+
<circle cx="24" cy="15" r="9" class="cline rfill standthin" style="stroke-dasharray: 1,2"/>
|
5
|
+
<circle cx="24" cy="15" r="7" class="cline rfill standthin" style="stroke-dasharray: 1,2"/>
|
6
6
|
<line x1="24" y1="11" x2="20" y2="18" class="stand"/>
|
7
7
|
<line x1="20" y1="18" x2="28" y2="18" class="stand"/>
|
8
8
|
<line x1="28" y1="18" x2="24" y2="11" class="stand"/>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect transform="rotate(45,14,12)" x="7" y="3" width="21" height="21" class="cline hfill stand"/>
|
3
|
+
<circle cx="15.5" cy="15.5" r="8" class="standthin"/>
|
4
|
+
<circle cx="15.5" cy="15.5" r="6" class="standthin"/>
|
5
|
+
<path
|
6
|
+
d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
|
7
|
+
class="stand"/>
|
8
|
+
</svg>
|
9
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<svg class="clickable" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect transform="rotate(45,14,12)" x="7" y="3" width="21" height="21" class="cline hfill stand"/>
|
3
|
+
<circle cx="15.5" cy="15.5" r="8" class="standthin"/>
|
4
|
+
<circle cx="15.5" cy="15.5" r="6" class="standthin"/>
|
5
|
+
<line x1="12.5" y1="15.5" x2="18.5" y2="15.5" class="stand"/>
|
6
|
+
<line x1="15.5" y1="12.5" x2="15.5" y2="18.5" class="stand"/>
|
7
|
+
</svg>
|
8
|
+
|
@@ -481,8 +481,12 @@ function WFAdaptorManifestation(adaptor) {
|
|
481
481
|
'endnodes': 'this',
|
482
482
|
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
|
483
483
|
'resolve_symbol': function(node) {
|
484
|
-
if($(node).attr('wait') == '-1') {
|
484
|
+
if($(node).attr('cancel') == 'last' && $(node).attr('wait') == '-1') {
|
485
485
|
return 'parallel_simple';
|
486
|
+
} else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == '-1') {
|
487
|
+
return 'parallel_event_all';
|
488
|
+
} else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == '1') {
|
489
|
+
return 'parallel_event_one';
|
486
490
|
} else {
|
487
491
|
return 'parallel_complex';
|
488
492
|
}
|
@@ -849,7 +853,16 @@ function WFAdaptorManifestation(adaptor) {
|
|
849
853
|
'col_shift': function(node) {
|
850
854
|
return true;
|
851
855
|
},
|
852
|
-
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
|
856
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
|
857
|
+
'resolve_symbol': function(node) {
|
858
|
+
if($(node).attr('cancel') == 'last') {
|
859
|
+
return 'parallel_start';
|
860
|
+
} else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == 1) {
|
861
|
+
return 'parallel_eventbased_exclusive';
|
862
|
+
} else {
|
863
|
+
return 'parallel_eventbased_parallel';
|
864
|
+
}
|
865
|
+
},
|
853
866
|
},//}}}
|
854
867
|
'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
|
855
868
|
'permissible_children': function(node,mode) { //{{{
|
@@ -1142,7 +1155,7 @@ function WFAdaptorManifestation(adaptor) {
|
|
1142
1155
|
},
|
1143
1156
|
'svg': self.adaptor.theme_dir + 'symbols/start.svg'
|
1144
1157
|
},//}}}
|
1145
|
-
'description':
|
1158
|
+
'description': self.adaptor.theme_dir + 'rngs/start.rng',
|
1146
1159
|
'permissible_children': function(node,mode) { //{{{
|
1147
1160
|
var func = null;
|
1148
1161
|
if (mode == 'into') { func = self.adaptor.description.insert_first_into }
|
@@ -1276,6 +1289,24 @@ function WFAdaptorManifestation(adaptor) {
|
|
1276
1289
|
'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
|
1277
1290
|
},//}}}
|
1278
1291
|
}; /*}}}*/
|
1292
|
+
this.elements.parallel_start = { /*{{{*/
|
1293
|
+
'parent': 'parallel',
|
1294
|
+
'illustrator': {//{{{
|
1295
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
|
1296
|
+
}//}}}
|
1297
|
+
}; /*}}}*/
|
1298
|
+
this.elements.parallel_eventbased_exclusive = { /*{{{*/
|
1299
|
+
'parent': 'parallel',
|
1300
|
+
'illustrator': {//{{{
|
1301
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_exclusive.svg'
|
1302
|
+
}//}}}
|
1303
|
+
}; /*}}}*/
|
1304
|
+
this.elements.parallel_eventbased_parallel = { /*{{{*/
|
1305
|
+
'parent': 'parallel',
|
1306
|
+
'illustrator': {//{{{
|
1307
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_parallel.svg'
|
1308
|
+
}//}}}
|
1309
|
+
}; /*}}}*/
|
1279
1310
|
this.elements.parallel_simple = { /*{{{*/
|
1280
1311
|
'parent': 'parallel_finish',
|
1281
1312
|
'illustrator': {//{{{
|
@@ -1288,6 +1319,18 @@ function WFAdaptorManifestation(adaptor) {
|
|
1288
1319
|
'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
|
1289
1320
|
},//}}}
|
1290
1321
|
}; /*}}}*/
|
1322
|
+
this.elements.parallel_event_all = { /*{{{*/
|
1323
|
+
'parent': 'parallel_finish',
|
1324
|
+
'illustrator': {//{{{
|
1325
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_parallel.svg'
|
1326
|
+
}//}}}
|
1327
|
+
}; /*}}}*/
|
1328
|
+
this.elements.parallel_event_one = { /*{{{*/
|
1329
|
+
'parent': 'parallel_finish',
|
1330
|
+
'illustrator': {//{{{
|
1331
|
+
'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_exclusive.svg'
|
1332
|
+
}//}}}
|
1333
|
+
}; /*}}}*/
|
1291
1334
|
this.elements.parallel_branch_normal = { /*{{{*/
|
1292
1335
|
'parent': 'parallel_branch',
|
1293
1336
|
'illustrator': {//{{{
|
data/cpee.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "cpee"
|
3
|
-
s.version = "2.
|
3
|
+
s.version = "2.1.1"
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.license = "LGPL-3.0"
|
6
6
|
s.summary = "Preliminary release of cloud process execution engine (cpee.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
|
@@ -22,9 +22,9 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.homepage = 'http://cpee.org/'
|
23
23
|
|
24
24
|
s.add_runtime_dependency 'riddl', '~> 0.108'
|
25
|
-
s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.
|
25
|
+
s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.99'
|
26
26
|
s.add_runtime_dependency 'highline', '~> 2.0'
|
27
27
|
s.add_runtime_dependency 'json', '~>2.1'
|
28
28
|
s.add_runtime_dependency 'redis', '~> 4.1'
|
29
|
-
s.add_runtime_dependency 'rubyzip', '~>
|
29
|
+
s.add_runtime_dependency 'rubyzip', '~>2'
|
30
30
|
end
|
@@ -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 'weel'
|
2
16
|
|
3
17
|
class AttributesHelper
|
data/lib/cpee/implementation.rb
CHANGED
@@ -28,7 +28,7 @@ module CPEE
|
|
28
28
|
|
29
29
|
SERVER = File.expand_path(File.join(__dir__,'..','cpee.xml'))
|
30
30
|
PROPERTIES_PATHS_FULL = %w{
|
31
|
-
/p:properties/p:
|
31
|
+
/p:properties/p:executionhandler
|
32
32
|
/p:properties/p:positions/p:*
|
33
33
|
/p:properties/p:positions/p:*/@*
|
34
34
|
/p:properties/p:dataelements/p:*
|
@@ -54,22 +54,17 @@ module CPEE
|
|
54
54
|
}
|
55
55
|
def self::implementation(opts)
|
56
56
|
opts[:instances] ||= File.expand_path(File.join(__dir__,'..','..','server','instances'))
|
57
|
-
opts[:
|
58
|
-
opts[:
|
57
|
+
opts[:global_executionhandlers] ||= File.expand_path(File.join(__dir__,'..','..','server','executionhandlers'))
|
58
|
+
opts[:executionhandlers] ||= ''
|
59
59
|
opts[:topics] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','topics.xml'))
|
60
60
|
opts[:properties_init] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','properties.init'))
|
61
61
|
opts[:properties_empty] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','properties.empty'))
|
62
|
-
opts[:transformation_dslx] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','transformation_dslx.xsl'))
|
63
62
|
opts[:transformation_service] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','transformation.xml'))
|
64
63
|
opts[:empty_dslx] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','empty_dslx.xml'))
|
65
64
|
opts[:notifications_init] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','notifications'))
|
66
65
|
opts[:states] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','states.xml'))
|
67
|
-
opts[:backend_run] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','backend','run'))
|
68
|
-
opts[:backend_template] ||= File.expand_path(File.join(__dir__,'..','..','server','resources','backend','instance.template'))
|
69
|
-
opts[:backend_opts] ||= 'opts.yaml'
|
70
66
|
opts[:watchdog_frequency] ||= 7
|
71
67
|
opts[:watchdog_start_off] ||= false
|
72
|
-
opts[:backend_instance] ||= 'instance.rb'
|
73
68
|
opts[:infinite_loop_stop] ||= 10000
|
74
69
|
|
75
70
|
### set redis_cmd to nil if you want to do global
|
@@ -100,6 +95,13 @@ module CPEE
|
|
100
95
|
]
|
101
96
|
|
102
97
|
Proc.new do
|
98
|
+
Dir[File.join(opts[:global_executionhandlers],'*','execution.rb')].each do |h|
|
99
|
+
require h
|
100
|
+
end unless opts[:global_executionhandlers].nil? || opts[:global_executionhandlers].strip == ''
|
101
|
+
Dir[File.join(opts[:executionhandlers],'*','execution.rb')].each do |h|
|
102
|
+
require h
|
103
|
+
end unless opts[:executionhandlers].nil? || opts[:executionhandlers].strip == ''
|
104
|
+
|
103
105
|
parallel do
|
104
106
|
CPEE::watch_services(opts[:watchdog_start_off],opts[:redis_url],File.join(opts[:basepath],opts[:redis_path]),opts[:redis_db])
|
105
107
|
EM.add_periodic_timer(opts[:watchdog_frequency]) do ### start services
|
@@ -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
|
|
3
17
|
module CPEE
|
@@ -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
|
|
3
17
|
module CPEE
|
@@ -1,6 +1,19 @@
|
|
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_relative 'attributes_helper'
|
2
16
|
require_relative 'value_helper'
|
3
|
-
require_relative 'transform'
|
4
17
|
require 'json'
|
5
18
|
require 'erb'
|
6
19
|
require 'yaml'
|
@@ -31,9 +44,9 @@ module CPEE
|
|
31
44
|
run CPEE::Properties::GetStatusMessage, id, opts if get
|
32
45
|
end
|
33
46
|
end
|
34
|
-
on resource '
|
35
|
-
run CPEE::Properties::
|
36
|
-
run CPEE::Properties::
|
47
|
+
on resource 'executionhandler' do
|
48
|
+
run CPEE::Properties::GetExecutionHandler, id, opts if get
|
49
|
+
run CPEE::Properties::PutExecutionHandler, id, opts if put 'executionhandler'
|
37
50
|
end
|
38
51
|
on resource 'positions' do
|
39
52
|
run CPEE::Properties::GetPositions, id, opts if get
|
@@ -128,8 +141,8 @@ module CPEE
|
|
128
141
|
if (node = doc.find('/p:properties/p:status')).any?
|
129
142
|
CPEE::Properties::PutStatus::set id, opts, node.first.dump
|
130
143
|
end
|
131
|
-
if (node = doc.find('/p:properties/p:
|
132
|
-
CPEE::Properties::
|
144
|
+
if (node = doc.find('/p:properties/p:executionhandler')).any?
|
145
|
+
CPEE::Properties::PutExecutionHandler::set id, opts, node.first.text
|
133
146
|
end
|
134
147
|
|
135
148
|
%w{dataelements endpoints attributes}.each do |item|
|
@@ -169,8 +182,8 @@ module CPEE
|
|
169
182
|
if (node = doc.find('/p:properties/p:status')).any?
|
170
183
|
CPEE::Properties::PutStatus::set id, opts, node.first.dump
|
171
184
|
end
|
172
|
-
if (node = doc.find('/p:properties/p:
|
173
|
-
CPEE::Properties::
|
185
|
+
if (node = doc.find('/p:properties/p:executionhandler')).any?
|
186
|
+
CPEE::Properties::PutExecutionHandler::set id, opts, node.first.text
|
174
187
|
end
|
175
188
|
|
176
189
|
%w{dataelements endpoints attributes}.each do |item|
|
@@ -211,19 +224,14 @@ module CPEE
|
|
211
224
|
end
|
212
225
|
|
213
226
|
def self::run(id,opts,state)
|
214
|
-
exe = File.join(opts[:instances],id.to_s,File.basename(opts[:backend_run]))
|
215
227
|
case state
|
216
228
|
when 'running'
|
217
|
-
CPEE::Persistence::
|
218
|
-
|
219
|
-
|
220
|
-
File.write(exe + '.pid',pid)
|
229
|
+
seh = Object.const_get('CPEE::ExecutionHandler::' + CPEE::Persistence::extract_item(id,opts,'executionhandler').capitalize)
|
230
|
+
seh::prepare(id,opts)
|
231
|
+
seh::run(id,opts)
|
221
232
|
when 'stopping'
|
222
|
-
|
223
|
-
if
|
224
|
-
Process.kill('HUP', pid.to_i) rescue nil
|
225
|
-
else
|
226
|
-
File.unlink(exe + '.pid') rescue nil
|
233
|
+
seh = Object.const_get('CPEE::ExecutionHandler::' + CPEE::Persistence::extract_item(id,opts,'executionhandler').capitalize)
|
234
|
+
if seh::stop(id,opts) # process is not running anyway, so change redis
|
227
235
|
PutState::set id, opts, 'stopped'
|
228
236
|
end
|
229
237
|
else
|
@@ -302,16 +310,16 @@ module CPEE
|
|
302
310
|
Riddl::Parameter::Simple.new('value',CPEE::Persistence::extract_item(id,opts,'status/message'))
|
303
311
|
end
|
304
312
|
end #}}}
|
305
|
-
class
|
313
|
+
class GetExecutionHandler < Riddl::Implementation #{{{
|
306
314
|
def response
|
307
315
|
id = @a[0]
|
308
316
|
opts = @a[1]
|
309
|
-
Riddl::Parameter::Simple.new('value',CPEE::Persistence::extract_item(id,opts,'
|
317
|
+
Riddl::Parameter::Simple.new('value',CPEE::Persistence::extract_item(id,opts,'executionhandler'))
|
310
318
|
end
|
311
319
|
end #}}}
|
312
|
-
class
|
320
|
+
class PutExecutionHandler < Riddl::Implementation #{{{
|
313
321
|
def self::set(id,opts,hw)
|
314
|
-
CPEE::Persistence::set_item(id,opts,'
|
322
|
+
CPEE::Persistence::set_item(id,opts,'executionhandler',:executionhandler => hw)
|
315
323
|
end
|
316
324
|
def response
|
317
325
|
id = @a[0]
|
@@ -319,7 +327,7 @@ module CPEE
|
|
319
327
|
if opts[:statemachine].readonly? id
|
320
328
|
@status = 423
|
321
329
|
else
|
322
|
-
|
330
|
+
PutExecutionHandler::set(id,opts,@p[0].value)
|
323
331
|
end
|
324
332
|
nil
|
325
333
|
end
|
@@ -633,8 +641,103 @@ module CPEE
|
|
633
641
|
end #}}}
|
634
642
|
|
635
643
|
class PutDescription < Riddl::Implementation #{{{
|
644
|
+
def self::transform(descxml,tdesc,tdesctype,tdata,tdatatype,tendp,tendptype,hw,opts) #{{{
|
645
|
+
desc = XML::Smart::string(descxml)
|
646
|
+
desc.register_namespace 'p', 'http://cpee.org/ns/description/1.0'
|
647
|
+
|
648
|
+
dslx = nil
|
649
|
+
dsl = nil
|
650
|
+
de = {}
|
651
|
+
ep = {}
|
652
|
+
|
653
|
+
if desc.root.children.empty?
|
654
|
+
tdesctype = tdatatype = tendptype = 'clean'
|
655
|
+
end
|
656
|
+
|
657
|
+
### description transformation, including dslx to dsl
|
658
|
+
addit = if tdesctype == 'copy' || tdesc.empty?
|
659
|
+
desc
|
660
|
+
elsif tdesctype == 'rest' && !tdesc.empty?
|
661
|
+
srv = Riddl::Client.interface(tdesc,opts[:transformation_service])
|
662
|
+
status, res = srv.post [
|
663
|
+
Riddl::Parameter::Complex.new("description","text/xml",descxml),
|
664
|
+
Riddl::Parameter::Simple.new("type","description")
|
665
|
+
]
|
666
|
+
if status >= 200 && status < 300
|
667
|
+
XML::Smart::string(res[0].value.read).root
|
668
|
+
else
|
669
|
+
raise 'Could not extract dslx'
|
670
|
+
end
|
671
|
+
elsif tdesctype == 'xslt' && !tdesc.empty?
|
672
|
+
trans = XML::Smart::open_unprotected(tdesc)
|
673
|
+
desc.transform_with(trans).root
|
674
|
+
elsif tdesctype == 'clean'
|
675
|
+
XML::Smart::open_unprotected(opts[:empty_dslx]).root
|
676
|
+
else
|
677
|
+
nil
|
678
|
+
end
|
679
|
+
unless addit.nil?
|
680
|
+
dslx = addit.to_s
|
681
|
+
dsl = Object.const_get('CPEE::ExecutionHandler::' + hw.capitalize)::dslx_to_dsl(addit)
|
682
|
+
end
|
683
|
+
|
684
|
+
### dataelements extraction
|
685
|
+
addit = if tdatatype == 'rest' && !tdata.empty?
|
686
|
+
srv = Riddl::Client.interface(tdata,@opts[:transformation_service])
|
687
|
+
status, res = srv.post [
|
688
|
+
Riddl::Parameter::Complex.new("description","text/xml",descxml),
|
689
|
+
Riddl::Parameter::Simple.new("type","dataelements")
|
690
|
+
]
|
691
|
+
if status >= 200 && status < 300
|
692
|
+
res
|
693
|
+
else
|
694
|
+
raise 'Could not extract dataelements'
|
695
|
+
end
|
696
|
+
elsif tdatatype == 'xslt' && !tdata.empty?
|
697
|
+
trans = XML::Smart::open_unprotected(tdata)
|
698
|
+
desc.transform_with(trans)
|
699
|
+
elsif tdatatype == 'clean'
|
700
|
+
[]
|
701
|
+
else
|
702
|
+
nil
|
703
|
+
end
|
704
|
+
unless addit.nil?
|
705
|
+
addit.each_slice(2).each do |k,v|
|
706
|
+
de[k.value.to_sym] = v.value
|
707
|
+
end
|
708
|
+
end
|
709
|
+
|
710
|
+
### endpoints extraction
|
711
|
+
addit = if tendptype == 'rest' && !tdata.empty?
|
712
|
+
srv = Riddl::Client.interface(tendp,@opts[:transformation_service])
|
713
|
+
status, res = srv.post [
|
714
|
+
Riddl::Parameter::Complex.new("description","text/xml",descxml),
|
715
|
+
Riddl::Parameter::Simple.new("type","endpoints")
|
716
|
+
]
|
717
|
+
if status >= 200 && status < 300
|
718
|
+
res
|
719
|
+
else
|
720
|
+
raise 'Could not extract endpoints'
|
721
|
+
end
|
722
|
+
elsif tendptype == 'xslt' && !tdata.empty?
|
723
|
+
trans = XML::Smart::open_unprotected(tendp.text)
|
724
|
+
desc.transform_with(trans)
|
725
|
+
elsif tendptype == 'clean'
|
726
|
+
[]
|
727
|
+
else
|
728
|
+
nil
|
729
|
+
end
|
730
|
+
unless addit.nil?
|
731
|
+
addit.each_slice(2).each do |k,v|
|
732
|
+
ep[k.value.to_sym] = v.value
|
733
|
+
end
|
734
|
+
end
|
735
|
+
|
736
|
+
[dslx, dsl, de, ep]
|
737
|
+
end #}}}
|
738
|
+
|
636
739
|
def self::set(id,opts,xml)
|
637
|
-
dslx, dsl, de, ep = transform(
|
740
|
+
dslx, dsl, de, ep = PutDescription::transform(
|
638
741
|
xml,
|
639
742
|
CPEE::Persistence::extract_item(id,opts,'transformation/description'),
|
640
743
|
CPEE::Persistence::extract_item(id,opts,'transformation/description/@type'),
|
@@ -642,6 +745,7 @@ module CPEE
|
|
642
745
|
CPEE::Persistence::extract_item(id,opts,'transformation/dataelements/@type'),
|
643
746
|
CPEE::Persistence::extract_item(id,opts,'transformation/endpoints'),
|
644
747
|
CPEE::Persistence::extract_item(id,opts,'transformation/endpoints/@type'),
|
748
|
+
CPEE::Persistence::extract_item(id,opts,'executionhandler'),
|
645
749
|
opts
|
646
750
|
)
|
647
751
|
CPEE::Persistence::set_item(id,opts,'description',
|