cpee 1.3.102
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.
- data/AUTHORS +3 -0
- data/COPYING +165 -0
- data/FEATURES +28 -0
- data/INSTALL +23 -0
- data/README +7 -0
- data/Rakefile +28 -0
- data/cockpit/contrib/symbols.svg +224 -0
- data/cockpit/contrib/transformation1.xsl +264 -0
- data/cockpit/contrib/transformation2.xsl +10 -0
- data/cockpit/css/ui.css +155 -0
- data/cockpit/index.html +241 -0
- data/cockpit/js/details.js +146 -0
- data/cockpit/js/instance.js +927 -0
- data/cockpit/js/parameters.js +66 -0
- data/cockpit/js/ui.js +48 -0
- data/cockpit/js/wfadaptor.cpee.js +1082 -0
- data/cockpit/lib/contextmenu.css +72 -0
- data/cockpit/lib/contextmenu.js +63 -0
- data/cockpit/lib/jquery-ui.custom.min.js +259 -0
- data/cockpit/lib/jquery-ui.custom.min.txt +16 -0
- data/cockpit/lib/jquery.caret.min.js +10 -0
- data/cockpit/lib/jquery.min.js +4 -0
- data/cockpit/lib/jquery.svgdom.js +281 -0
- data/cockpit/lib/parsequery.js +19 -0
- data/cockpit/lib/printf.js +368 -0
- data/cockpit/lib/strftime.min.js +1 -0
- data/cockpit/lib/ui.css +270 -0
- data/cockpit/lib/ui.js +60 -0
- data/cockpit/lib/underscore.min.js +27 -0
- data/cockpit/lib/util.js +53 -0
- data/cockpit/lib/wfadaptor-doc/demo1.html +517 -0
- data/cockpit/lib/wfadaptor-doc/demo2.html +84 -0
- data/cockpit/lib/wfadaptor-doc/index.html +54 -0
- data/cockpit/lib/wfadaptor.css +217 -0
- data/cockpit/lib/wfadaptor.js +410 -0
- data/cockpit/testsets/ADVENTURE Dynamic Order.xml +353 -0
- data/cockpit/testsets/ADVENTURE Main Loop.xml +327 -0
- data/cockpit/testsets/ADVENTURE Order.xml +424 -0
- data/cockpit/testsets/ADVENTURE Performance Test 1.xml +311 -0
- data/cockpit/testsets/ADVENTURE Performance Test 2.xml +297 -0
- data/cockpit/testsets/Concurrent.xml +315 -0
- data/cockpit/testsets/Coopis Testset.xml +346 -0
- data/cockpit/testsets/Endpoints and Data Manipulation.xml +359 -0
- data/cockpit/testsets/ICSOC Testset.xml +354 -0
- data/cockpit/testsets/Linear.xml +328 -0
- data/cockpit/testsets/Mangler 1.xml +352 -0
- data/cockpit/testsets/Mangler 2.xml +372 -0
- data/cockpit/testsets/RESCUE - Book Movie - Local.xml +385 -0
- data/cockpit/testsets/RESCUE - Book Movie.xml +385 -0
- data/cockpit/testsets/RESCUE - Loop-Parallel Injection.xml +393 -0
- data/cockpit/testsets/SOPROMO Test Sonification.xml +356 -0
- data/cockpit/testsets/Syncing P34 1.xml +329 -0
- data/cockpit/testsets/Syncing P34 2.xml +329 -0
- data/cockpit/testsets/Syncing P34 3.xml +329 -0
- data/cockpit/testsets/Syncing P34.xml +329 -0
- data/cockpit/testsets/TEST - Bad Loop.xml +428 -0
- data/cockpit/testsets/TEST - Wrong Positions.xml +470 -0
- data/cockpit/testsets/index.xml +24 -0
- data/contrib/Screenshot at 2011-09-28 02:38:11.png +0 -0
- data/contrib/logo2-small.png +0 -0
- data/contrib/logo2.png +0 -0
- data/contrib/logo2.svg +7610 -0
- data/contrib/logo2a.png +0 -0
- data/contrib/logo2a.svg +367 -0
- data/cpee.gemspec +24 -0
- data/lib/cpee.xml +39 -0
- data/lib/cpee/callback.rb +40 -0
- data/lib/cpee/controller.rb +440 -0
- data/lib/cpee/empty_workflow.rb +24 -0
- data/lib/cpee/handler_notifications.rb +46 -0
- data/lib/cpee/handler_properties.rb +43 -0
- data/lib/cpee/implementation.rb +174 -0
- data/lib/engine.xml +85 -0
- data/lib/engine/callbacks.rng +41 -0
- data/lib/engine/instance-info.rng +41 -0
- data/lib/engine/instances.rng +38 -0
- data/server/handlerwrappers/default.rb +142 -0
- data/server/handlerwrappers/rescue.rb +216 -0
- data/server/handlerwrappers/soap.rb +152 -0
- data/server/instances/1/notifications/1d41ebf5e52bf039b3c3873fddb8e9bd/consumer-secret +1 -0
- data/server/instances/1/notifications/1d41ebf5e52bf039b3c3873fddb8e9bd/producer-secret +1 -0
- data/server/instances/1/notifications/1d41ebf5e52bf039b3c3873fddb8e9bd/subscription.xml +27 -0
- data/server/instances/1/notifications/66ad546f13c6c7c84f36215c24dd2e6e/consumer-secret +1 -0
- data/server/instances/1/notifications/66ad546f13c6c7c84f36215c24dd2e6e/producer-secret +1 -0
- data/server/instances/1/notifications/66ad546f13c6c7c84f36215c24dd2e6e/subscription.xml +27 -0
- data/server/instances/1/notifications/9f23b768395a19cc1dd6c2d2a243c78e/consumer-secret +1 -0
- data/server/instances/1/notifications/9f23b768395a19cc1dd6c2d2a243c78e/producer-secret +1 -0
- data/server/instances/1/notifications/9f23b768395a19cc1dd6c2d2a243c78e/subscription.xml +27 -0
- data/server/instances/1/notifications/fa690a88cc565dfa53b13ced355cd039/consumer-secret +1 -0
- data/server/instances/1/notifications/fa690a88cc565dfa53b13ced355cd039/producer-secret +1 -0
- data/server/instances/1/notifications/fa690a88cc565dfa53b13ced355cd039/subscription.xml +5 -0
- data/server/instances/1/properties.xml +522 -0
- data/server/instances/10/notifications/0867c4a937f882af259137e36d331261/consumer-secret +1 -0
- data/server/instances/10/notifications/0867c4a937f882af259137e36d331261/producer-secret +1 -0
- data/server/instances/10/notifications/0867c4a937f882af259137e36d331261/subscription.xml +27 -0
- data/server/instances/10/notifications/28acb605c56588ec8e47431c1fcf0b20/consumer-secret +1 -0
- data/server/instances/10/notifications/28acb605c56588ec8e47431c1fcf0b20/producer-secret +1 -0
- data/server/instances/10/notifications/28acb605c56588ec8e47431c1fcf0b20/subscription.xml +27 -0
- data/server/instances/10/notifications/31d3f699def1d1e86dc18ef421f718ad/consumer-secret +1 -0
- data/server/instances/10/notifications/31d3f699def1d1e86dc18ef421f718ad/producer-secret +1 -0
- data/server/instances/10/notifications/31d3f699def1d1e86dc18ef421f718ad/subscription.xml +27 -0
- data/server/instances/10/notifications/380b57220000c45342fc56a1ed8e9e3f/consumer-secret +1 -0
- data/server/instances/10/notifications/380b57220000c45342fc56a1ed8e9e3f/producer-secret +1 -0
- data/server/instances/10/notifications/380b57220000c45342fc56a1ed8e9e3f/subscription.xml +27 -0
- data/server/instances/10/notifications/41eeb5d90b513781fb4b440cb97ca7f1/consumer-secret +1 -0
- data/server/instances/10/notifications/41eeb5d90b513781fb4b440cb97ca7f1/producer-secret +1 -0
- data/server/instances/10/notifications/41eeb5d90b513781fb4b440cb97ca7f1/subscription.xml +27 -0
- data/server/instances/10/notifications/4d8c1b3a8dfdacac98144fad072c46d8/consumer-secret +1 -0
- data/server/instances/10/notifications/4d8c1b3a8dfdacac98144fad072c46d8/producer-secret +1 -0
- data/server/instances/10/notifications/4d8c1b3a8dfdacac98144fad072c46d8/subscription.xml +27 -0
- data/server/instances/10/notifications/4dde696cfb001e00a7efbd8e86ba227d/consumer-secret +1 -0
- data/server/instances/10/notifications/4dde696cfb001e00a7efbd8e86ba227d/producer-secret +1 -0
- data/server/instances/10/notifications/4dde696cfb001e00a7efbd8e86ba227d/subscription.xml +27 -0
- data/server/instances/10/notifications/4e1c0065dd95f7c175bbccb874f0baea/consumer-secret +1 -0
- data/server/instances/10/notifications/4e1c0065dd95f7c175bbccb874f0baea/producer-secret +1 -0
- data/server/instances/10/notifications/4e1c0065dd95f7c175bbccb874f0baea/subscription.xml +27 -0
- data/server/instances/10/notifications/6198fb7d6a8249f7820e3e57eeefa8af/consumer-secret +1 -0
- data/server/instances/10/notifications/6198fb7d6a8249f7820e3e57eeefa8af/producer-secret +1 -0
- data/server/instances/10/notifications/6198fb7d6a8249f7820e3e57eeefa8af/subscription.xml +27 -0
- data/server/instances/10/notifications/6aeb90da52abc150f0f0135d8ba2dbac/consumer-secret +1 -0
- data/server/instances/10/notifications/6aeb90da52abc150f0f0135d8ba2dbac/producer-secret +1 -0
- data/server/instances/10/notifications/6aeb90da52abc150f0f0135d8ba2dbac/subscription.xml +27 -0
- data/server/instances/10/notifications/6d77f5bac1eb9d6165394b6bfc9b492a/consumer-secret +1 -0
- data/server/instances/10/notifications/6d77f5bac1eb9d6165394b6bfc9b492a/producer-secret +1 -0
- data/server/instances/10/notifications/6d77f5bac1eb9d6165394b6bfc9b492a/subscription.xml +27 -0
- data/server/instances/10/notifications/7092411a6bb6822f651798fdcd3c4787/consumer-secret +1 -0
- data/server/instances/10/notifications/7092411a6bb6822f651798fdcd3c4787/producer-secret +1 -0
- data/server/instances/10/notifications/7092411a6bb6822f651798fdcd3c4787/subscription.xml +27 -0
- data/server/instances/10/notifications/7ab29bbad4122295c05f9e33fd1e0fc3/consumer-secret +1 -0
- data/server/instances/10/notifications/7ab29bbad4122295c05f9e33fd1e0fc3/producer-secret +1 -0
- data/server/instances/10/notifications/7ab29bbad4122295c05f9e33fd1e0fc3/subscription.xml +27 -0
- data/server/instances/10/notifications/7fabcecc57fe0bd27ce50bedaef47bd2/consumer-secret +1 -0
- data/server/instances/10/notifications/7fabcecc57fe0bd27ce50bedaef47bd2/producer-secret +1 -0
- data/server/instances/10/notifications/7fabcecc57fe0bd27ce50bedaef47bd2/subscription.xml +27 -0
- data/server/instances/10/notifications/85760dad8f7abbd73ae1dd44140dabf1/consumer-secret +1 -0
- data/server/instances/10/notifications/85760dad8f7abbd73ae1dd44140dabf1/producer-secret +1 -0
- data/server/instances/10/notifications/85760dad8f7abbd73ae1dd44140dabf1/subscription.xml +27 -0
- data/server/instances/10/notifications/8b9a96d109d44a1fc22858006c0f0e16/consumer-secret +1 -0
- data/server/instances/10/notifications/8b9a96d109d44a1fc22858006c0f0e16/producer-secret +1 -0
- data/server/instances/10/notifications/8b9a96d109d44a1fc22858006c0f0e16/subscription.xml +27 -0
- data/server/instances/10/notifications/9120a477e64d7debae2cda964a9948a0/consumer-secret +1 -0
- data/server/instances/10/notifications/9120a477e64d7debae2cda964a9948a0/producer-secret +1 -0
- data/server/instances/10/notifications/9120a477e64d7debae2cda964a9948a0/subscription.xml +27 -0
- data/server/instances/10/notifications/93c5a5ab72a745c0f9fffe2fe58db205/consumer-secret +1 -0
- data/server/instances/10/notifications/93c5a5ab72a745c0f9fffe2fe58db205/producer-secret +1 -0
- data/server/instances/10/notifications/93c5a5ab72a745c0f9fffe2fe58db205/subscription.xml +27 -0
- data/server/instances/10/notifications/a8db1498388588bddf518878263fd898/consumer-secret +1 -0
- data/server/instances/10/notifications/a8db1498388588bddf518878263fd898/producer-secret +1 -0
- data/server/instances/10/notifications/a8db1498388588bddf518878263fd898/subscription.xml +27 -0
- data/server/instances/10/notifications/b534f057c1c97f65e68f59427958e78d/consumer-secret +1 -0
- data/server/instances/10/notifications/b534f057c1c97f65e68f59427958e78d/producer-secret +1 -0
- data/server/instances/10/notifications/b534f057c1c97f65e68f59427958e78d/subscription.xml +27 -0
- data/server/instances/10/notifications/bb3d69ee3df32f3b5cb69a51d1af8ae4/consumer-secret +1 -0
- data/server/instances/10/notifications/bb3d69ee3df32f3b5cb69a51d1af8ae4/producer-secret +1 -0
- data/server/instances/10/notifications/bb3d69ee3df32f3b5cb69a51d1af8ae4/subscription.xml +27 -0
- data/server/instances/10/notifications/bc597391804363834987804436b8b63b/consumer-secret +1 -0
- data/server/instances/10/notifications/bc597391804363834987804436b8b63b/producer-secret +1 -0
- data/server/instances/10/notifications/bc597391804363834987804436b8b63b/subscription.xml +27 -0
- data/server/instances/10/notifications/bf2f6599eebcd9a08e47bdafd4a67660/consumer-secret +1 -0
- data/server/instances/10/notifications/bf2f6599eebcd9a08e47bdafd4a67660/producer-secret +1 -0
- data/server/instances/10/notifications/bf2f6599eebcd9a08e47bdafd4a67660/subscription.xml +27 -0
- data/server/instances/10/notifications/db9cf0ae80bd61e6124c382b992a1550/consumer-secret +1 -0
- data/server/instances/10/notifications/db9cf0ae80bd61e6124c382b992a1550/producer-secret +1 -0
- data/server/instances/10/notifications/db9cf0ae80bd61e6124c382b992a1550/subscription.xml +27 -0
- data/server/instances/10/notifications/e528089610c991500eb2e8b094f6f169/consumer-secret +1 -0
- data/server/instances/10/notifications/e528089610c991500eb2e8b094f6f169/producer-secret +1 -0
- data/server/instances/10/notifications/e528089610c991500eb2e8b094f6f169/subscription.xml +27 -0
- data/server/instances/10/notifications/e7d3ca382d26b5f5eba00c40c29827da/consumer-secret +1 -0
- data/server/instances/10/notifications/e7d3ca382d26b5f5eba00c40c29827da/producer-secret +1 -0
- data/server/instances/10/notifications/e7d3ca382d26b5f5eba00c40c29827da/subscription.xml +27 -0
- data/server/instances/10/notifications/ebdc914fde6fe299143ae4601c142738/consumer-secret +1 -0
- data/server/instances/10/notifications/ebdc914fde6fe299143ae4601c142738/producer-secret +1 -0
- data/server/instances/10/notifications/ebdc914fde6fe299143ae4601c142738/subscription.xml +27 -0
- data/server/instances/10/notifications/f26b2b9efc10b9259647cf1a2b934694/consumer-secret +1 -0
- data/server/instances/10/notifications/f26b2b9efc10b9259647cf1a2b934694/producer-secret +1 -0
- data/server/instances/10/notifications/f26b2b9efc10b9259647cf1a2b934694/subscription.xml +27 -0
- data/server/instances/10/notifications/f4e1d7808171fe7c5fab4a99145ea185/consumer-secret +1 -0
- data/server/instances/10/notifications/f4e1d7808171fe7c5fab4a99145ea185/producer-secret +1 -0
- data/server/instances/10/notifications/f4e1d7808171fe7c5fab4a99145ea185/subscription.xml +27 -0
- data/server/instances/10/notifications/f7e947a1b4b32f3dad5debd44fc3236b/consumer-secret +1 -0
- data/server/instances/10/notifications/f7e947a1b4b32f3dad5debd44fc3236b/producer-secret +1 -0
- data/server/instances/10/notifications/f7e947a1b4b32f3dad5debd44fc3236b/subscription.xml +27 -0
- data/server/instances/10/notifications/fbf5d0ae050a50e8a2fca6bc60f5b8d6/consumer-secret +1 -0
- data/server/instances/10/notifications/fbf5d0ae050a50e8a2fca6bc60f5b8d6/producer-secret +1 -0
- data/server/instances/10/notifications/fbf5d0ae050a50e8a2fca6bc60f5b8d6/subscription.xml +27 -0
- data/server/instances/10/properties.xml +388 -0
- data/server/instances/11/notifications/134c18da209261bc409ccd137b2e46d3/consumer-secret +1 -0
- data/server/instances/11/notifications/134c18da209261bc409ccd137b2e46d3/producer-secret +1 -0
- data/server/instances/11/notifications/134c18da209261bc409ccd137b2e46d3/subscription.xml +27 -0
- data/server/instances/11/notifications/48862f47f66e8229582bc91fbc38a512/consumer-secret +1 -0
- data/server/instances/11/notifications/48862f47f66e8229582bc91fbc38a512/producer-secret +1 -0
- data/server/instances/11/notifications/48862f47f66e8229582bc91fbc38a512/subscription.xml +5 -0
- data/server/instances/11/properties.xml +517 -0
- data/server/instances/2/notifications/0bbfabbebf46b850383b4e1d7bd926e3/consumer-secret +1 -0
- data/server/instances/2/notifications/0bbfabbebf46b850383b4e1d7bd926e3/producer-secret +1 -0
- data/server/instances/2/notifications/0bbfabbebf46b850383b4e1d7bd926e3/subscription.xml +27 -0
- data/server/instances/2/notifications/1d426895d19caa1471c713e80cc3c845/consumer-secret +1 -0
- data/server/instances/2/notifications/1d426895d19caa1471c713e80cc3c845/producer-secret +1 -0
- data/server/instances/2/notifications/1d426895d19caa1471c713e80cc3c845/subscription.xml +27 -0
- data/server/instances/2/notifications/292c8983aa798f0c5ced5ddc4b58abe4/consumer-secret +1 -0
- data/server/instances/2/notifications/292c8983aa798f0c5ced5ddc4b58abe4/producer-secret +1 -0
- data/server/instances/2/notifications/292c8983aa798f0c5ced5ddc4b58abe4/subscription.xml +27 -0
- data/server/instances/2/notifications/332c3026c8ad3075b092bd7e7a2b4f71/consumer-secret +1 -0
- data/server/instances/2/notifications/332c3026c8ad3075b092bd7e7a2b4f71/producer-secret +1 -0
- data/server/instances/2/notifications/332c3026c8ad3075b092bd7e7a2b4f71/subscription.xml +27 -0
- data/server/instances/2/notifications/d377446918808d23d03291fc1140883c/consumer-secret +1 -0
- data/server/instances/2/notifications/d377446918808d23d03291fc1140883c/producer-secret +1 -0
- data/server/instances/2/notifications/d377446918808d23d03291fc1140883c/subscription.xml +27 -0
- data/server/instances/2/notifications/d5b65c7cbff5d259e4ee8405190ec558/consumer-secret +1 -0
- data/server/instances/2/notifications/d5b65c7cbff5d259e4ee8405190ec558/producer-secret +1 -0
- data/server/instances/2/notifications/d5b65c7cbff5d259e4ee8405190ec558/subscription.xml +27 -0
- data/server/instances/2/notifications/d7ee4fedabb402dc43986dfa199e6768/consumer-secret +1 -0
- data/server/instances/2/notifications/d7ee4fedabb402dc43986dfa199e6768/producer-secret +1 -0
- data/server/instances/2/notifications/d7ee4fedabb402dc43986dfa199e6768/subscription.xml +5 -0
- data/server/instances/2/properties.xml +517 -0
- data/server/instances/3/notifications/27195e2503deaf25b3291394fe97985c/consumer-secret +1 -0
- data/server/instances/3/notifications/27195e2503deaf25b3291394fe97985c/producer-secret +1 -0
- data/server/instances/3/notifications/27195e2503deaf25b3291394fe97985c/subscription.xml +5 -0
- data/server/instances/3/notifications/6cec45935d78709a4aa6622491006f4b/consumer-secret +1 -0
- data/server/instances/3/notifications/6cec45935d78709a4aa6622491006f4b/producer-secret +1 -0
- data/server/instances/3/notifications/6cec45935d78709a4aa6622491006f4b/subscription.xml +27 -0
- data/server/instances/3/notifications/755542b2fb8d0c8fb9add29e012ec707/consumer-secret +1 -0
- data/server/instances/3/notifications/755542b2fb8d0c8fb9add29e012ec707/producer-secret +1 -0
- data/server/instances/3/notifications/755542b2fb8d0c8fb9add29e012ec707/subscription.xml +27 -0
- data/server/instances/3/properties.xml +517 -0
- data/server/instances/4/notifications/151e90db818eb5812905257a8eb7cea4/consumer-secret +1 -0
- data/server/instances/4/notifications/151e90db818eb5812905257a8eb7cea4/producer-secret +1 -0
- data/server/instances/4/notifications/151e90db818eb5812905257a8eb7cea4/subscription.xml +5 -0
- data/server/instances/4/notifications/a89df398fcc088c067c39ae3974ec57f/consumer-secret +1 -0
- data/server/instances/4/notifications/a89df398fcc088c067c39ae3974ec57f/producer-secret +1 -0
- data/server/instances/4/notifications/a89df398fcc088c067c39ae3974ec57f/subscription.xml +27 -0
- data/server/instances/4/properties.xml +517 -0
- data/server/instances/5/notifications/02ebbf888bd3efd11924f4c416d784e4/consumer-secret +1 -0
- data/server/instances/5/notifications/02ebbf888bd3efd11924f4c416d784e4/producer-secret +1 -0
- data/server/instances/5/notifications/02ebbf888bd3efd11924f4c416d784e4/subscription.xml +27 -0
- data/server/instances/5/notifications/0b9589d847cccf768013b6082893bce6/consumer-secret +1 -0
- data/server/instances/5/notifications/0b9589d847cccf768013b6082893bce6/producer-secret +1 -0
- data/server/instances/5/notifications/0b9589d847cccf768013b6082893bce6/subscription.xml +5 -0
- data/server/instances/5/properties.xml +517 -0
- data/server/instances/6/notifications/23da9f5c4548f384d625e6d12b3ebe2d/consumer-secret +1 -0
- data/server/instances/6/notifications/23da9f5c4548f384d625e6d12b3ebe2d/producer-secret +1 -0
- data/server/instances/6/notifications/23da9f5c4548f384d625e6d12b3ebe2d/subscription.xml +5 -0
- data/server/instances/6/notifications/282e7077e9c5b9972413cc92a6dcffc3/consumer-secret +1 -0
- data/server/instances/6/notifications/282e7077e9c5b9972413cc92a6dcffc3/producer-secret +1 -0
- data/server/instances/6/notifications/282e7077e9c5b9972413cc92a6dcffc3/subscription.xml +27 -0
- data/server/instances/6/notifications/7e57d7438db8210766eab6873124dc02/consumer-secret +1 -0
- data/server/instances/6/notifications/7e57d7438db8210766eab6873124dc02/producer-secret +1 -0
- data/server/instances/6/notifications/7e57d7438db8210766eab6873124dc02/subscription.xml +27 -0
- data/server/instances/6/properties.xml +517 -0
- data/server/instances/7/notifications/7276b795b5ed2f6638473526d9b1b1e1/consumer-secret +1 -0
- data/server/instances/7/notifications/7276b795b5ed2f6638473526d9b1b1e1/producer-secret +1 -0
- data/server/instances/7/notifications/7276b795b5ed2f6638473526d9b1b1e1/subscription.xml +27 -0
- data/server/instances/7/notifications/f3fbbf27fcbcc02a9f8a614326461a5c/consumer-secret +1 -0
- data/server/instances/7/notifications/f3fbbf27fcbcc02a9f8a614326461a5c/producer-secret +1 -0
- data/server/instances/7/notifications/f3fbbf27fcbcc02a9f8a614326461a5c/subscription.xml +5 -0
- data/server/instances/7/properties.xml +517 -0
- data/server/instances/8/notifications/2854ed5a8f97a33d31f908f67544ec62/consumer-secret +1 -0
- data/server/instances/8/notifications/2854ed5a8f97a33d31f908f67544ec62/producer-secret +1 -0
- data/server/instances/8/notifications/2854ed5a8f97a33d31f908f67544ec62/subscription.xml +27 -0
- data/server/instances/8/notifications/595259518a5cb2ce286bb39840f7a64c/consumer-secret +1 -0
- data/server/instances/8/notifications/595259518a5cb2ce286bb39840f7a64c/producer-secret +1 -0
- data/server/instances/8/notifications/595259518a5cb2ce286bb39840f7a64c/subscription.xml +5 -0
- data/server/instances/8/properties.xml +517 -0
- data/server/instances/9/notifications/54e96913d66f1dd69ec82d2b52268232/consumer-secret +1 -0
- data/server/instances/9/notifications/54e96913d66f1dd69ec82d2b52268232/producer-secret +1 -0
- data/server/instances/9/notifications/54e96913d66f1dd69ec82d2b52268232/subscription.xml +5 -0
- data/server/instances/9/notifications/5debc1fd138fdc80940cd5647003ed45/consumer-secret +1 -0
- data/server/instances/9/notifications/5debc1fd138fdc80940cd5647003ed45/producer-secret +1 -0
- data/server/instances/9/notifications/5debc1fd138fdc80940cd5647003ed45/subscription.xml +27 -0
- data/server/instances/9/properties.xml +517 -0
- data/server/resources/properties.init +351 -0
- data/server/resources/properties.schema.active +79 -0
- data/server/resources/properties.schema.finished +79 -0
- data/server/resources/properties.schema.inactive +79 -0
- data/server/resources/topics.xml +55 -0
- data/server/server.rb +25 -0
- data/server/todo.txt +20 -0
- data/test/delete.rb +27 -0
- data/test/load.rb +55 -0
- data/test/testset.xml +297 -0
- metadata +382 -0
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
class NotificationsHandler < Riddl::Utils::Notifications::Producer::HandlerBase
|
|
16
|
+
def ws_open(socket)
|
|
17
|
+
@data.add_ws(@key,socket)
|
|
18
|
+
end
|
|
19
|
+
def ws_close
|
|
20
|
+
@data.del_ws(@key)
|
|
21
|
+
end
|
|
22
|
+
def ws_message(data)
|
|
23
|
+
begin
|
|
24
|
+
doc = XML::Smart::string(data)
|
|
25
|
+
callback = doc.find("string(/vote/@id)")
|
|
26
|
+
result = doc.find("string(/vote)")
|
|
27
|
+
@data.callbacks[callback].callback(result == 'true' ? true : false)
|
|
28
|
+
@data.callbacks.delete(callback)
|
|
29
|
+
rescue
|
|
30
|
+
puts "Invalid message over websocket"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def create
|
|
35
|
+
@data.unserialize_notifications!(:cre,@key)
|
|
36
|
+
@data.notify('properties/handlers/change')
|
|
37
|
+
end
|
|
38
|
+
def delete
|
|
39
|
+
@data.unserialize_notifications!(:del,@key)
|
|
40
|
+
@data.notify('properties/handlers/change')
|
|
41
|
+
end
|
|
42
|
+
def update
|
|
43
|
+
@data.unserialize_notifications!(:upd,@key)
|
|
44
|
+
@data.notify('properties/handlers/change')
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
class PropertiesHandler < Riddl::Utils::Properties::HandlerBase
|
|
16
|
+
def sync
|
|
17
|
+
case @property
|
|
18
|
+
when 'handlerwrapper'
|
|
19
|
+
@data.unserialize_handlerwrapper!
|
|
20
|
+
@data.notify('properties/handlerwrapper/change')
|
|
21
|
+
when 'description'
|
|
22
|
+
@data.unserialize_description!
|
|
23
|
+
@data.notify('properties/description/change')
|
|
24
|
+
when 'endpoints'
|
|
25
|
+
@data.unserialize_endpoints!
|
|
26
|
+
@data.notify('properties/endpoints/change')
|
|
27
|
+
when 'dataelements'
|
|
28
|
+
@data.unserialize_dataelements!
|
|
29
|
+
@data.notify('properties/dataelements/change')
|
|
30
|
+
when 'positions'
|
|
31
|
+
@data.unserialize_positions!
|
|
32
|
+
@data.notify('properties/position/change')
|
|
33
|
+
when 'state'
|
|
34
|
+
@data.unserialize_state!
|
|
35
|
+
else
|
|
36
|
+
nil
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def create; sync; end
|
|
41
|
+
def update; sync; end
|
|
42
|
+
def delete; sync; end
|
|
43
|
+
end
|
|
@@ -0,0 +1,174 @@
|
|
|
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 'fileutils'
|
|
16
|
+
require 'riddl/server'
|
|
17
|
+
require 'riddl/client'
|
|
18
|
+
require 'riddl/utils/notifications_producer'
|
|
19
|
+
require 'riddl/utils/properties'
|
|
20
|
+
require ::File.dirname(__FILE__) + '/controller'
|
|
21
|
+
|
|
22
|
+
module CPEE
|
|
23
|
+
|
|
24
|
+
SERVER = File.expand_path(File.dirname(__FILE__) + '/../cpee.xml')
|
|
25
|
+
|
|
26
|
+
def self::implementation(opts)
|
|
27
|
+
opts[:instances] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/instances')
|
|
28
|
+
opts[:handlerwrappers] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/handlerwrappers')
|
|
29
|
+
opts[:topics] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/resources/topics.xml')
|
|
30
|
+
opts[:properties_init] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/resources/properties.init')
|
|
31
|
+
opts[:properties_schema_active] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/resources/properties.schema.active')
|
|
32
|
+
opts[:properties_schema_finished] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/resources/properties.schema.finished')
|
|
33
|
+
opts[:properties_schema_inactive] ||= File.expand_path(File.dirname(__FILE__) + '/../../server/resources/properties.schema.inactive')
|
|
34
|
+
|
|
35
|
+
Proc.new do
|
|
36
|
+
controller = {}
|
|
37
|
+
Dir[opts[:instances] + '/*/properties.xml'].map{|e|::File::basename(::File::dirname(e))}.each do |id|
|
|
38
|
+
controller[id.to_i] = Controller.new(id,opts)
|
|
39
|
+
end
|
|
40
|
+
Dir[opts[:handlerwrappers] + "/*.rb"].each do |h|
|
|
41
|
+
require h
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
interface 'properties' do |r|
|
|
45
|
+
id = r[:h]['RIDDL_DECLARATION_PATH'].split('/')[1].to_i
|
|
46
|
+
use Riddl::Utils::Properties::implementation(controller[id].properties, PropertiesHandler.new(controller[id]), opts[:mode]) if controller[id]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
interface 'main' do
|
|
50
|
+
run CPEE::Instances, controller if get '*'
|
|
51
|
+
run CPEE::NewInstance, controller, opts if post 'instance-name'
|
|
52
|
+
on resource do |r|
|
|
53
|
+
run CPEE::Info, controller if get
|
|
54
|
+
run CPEE::DeleteInstance, controller, opts if delete
|
|
55
|
+
on resource 'callbacks' do
|
|
56
|
+
run CPEE::Callbacks, controller, opts if get
|
|
57
|
+
on resource do
|
|
58
|
+
run CPEE::ExCallback, controller if get || put || post || delete
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
interface 'notifications' do |r|
|
|
65
|
+
id = r[:h]['RIDDL_DECLARATION_PATH'].split('/')[1].to_i
|
|
66
|
+
use Riddl::Utils::Notifications::Producer::implementation(controller[id].notifications, NotificationsHandler.new(controller[id]), opts[:mode]) if controller[id]
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class ExCallback < Riddl::Implementation #{{{
|
|
72
|
+
def response
|
|
73
|
+
controller = @a[0]
|
|
74
|
+
id = @r[0].to_i
|
|
75
|
+
callback = @r[2]
|
|
76
|
+
controller[id].mutex.synchronize do
|
|
77
|
+
if controller[id].callbacks.has_key?(callback) then
|
|
78
|
+
controller[id].callbacks[callback].callback(@p)
|
|
79
|
+
controller[id].callbacks.delete(callback)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end #}}}
|
|
84
|
+
|
|
85
|
+
class Callbacks < Riddl::Implementation #{{{
|
|
86
|
+
def response
|
|
87
|
+
controller = @a[0]
|
|
88
|
+
opts = @a[1]
|
|
89
|
+
id = @r[0].to_i
|
|
90
|
+
unless controller[id]
|
|
91
|
+
@status = 400
|
|
92
|
+
return
|
|
93
|
+
end
|
|
94
|
+
Riddl::Parameter::Complex.new("info","text/xml") do
|
|
95
|
+
cb = XML::Smart::string("<callbacks details='#{opts[:mode]}'/>")
|
|
96
|
+
if opts[:mode] == :debug
|
|
97
|
+
controller[id].callbacks.each do |k,v|
|
|
98
|
+
cb.root.add("callback",{"id" => k},"[#{v.protocol.to_s}] #{v.info}")
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
cb.to_s
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end #}}}
|
|
105
|
+
|
|
106
|
+
class Instances < Riddl::Implementation #{{{
|
|
107
|
+
def response
|
|
108
|
+
controller = @a[0]
|
|
109
|
+
Riddl::Parameter::Complex.new("wis","text/xml") do
|
|
110
|
+
ins = XML::Smart::string('<instances/>')
|
|
111
|
+
controller.each do |k,v|
|
|
112
|
+
name = v.properties.data.find("string(/p:properties/p:name)")
|
|
113
|
+
state = v.properties.data.find("string(/p:properties/p:state)")
|
|
114
|
+
ins.root.add('instance',name, 'id' => k, 'state' => state)
|
|
115
|
+
end
|
|
116
|
+
ins.to_s
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end #}}}
|
|
120
|
+
|
|
121
|
+
class NewInstance < Riddl::Implementation #{{{
|
|
122
|
+
def response
|
|
123
|
+
controller = @a[0]
|
|
124
|
+
opts = @a[1]
|
|
125
|
+
name = @p[0].value
|
|
126
|
+
id = controller.keys.sort.last.to_i
|
|
127
|
+
while true
|
|
128
|
+
id += 1
|
|
129
|
+
Dir.mkdir(opts[:instances] + "/#{id}") rescue nil
|
|
130
|
+
break
|
|
131
|
+
end
|
|
132
|
+
controller[id] = Controller.new(id,opts)
|
|
133
|
+
controller[id].properties.data.find("/p:properties/p:name").first.text = name
|
|
134
|
+
|
|
135
|
+
Riddl::Parameter::Simple.new("id", id)
|
|
136
|
+
end
|
|
137
|
+
end #}}}
|
|
138
|
+
|
|
139
|
+
class Info < Riddl::Implementation #{{{
|
|
140
|
+
def response
|
|
141
|
+
controller = @a[0]
|
|
142
|
+
id = @r[0].to_i
|
|
143
|
+
unless controller[id]
|
|
144
|
+
@status = 400
|
|
145
|
+
return
|
|
146
|
+
end
|
|
147
|
+
Riddl::Parameter::Complex.new("info","text/xml") do
|
|
148
|
+
i = XML::Smart::string <<-END
|
|
149
|
+
<info instance='#{@r[0]}'>
|
|
150
|
+
<notifications/>
|
|
151
|
+
<properties/>
|
|
152
|
+
<callbacks/>
|
|
153
|
+
</info>
|
|
154
|
+
END
|
|
155
|
+
i.to_s
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end #}}}
|
|
159
|
+
|
|
160
|
+
class DeleteInstance < Riddl::Implementation #{{{
|
|
161
|
+
def response
|
|
162
|
+
controller = @a[0]
|
|
163
|
+
opts = @a[1]
|
|
164
|
+
id = @r[0].to_i
|
|
165
|
+
unless controller[id]
|
|
166
|
+
@status = 400
|
|
167
|
+
return
|
|
168
|
+
end
|
|
169
|
+
controller.delete(id)
|
|
170
|
+
FileUtils.rm_r(opts[:instances] + "/#{@r[0]}")
|
|
171
|
+
end
|
|
172
|
+
end #}}}
|
|
173
|
+
|
|
174
|
+
end
|
data/lib/engine.xml
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
<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">
|
|
18
|
+
|
|
19
|
+
<message name="list-of-workflow-instances">
|
|
20
|
+
<parameter name="wis" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
|
|
21
|
+
<xi:include href="engine/instances.rng"/>
|
|
22
|
+
</parameter>
|
|
23
|
+
</message>
|
|
24
|
+
|
|
25
|
+
<message name="instance-id">
|
|
26
|
+
<parameter name="id" type="integer"/>
|
|
27
|
+
</message>
|
|
28
|
+
|
|
29
|
+
<message name="instance-name">
|
|
30
|
+
<parameter name="name" type="string"/>
|
|
31
|
+
</message>
|
|
32
|
+
|
|
33
|
+
<message name="instance-info">
|
|
34
|
+
<parameter name="info" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
|
|
35
|
+
<xi:include href="engine/instance-info.rng"/>
|
|
36
|
+
</parameter>
|
|
37
|
+
</message>
|
|
38
|
+
<message name="callbacks">
|
|
39
|
+
<parameter name="info" mimetype="text/xml" handler="http://riddl.org/ns/handlers/relaxng">
|
|
40
|
+
<xi:include href="engine/callbacks.rng"/>
|
|
41
|
+
</parameter>
|
|
42
|
+
</message>
|
|
43
|
+
<message name="xsl">
|
|
44
|
+
<parameter name="xsl" mimetype="application/xml"/>
|
|
45
|
+
</message>
|
|
46
|
+
|
|
47
|
+
<message name="message">
|
|
48
|
+
<parameter name="type" type="integer"/>
|
|
49
|
+
<parameter name="message" type="string"/>
|
|
50
|
+
<optional>
|
|
51
|
+
<parameter name="details" mimetype="text/xml"/>
|
|
52
|
+
<parameter name="details" mimetype="text/yaml"/>
|
|
53
|
+
</optional>
|
|
54
|
+
</message>
|
|
55
|
+
|
|
56
|
+
<resource>
|
|
57
|
+
<get in="*" out="list-of-workflow-instances"/>
|
|
58
|
+
<post in="instance-name" out="instance-id"/>
|
|
59
|
+
<resource>
|
|
60
|
+
<get in="*" out="instance-info"/>
|
|
61
|
+
<delete in="*"/>
|
|
62
|
+
<resource relative="callbacks">
|
|
63
|
+
<get in="*" out="callbacks"/>
|
|
64
|
+
<resource>
|
|
65
|
+
<put in="*"/>
|
|
66
|
+
</resource>
|
|
67
|
+
</resource>
|
|
68
|
+
<resource relative="notifications">
|
|
69
|
+
<resource relative="subscriptions">
|
|
70
|
+
<resource>
|
|
71
|
+
<resource relative="debug">
|
|
72
|
+
<put in="message"/>
|
|
73
|
+
</resource>
|
|
74
|
+
<resource relative="error">
|
|
75
|
+
<put in="message"/>
|
|
76
|
+
</resource>
|
|
77
|
+
<resource relative="info">
|
|
78
|
+
<put in="message"/>
|
|
79
|
+
</resource>
|
|
80
|
+
</resource>
|
|
81
|
+
</resource>
|
|
82
|
+
</resource>
|
|
83
|
+
</resource>
|
|
84
|
+
</resource>
|
|
85
|
+
</description>
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
18
|
+
<start>
|
|
19
|
+
<element name="callbacks">
|
|
20
|
+
<attribute name="details">
|
|
21
|
+
<choice>
|
|
22
|
+
<value>debug</value>
|
|
23
|
+
<value>production</value>
|
|
24
|
+
</choice>
|
|
25
|
+
</attribute>
|
|
26
|
+
<zeroOrMore>
|
|
27
|
+
<ref name="callback"/>
|
|
28
|
+
</zeroOrMore>
|
|
29
|
+
</element>
|
|
30
|
+
</start>
|
|
31
|
+
|
|
32
|
+
<define name="callback">
|
|
33
|
+
<element name='callback'>
|
|
34
|
+
<attribute name='id'>
|
|
35
|
+
<data type="string"/>
|
|
36
|
+
</attribute>
|
|
37
|
+
<data type="string"/>
|
|
38
|
+
</element>
|
|
39
|
+
</define>
|
|
40
|
+
|
|
41
|
+
</grammar>
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
18
|
+
<start>
|
|
19
|
+
<element name="info">
|
|
20
|
+
<attribute name='instance'>
|
|
21
|
+
<data type="integer"/>
|
|
22
|
+
</attribute>
|
|
23
|
+
<zeroOrMore>
|
|
24
|
+
<ref name="info"/>
|
|
25
|
+
</zeroOrMore>
|
|
26
|
+
</element>
|
|
27
|
+
</start>
|
|
28
|
+
|
|
29
|
+
<define name="info">
|
|
30
|
+
<element name="notifications">
|
|
31
|
+
<empty/>
|
|
32
|
+
</element>
|
|
33
|
+
<element name="properties">
|
|
34
|
+
<empty/>
|
|
35
|
+
</element>
|
|
36
|
+
<element name="callbacks">
|
|
37
|
+
<data type="string"/>
|
|
38
|
+
</element>
|
|
39
|
+
</define>
|
|
40
|
+
|
|
41
|
+
</grammar>
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
18
|
+
<start>
|
|
19
|
+
<element name="instances">
|
|
20
|
+
<zeroOrMore>
|
|
21
|
+
<ref name="instance"/>
|
|
22
|
+
</zeroOrMore>
|
|
23
|
+
</element>
|
|
24
|
+
</start>
|
|
25
|
+
|
|
26
|
+
<define name="instance">
|
|
27
|
+
<element name='instance'>
|
|
28
|
+
<attribute name='id'>
|
|
29
|
+
<data type="integer"/>
|
|
30
|
+
</attribute>
|
|
31
|
+
<attribute name='state'>
|
|
32
|
+
<data type="string"/>
|
|
33
|
+
</attribute>
|
|
34
|
+
<data type="string"/>
|
|
35
|
+
</element>
|
|
36
|
+
</define>
|
|
37
|
+
|
|
38
|
+
</grammar>
|