cpee 1.5.20 → 2.0

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.
Files changed (360) hide show
  1. checksums.yaml +4 -4
  2. data/{FEATURES → FEATURES.md} +7 -6
  3. data/INSTALL.md +1 -0
  4. data/{README → README.md} +3 -3
  5. data/Rakefile +1 -0
  6. data/cockpit/index.html +8 -8
  7. data/cockpit/js/details.js +13 -14
  8. data/cockpit/js/instance.js +192 -290
  9. data/cockpit/js/parameters.js +13 -3
  10. data/cockpit/js/ui.js +2 -2
  11. data/cockpit/rngs/attributes.rng +3 -3
  12. data/cockpit/rngs/dataelements.rng +3 -3
  13. data/cockpit/rngs/endpoints.rng +3 -3
  14. data/cockpit/{testsets → templates.legacy}/Async.xml +7 -7
  15. data/cockpit/{testsets → templates.legacy}/BCO.xml +7 -10
  16. data/cockpit/{testsets → templates.legacy}/BCS.xml +7 -10
  17. data/cockpit/{testsets → templates.legacy}/Centurio.xml +6 -6
  18. data/cockpit/{testsets → templates.legacy}/Concurrent.xml +6 -6
  19. data/cockpit/{testsets → templates.legacy}/Coopis Testset.xml +6 -6
  20. data/cockpit/{testsets → templates.legacy}/Endpoints and Data Manipulation.xml +6 -6
  21. data/cockpit/{testsets → templates.legacy}/ICSOC Testset.xml +6 -6
  22. data/cockpit/{testsets → templates.legacy}/Infinity.xml +3 -3
  23. data/cockpit/{testsets → templates.legacy}/Lego Boxer.xml +7 -7
  24. data/cockpit/{testsets → templates.legacy}/Lego Conveyor.xml +7 -7
  25. data/cockpit/{testsets → templates.legacy}/Lego Crane.xml +7 -7
  26. data/cockpit/{testsets → templates.legacy}/Lego Ejector.xml +7 -7
  27. data/cockpit/{testsets → templates.legacy}/Lego Full.xml +7 -7
  28. data/cockpit/{testsets → templates.legacy}/Lego Liddy.xml +7 -7
  29. data/cockpit/{testsets → templates.legacy}/Lego Plate.xml +7 -7
  30. data/cockpit/{testsets → templates.legacy}/Lego Transporter.xml +7 -7
  31. data/cockpit/{testsets → templates.legacy}/Lego_Part_1.xml +7 -7
  32. data/cockpit/{testsets → templates.legacy}/LgLinear.xml +6 -10
  33. data/cockpit/{testsets → templates.legacy}/Linear.xml +7 -7
  34. data/cockpit/{testsets → templates.legacy}/Log.xml +7 -7
  35. data/cockpit/{testsets → templates.legacy}/Mangler 1.xml +6 -6
  36. data/cockpit/{testsets → templates.legacy}/Mangler 2.xml +6 -6
  37. data/cockpit/{testsets → templates.legacy}/Manuel Labels.xml +7 -7
  38. data/cockpit/{testsets → templates.legacy}/Promise.xml +7 -7
  39. data/cockpit/{testsets → templates.legacy}/SOPROMO Test Sonification.xml +6 -6
  40. data/cockpit/{testsets → templates.legacy}/Subprocess.xml +7 -7
  41. data/cockpit/{testsets → templates.legacy}/Syncing P34 1.xml +8 -11
  42. data/cockpit/{testsets → templates.legacy}/Syncing P34 2.xml +8 -11
  43. data/cockpit/{testsets → templates.legacy}/Syncing P34 3.xml +8 -11
  44. data/cockpit/{testsets → templates.legacy}/Syncing P34.xml +8 -11
  45. data/cockpit/{testsets → templates.legacy}/TEST - Bad Loop.xml +6 -6
  46. data/cockpit/{testsets → templates.legacy}/TEST - Wrong Positions.xml +6 -6
  47. data/cockpit/{testsets → templates.legacy}/Take_5.xml +7 -7
  48. data/cockpit/{testsets → templates.legacy}/Update.xml +7 -7
  49. data/cockpit/{testsets → templates.legacy}/Worklist Parallel.xml +7 -7
  50. data/cockpit/{testsets → templates.legacy}/Worklist Test CPEE.xml +7 -7
  51. data/cockpit/{testsets → templates.legacy}/Worklist Test.xml +7 -7
  52. data/cockpit/{testsets → templates.legacy}/Worklist Test2.xml +7 -7
  53. data/cockpit/templates.legacy/convert_cpee2.rb +15 -0
  54. data/cockpit/{testsets → templates.legacy}/convert_preset.rb +0 -0
  55. data/cockpit/{testsets → templates.legacy}/testsets.xml +1 -1
  56. data/cockpit/{testsets → templates.legacy}/transformations.xml +0 -0
  57. data/cockpit/templates/BPM 2020 Manual Adjust.xml +182 -0
  58. data/cockpit/templates/BPM 2020 Solution Baseline.xml +196 -0
  59. data/cockpit/templates/BPM 2020 Solution NN.xml +197 -0
  60. data/cockpit/templates/BPM 2020 Solution View.xml +144 -0
  61. data/cockpit/templates/BPM 2020.xml +26 -0
  62. data/cockpit/templates/Coopis 2010.xml +85 -0
  63. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +77 -0
  64. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +77 -0
  65. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +77 -0
  66. data/cockpit/templates/Worklist.xml +42 -0
  67. data/cockpit/templates/convert_cpee2.rb +15 -0
  68. data/cockpit/themes/compact/rngs/alternative.rng +25 -0
  69. data/cockpit/themes/compact/rngs/call.rng +20 -14
  70. data/cockpit/themes/compact/rngs/callmanipulate.rng +28 -22
  71. data/cockpit/themes/compact/rngs/choose.rng +14 -0
  72. data/cockpit/themes/compact/rngs/critical.rng +5 -0
  73. data/cockpit/themes/compact/rngs/escape.rng +1 -0
  74. data/cockpit/themes/compact/rngs/group.rng +3 -0
  75. data/cockpit/themes/compact/rngs/loop.rng +22 -0
  76. data/cockpit/themes/compact/rngs/manipulate.rng +9 -0
  77. data/cockpit/themes/compact/rngs/otherwise.rng +22 -0
  78. data/cockpit/themes/compact/rngs/parallel.rng +21 -0
  79. data/cockpit/themes/compact/rngs/parallel_branch.rng +8 -0
  80. data/cockpit/themes/compact/rngs/scripts.rng +10 -11
  81. data/cockpit/themes/compact/rngs/stop.rng +5 -0
  82. data/cockpit/themes/compact/rngs/terminate.rng +1 -0
  83. data/cockpit/themes/compact/theme.js +1 -1
  84. data/cockpit/themes/convert_cpee2.rb +8 -0
  85. data/cockpit/themes/default/rngs/alternative.rng +8 -8
  86. data/cockpit/themes/default/rngs/call.rng +85 -49
  87. data/cockpit/themes/default/rngs/callmanipulate.rng +103 -64
  88. data/cockpit/themes/default/rngs/choose.rng +5 -3
  89. data/cockpit/themes/default/rngs/critical.rng +2 -2
  90. data/cockpit/themes/default/rngs/escape.rng +1 -1
  91. data/cockpit/themes/default/rngs/group.rng +3 -3
  92. data/cockpit/themes/default/rngs/loop.rng +8 -8
  93. data/cockpit/themes/default/rngs/manipulate.rng +3 -3
  94. data/cockpit/themes/default/rngs/otherwise.rng +8 -8
  95. data/cockpit/themes/default/rngs/parallel.rng +14 -6
  96. data/cockpit/themes/default/rngs/parallel_branch.rng +2 -2
  97. data/cockpit/themes/default/rngs/scripts.rng +23 -0
  98. data/cockpit/themes/default/rngs/stop.rng +2 -2
  99. data/cockpit/themes/default/rngs/terminate.rng +1 -1
  100. data/cockpit/themes/extended/rngs/alternative.rng +25 -0
  101. data/cockpit/themes/extended/rngs/call.rng +20 -14
  102. data/cockpit/themes/extended/rngs/callmanipulate.rng +28 -22
  103. data/cockpit/themes/extended/rngs/choose.rng +14 -0
  104. data/cockpit/themes/extended/rngs/critical.rng +5 -0
  105. data/cockpit/themes/extended/rngs/escape.rng +1 -0
  106. data/cockpit/themes/extended/rngs/group.rng +3 -0
  107. data/cockpit/themes/extended/rngs/loop.rng +22 -0
  108. data/cockpit/themes/extended/rngs/manipulate.rng +9 -0
  109. data/cockpit/themes/extended/rngs/otherwise.rng +22 -0
  110. data/cockpit/themes/extended/rngs/parallel.rng +21 -0
  111. data/cockpit/themes/extended/rngs/parallel_branch.rng +8 -0
  112. data/cockpit/themes/extended/rngs/scripts.rng +10 -11
  113. data/cockpit/themes/extended/rngs/stop.rng +5 -0
  114. data/cockpit/themes/extended/rngs/terminate.rng +1 -0
  115. data/cockpit/themes/extended/theme.js +14 -28
  116. data/cockpit/themes/model/rngs/alternative.rng +1 -1
  117. data/cockpit/themes/model/rngs/call.rng +16 -16
  118. data/cockpit/themes/model/rngs/callmanipulate.rng +17 -17
  119. data/cockpit/themes/model/rngs/choose.rng +1 -1
  120. data/cockpit/themes/model/rngs/critical.rng +1 -1
  121. data/cockpit/themes/model/rngs/escape.rng +1 -1
  122. data/cockpit/themes/model/rngs/group.rng +1 -1
  123. data/cockpit/themes/model/rngs/loop.rng +1 -1
  124. data/cockpit/themes/model/rngs/manipulate.rng +1 -1
  125. data/cockpit/themes/model/rngs/otherwise.rng +1 -1
  126. data/cockpit/themes/model/rngs/parallel.rng +1 -1
  127. data/cockpit/themes/model/rngs/parallel_branch.rng +1 -1
  128. data/cockpit/themes/model/rngs/scripts.rng +3 -4
  129. data/cockpit/themes/model/rngs/stop.rng +1 -1
  130. data/cockpit/themes/model/rngs/terminate.rng +1 -1
  131. data/cockpit/themes/model/theme.js +8 -7
  132. data/cockpit/themes/packed/rngs/alternative.rng +25 -0
  133. data/cockpit/themes/packed/rngs/call.rng +20 -14
  134. data/cockpit/themes/packed/rngs/callmanipulate.rng +28 -22
  135. data/cockpit/themes/packed/rngs/choose.rng +14 -0
  136. data/cockpit/themes/packed/rngs/critical.rng +5 -0
  137. data/cockpit/themes/packed/rngs/escape.rng +1 -0
  138. data/cockpit/themes/packed/rngs/group.rng +3 -0
  139. data/cockpit/themes/packed/rngs/loop.rng +22 -0
  140. data/cockpit/themes/packed/rngs/manipulate.rng +9 -0
  141. data/cockpit/themes/packed/rngs/otherwise.rng +22 -0
  142. data/cockpit/themes/packed/rngs/parallel.rng +21 -0
  143. data/cockpit/themes/packed/rngs/parallel_branch.rng +8 -0
  144. data/cockpit/themes/packed/rngs/scripts.rng +10 -11
  145. data/cockpit/themes/packed/rngs/stop.rng +5 -0
  146. data/cockpit/themes/packed/rngs/terminate.rng +1 -0
  147. data/cockpit/themes/packed/theme.js +8 -7
  148. data/cockpit/themes/preset/rngs/alternative.rng +25 -0
  149. data/cockpit/themes/preset/rngs/call.rng +20 -14
  150. data/cockpit/themes/preset/rngs/callmanipulate.rng +28 -22
  151. data/cockpit/themes/preset/rngs/choose.rng +14 -0
  152. data/cockpit/themes/preset/rngs/critical.rng +5 -0
  153. data/cockpit/themes/preset/rngs/escape.rng +1 -0
  154. data/cockpit/themes/preset/rngs/group.rng +3 -0
  155. data/cockpit/themes/preset/rngs/loop.rng +22 -0
  156. data/cockpit/themes/preset/rngs/manipulate.rng +9 -0
  157. data/cockpit/themes/preset/rngs/otherwise.rng +22 -0
  158. data/cockpit/themes/preset/rngs/parallel.rng +21 -0
  159. data/cockpit/themes/preset/rngs/parallel_branch.rng +8 -0
  160. data/cockpit/themes/preset/rngs/scripts.rng +10 -11
  161. data/cockpit/themes/preset/rngs/stop.rng +5 -0
  162. data/cockpit/themes/preset/rngs/terminate.rng +1 -0
  163. data/cockpit/themes/preset/theme.js +8 -7
  164. data/cpee.gemspec +9 -9
  165. data/{log/topics.xml → lib/callbacks.xml} +16 -6
  166. data/lib/{engine → callbacks}/callbacks.rng +2 -8
  167. data/lib/cpee.xml +10 -4
  168. data/lib/cpee/attributes_helper.rb +27 -0
  169. data/lib/cpee/controller.rb +113 -596
  170. data/lib/cpee/implementation.rb +152 -191
  171. data/lib/cpee/implementation_callbacks.rb +77 -0
  172. data/lib/cpee/implementation_notifications.rb +189 -0
  173. data/lib/cpee/implementation_properties.rb +707 -0
  174. data/lib/cpee/{callback.rb → message.rb} +20 -18
  175. data/lib/cpee/persistence.rb +135 -0
  176. data/lib/cpee/statemachine.rb +20 -0
  177. data/lib/cpee/transform.rb +95 -0
  178. data/lib/engine.xml +1 -59
  179. data/lib/properties.xml +236 -0
  180. data/lib/properties/arbitrary.rng +26 -0
  181. data/lib/properties/attributes.rng +10 -0
  182. data/lib/properties/dataelements.rng +10 -0
  183. data/lib/properties/description.rng +8 -0
  184. data/lib/properties/dsl.rng +7 -0
  185. data/lib/properties/dslx.rng +8 -0
  186. data/lib/properties/endpoints.rng +10 -0
  187. data/lib/properties/handlerwrapper.rng +9 -0
  188. data/lib/properties/position.rng +15 -0
  189. data/lib/properties/positions.rng +10 -0
  190. data/lib/properties/properties.rng +29 -0
  191. data/lib/properties/set-properties.rng +25 -0
  192. data/lib/properties/set-some-properties.rng +45 -0
  193. data/lib/properties/simple.rng +8 -0
  194. data/lib/properties/state.rng +33 -0
  195. data/lib/properties/status.rng +12 -0
  196. data/lib/properties/t_attributes.rng +7 -0
  197. data/lib/properties/t_dataelements.rng +7 -0
  198. data/lib/properties/t_endpoints.rng +7 -0
  199. data/lib/properties/t_position.rng +7 -0
  200. data/lib/properties/t_positions.rng +7 -0
  201. data/lib/properties/t_simple.rng +7 -0
  202. data/lib/properties/t_status.rng +7 -0
  203. data/lib/properties/t_transformation.rng +7 -0
  204. data/lib/properties/transformation.rng +40 -0
  205. data/server/dev.rb +1 -0
  206. data/server/handlerwrappers/default.rb +40 -34
  207. data/server/resources/backend/README.md +17 -0
  208. data/server/resources/backend/instance.rb +23 -0
  209. data/server/resources/backend/instance.template +19 -0
  210. data/server/resources/backend/opts.yaml +6 -0
  211. data/server/resources/backend/run +29 -0
  212. data/server/resources/notifications/logging/subscription.xml +1 -1
  213. data/server/resources/properties.empty +38 -0
  214. data/server/resources/properties.init +11 -11
  215. data/server/resources/states.dot +19 -0
  216. data/server/resources/states.xml +49 -0
  217. data/server/resources/transformation_dslx.xsl +3 -0
  218. data/server/routing/end.rb +44 -0
  219. data/server/routing/forward-events.rb +59 -0
  220. data/server/routing/forward-votes.rb +108 -0
  221. data/server/routing/persist.rb +155 -0
  222. data/server/server.rb +1 -0
  223. data/tools/cpee +19 -15
  224. metadata +126 -156
  225. data/INSTALL +0 -23
  226. data/cockpit/test.html +0 -40
  227. data/cockpit/themes/compact/rngs/alternative.rng +0 -1
  228. data/cockpit/themes/compact/rngs/choose.rng +0 -1
  229. data/cockpit/themes/compact/rngs/critical.rng +0 -1
  230. data/cockpit/themes/compact/rngs/escape.rng +0 -1
  231. data/cockpit/themes/compact/rngs/group.rng +0 -1
  232. data/cockpit/themes/compact/rngs/loop.rng +0 -1
  233. data/cockpit/themes/compact/rngs/manipulate.rng +0 -1
  234. data/cockpit/themes/compact/rngs/otherwise.rng +0 -1
  235. data/cockpit/themes/compact/rngs/parallel.rng +0 -1
  236. data/cockpit/themes/compact/rngs/parallel_branch.rng +0 -1
  237. data/cockpit/themes/compact/rngs/stop.rng +0 -1
  238. data/cockpit/themes/compact/rngs/terminate.rng +0 -1
  239. data/cockpit/themes/default/rngs/finalize.rng +0 -6
  240. data/cockpit/themes/default/rngs/update.rng +0 -6
  241. data/cockpit/themes/default/theme.js +0 -1286
  242. data/cockpit/themes/extended/rngs/alternative.rng +0 -1
  243. data/cockpit/themes/extended/rngs/choose.rng +0 -1
  244. data/cockpit/themes/extended/rngs/critical.rng +0 -1
  245. data/cockpit/themes/extended/rngs/escape.rng +0 -1
  246. data/cockpit/themes/extended/rngs/group.rng +0 -1
  247. data/cockpit/themes/extended/rngs/loop.rng +0 -1
  248. data/cockpit/themes/extended/rngs/manipulate.rng +0 -1
  249. data/cockpit/themes/extended/rngs/otherwise.rng +0 -1
  250. data/cockpit/themes/extended/rngs/parallel.rng +0 -1
  251. data/cockpit/themes/extended/rngs/parallel_branch.rng +0 -1
  252. data/cockpit/themes/extended/rngs/stop.rng +0 -1
  253. data/cockpit/themes/extended/rngs/terminate.rng +0 -1
  254. data/cockpit/themes/labels/rngs/alternative.rng +0 -25
  255. data/cockpit/themes/labels/rngs/call.rng +0 -81
  256. data/cockpit/themes/labels/rngs/callmanipulate.rng +0 -101
  257. data/cockpit/themes/labels/rngs/choose.rng +0 -12
  258. data/cockpit/themes/labels/rngs/critical.rng +0 -5
  259. data/cockpit/themes/labels/rngs/escape.rng +0 -1
  260. data/cockpit/themes/labels/rngs/finalize.rng +0 -6
  261. data/cockpit/themes/labels/rngs/group.rng +0 -3
  262. data/cockpit/themes/labels/rngs/loop.rng +0 -22
  263. data/cockpit/themes/labels/rngs/manipulate.rng +0 -9
  264. data/cockpit/themes/labels/rngs/otherwise.rng +0 -22
  265. data/cockpit/themes/labels/rngs/parallel.rng +0 -13
  266. data/cockpit/themes/labels/rngs/parallel_branch.rng +0 -8
  267. data/cockpit/themes/labels/rngs/stop.rng +0 -5
  268. data/cockpit/themes/labels/rngs/terminate.rng +0 -1
  269. data/cockpit/themes/labels/rngs/update.rng +0 -6
  270. data/cockpit/themes/labels/symbols/alternative.svg +0 -5
  271. data/cockpit/themes/labels/symbols/arrow.svg +0 -3
  272. data/cockpit/themes/labels/symbols/call.svg +0 -6
  273. data/cockpit/themes/labels/symbols/callmanipulate.svg +0 -8
  274. data/cockpit/themes/labels/symbols/choose.svg +0 -5
  275. data/cockpit/themes/labels/symbols/choose_exclusive.svg +0 -5
  276. data/cockpit/themes/labels/symbols/choose_inclusive.svg +0 -4
  277. data/cockpit/themes/labels/symbols/complex.svg +0 -8
  278. data/cockpit/themes/labels/symbols/critical.svg +0 -4
  279. data/cockpit/themes/labels/symbols/end.svg +0 -3
  280. data/cockpit/themes/labels/symbols/escape.svg +0 -5
  281. data/cockpit/themes/labels/symbols/event_end.svg +0 -3
  282. data/cockpit/themes/labels/symbols/loop.svg +0 -5
  283. data/cockpit/themes/labels/symbols/manipulate.svg +0 -4
  284. data/cockpit/themes/labels/symbols/otherwise.svg +0 -5
  285. data/cockpit/themes/labels/symbols/parallel.svg +0 -5
  286. data/cockpit/themes/labels/symbols/parallel_branch.svg +0 -5
  287. data/cockpit/themes/labels/symbols/parallel_branch_compact.svg +0 -4
  288. data/cockpit/themes/labels/symbols/parallel_branch_event.svg +0 -14
  289. data/cockpit/themes/labels/symbols/parallel_branch_normal.svg +0 -5
  290. data/cockpit/themes/labels/symbols/scripts.svg +0 -4
  291. data/cockpit/themes/labels/symbols/start.svg +0 -3
  292. data/cockpit/themes/labels/symbols/stop.svg +0 -5
  293. data/cockpit/themes/labels/symbols/terminate.svg +0 -4
  294. data/cockpit/themes/packed/rngs/alternative.rng +0 -1
  295. data/cockpit/themes/packed/rngs/choose.rng +0 -1
  296. data/cockpit/themes/packed/rngs/critical.rng +0 -1
  297. data/cockpit/themes/packed/rngs/escape.rng +0 -1
  298. data/cockpit/themes/packed/rngs/group.rng +0 -1
  299. data/cockpit/themes/packed/rngs/loop.rng +0 -1
  300. data/cockpit/themes/packed/rngs/manipulate.rng +0 -1
  301. data/cockpit/themes/packed/rngs/otherwise.rng +0 -1
  302. data/cockpit/themes/packed/rngs/parallel.rng +0 -1
  303. data/cockpit/themes/packed/rngs/parallel_branch.rng +0 -1
  304. data/cockpit/themes/packed/rngs/stop.rng +0 -1
  305. data/cockpit/themes/packed/rngs/terminate.rng +0 -1
  306. data/cockpit/themes/preset/rngs/alternative.rng +0 -1
  307. data/cockpit/themes/preset/rngs/choose.rng +0 -1
  308. data/cockpit/themes/preset/rngs/critical.rng +0 -1
  309. data/cockpit/themes/preset/rngs/escape.rng +0 -1
  310. data/cockpit/themes/preset/rngs/group.rng +0 -1
  311. data/cockpit/themes/preset/rngs/loop.rng +0 -1
  312. data/cockpit/themes/preset/rngs/manipulate.rng +0 -1
  313. data/cockpit/themes/preset/rngs/otherwise.rng +0 -1
  314. data/cockpit/themes/preset/rngs/parallel.rng +0 -1
  315. data/cockpit/themes/preset/rngs/parallel_branch.rng +0 -1
  316. data/cockpit/themes/preset/rngs/stop.rng +0 -1
  317. data/cockpit/themes/preset/rngs/terminate.rng +0 -1
  318. data/lib/cpee/empty_workflow.rb +0 -28
  319. data/lib/cpee/handler_notifications.rb +0 -47
  320. data/lib/cpee/handler_properties.rb +0 -50
  321. data/lib/cpee/instantiation.rb +0 -368
  322. data/lib/cpee/processtransformation/bpel/Repository/booking.bpel +0 -125
  323. data/lib/cpee/processtransformation/bpel/Repository/booking.wsdl +0 -72
  324. data/lib/cpee/processtransformation/bpel/Repository/booking/airline.wsdl +0 -71
  325. data/lib/cpee/processtransformation/bpel/Repository/booking/hotel.wsdl +0 -64
  326. data/lib/cpee/processtransformation/bpel/Repository/booking/report.wsdl +0 -71
  327. data/lib/cpee/processtransformation/bpel/bpel2wee.rb +0 -34
  328. data/lib/cpee/processtransformation/bpel/bpelserver.ru +0 -64
  329. data/lib/cpee/processtransformation/bpel/bpelserver.xml +0 -70
  330. data/lib/cpee/processtransformation/bpel/lib/BPEL_Transform.rb +0 -367
  331. data/lib/cpee/processtransformation/bpmn2.rb +0 -297
  332. data/lib/cpee/processtransformation/cpee.rb +0 -119
  333. data/lib/cpee/processtransformation/structures.rb +0 -465
  334. data/lib/cpee/processtransformation/target.rb +0 -50
  335. data/log/azure.rb +0 -10
  336. data/log/azure_logger.rb +0 -136
  337. data/log/chain.xml +0 -27
  338. data/log/elasticsearch.rb +0 -15
  339. data/log/elasticsearch_logging.rb +0 -377
  340. data/log/legacy/test_es.rb +0 -26
  341. data/log/legacy/test_split.rb +0 -211
  342. data/log/log.xml +0 -13
  343. data/log/non_tamp.rb +0 -156
  344. data/log/sic.rb +0 -63
  345. data/log/template.xes_xml +0 -23
  346. data/log/template.xes_yaml +0 -28
  347. data/log/trace.yaml +0 -17717
  348. data/log/trace_sic.yaml +0 -18343
  349. data/log/xes_xml.rb +0 -121
  350. data/log/xes_yaml.rb +0 -96
  351. data/server/handlerwrappers/soap.rb +0 -146
  352. data/server/resources/notifications/logging/consumer-secret +0 -1
  353. data/server/resources/notifications/logging/producer-secret +0 -1
  354. data/server/resources/properties.schema.active +0 -139
  355. data/server/resources/properties.schema.finished +0 -139
  356. data/server/resources/properties.schema.inactive +0 -136
  357. data/server/resources/test1.xml +0 -58
  358. data/server/resources/test2.xml +0 -60
  359. data/server/resources/test3.xml +0 -217
  360. data/test/callback.rb +0 -9
@@ -0,0 +1,17 @@
1
+ * run is copied into every instance.
2
+ * opts.yaml is written on each start.
3
+ * instance.rb is written on each start.
4
+
5
+ ## What can you do to make it more robust?
6
+
7
+ Replace run with a program that actually compiles and runs instance.rb. Of
8
+ courses the transformation_* xslts would have to be adapted to create suitable
9
+ code. The compiled executable would just need to behave the same as the instance.rb,
10
+ dispersing all the same events through redis.
11
+
12
+ More suitable languages would be crystal and javascript, c++. Less suitable,
13
+ but doable, would be python, C. I.e., all languages that do not support multi-line
14
+ lambdas would produce much less readable code, thus the "Description" tab in
15
+ the cockpit would be garbage.
16
+
17
+ Definitely do tell me if you are interessted in doing something like this ;-)
@@ -0,0 +1,23 @@
1
+ class Instance < WEEL
2
+ handlerwrapper DefaultHandlerWrapper
3
+
4
+ endpoint :timeout => "http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php"
5
+ data :x => ''
6
+ # search Position.new(:a1,:after,nil)
7
+
8
+ control flow do
9
+ call :a1, :timeout, parameters: { :label => "Step 1", :method => :post, :arguments => [⭐(:name => :timeout, :value => ->{ "2" })] }, finalize: <<-END
10
+ p 'xxx1'
11
+ data.x += \"a1,\"
12
+ END
13
+ call :a2, :timeout, parameters: { :label => "Step 2", :method => :post, :arguments => [⭐(:name => :timeout, :value => ->{ "4" })] }, finalize: <<-END
14
+ p 'xxx2'
15
+ data.x += \"a2,\"
16
+ END
17
+ call :a3, :timeout, parameters: { :label => "Step 3", :method => :post, :arguments => [⭐(:name => :timeout, :value => ->{ "4" })] }, finalize: <<-END
18
+ p 'xxx3'
19
+ data.x += \"a3,\"
20
+ END
21
+ end
22
+ end
23
+
@@ -0,0 +1,19 @@
1
+ class Instance < WEEL
2
+ handlerwrapper <%= handlerwrapper %>
3
+
4
+ <% for key, value in endpoints -%>
5
+ endpoint :<%= key %> => <%= CPEE::ValueHelper::parse(value).inspect %>
6
+ <% end -%>
7
+
8
+ <% for key, value in dataelements -%>
9
+ data :<%= key %> => <%= CPEE::ValueHelper::parse(value).inspect %>
10
+ <% end -%>
11
+
12
+ <% unless positions.nil? || positions.empty? -%>
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
+ <% end -%>
15
+
16
+ control flow do
17
+ <%= dsl.strip.gsub(/\n/,"\n ") %>
18
+ end
19
+ end
@@ -0,0 +1,6 @@
1
+ :host: localhost
2
+ :url: http://localhost:8298/
3
+ :redis_path: /tmp/redis.sock
4
+ :redis_db: 3
5
+ :handlerwrappers: ../../handlerwrappers/
6
+
@@ -0,0 +1,29 @@
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
+ require_relative '../../../lib/cpee/controller'
7
+
8
+ Dir[File.join(opts[:global_handlerwrappers],'*.rb')].each do |h|
9
+ require h
10
+ end unless opts[:global_handlerwrappers].nil? || opts[:global_handlerwrappers].strip == ''
11
+ Dir[File.join(opts[:handlerwrappers],'*.rb')].each do |h|
12
+ require h
13
+ end unless opts[:handlerwrappers].nil? || opts[:handlerwrappers].strip == ''
14
+
15
+ require_relative 'instance'
16
+ controller = CPEE::Controller.new(File.basename(__dir__).to_i, __dir__, opts)
17
+ controller.instance = Instance.new controller
18
+
19
+ File.write(opts[:pidf],opts[:pid])
20
+
21
+ %w{TERM HUP INT}.each do |sig|
22
+ Signal.trap(sig) do
23
+ puts "Caught #{sig}!"
24
+ controller.stop
25
+ File.unlink(opts[:pidf])
26
+ end
27
+ end
28
+
29
+ controller.start
@@ -1,4 +1,4 @@
1
- <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0" url="http://localhost:9299/">
1
+ <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/2.0" url="http://localhost:9299/">
2
2
  <topic id="activity">
3
3
  <event>calling</event>
4
4
  <event>receiving</event>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ This file is part of CPEE.
4
+
5
+ CPEE is free software: you can redistribute it and/or modify it under the
6
+ terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
11
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License along with
15
+ CPEE (file COPYING in the main directory). If not, see
16
+ <http://www.gnu.org/licenses/>.
17
+ -->
18
+
19
+ <properties xmlns="http://cpee.org/ns/properties/2.0">
20
+ <state changed="1970-01-01T00:00:00+00:00">ready</state>
21
+ <status>
22
+ <id>0</id>
23
+ <message>undefined</message>
24
+ </status>
25
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
26
+ <positions/>
27
+ <dataelements/>
28
+ <endpoints/>
29
+ <attributes/>
30
+ <dsl/>
31
+ <dslx/>
32
+ <description/>
33
+ <transformation>
34
+ <description type='copy'/>
35
+ <dataelements type='none'/>
36
+ <endpoints type='none'/>
37
+ </transformation>
38
+ </properties>
@@ -16,27 +16,27 @@
16
16
  <http://www.gnu.org/licenses/>.
17
17
  -->
18
18
 
19
- <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
20
- <attributes>
21
- <info/>
22
- <modeltype>CPEE</modeltype>
23
- <theme>preset</theme>
24
- </attributes>
25
- <state>ready</state>
19
+ <properties xmlns="http://cpee.org/ns/properties/2.0">
20
+ <state changed="1970-01-01T00:00:00+00:00">ready</state>
21
+ <status>
22
+ <id>0</id>
23
+ <message>undefined</message>
24
+ </status>
26
25
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
27
26
  <positions/>
28
27
  <dataelements/>
29
28
  <endpoints>
30
29
  <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
31
30
  </endpoints>
31
+ <attributes>
32
+ <info/>
33
+ <modeltype>CPEE</modeltype>
34
+ <theme>preset</theme>
35
+ </attributes>
32
36
  <dsl/>
33
37
  <dslx>
34
38
  <description xmlns="http://cpee.org/ns/description/1.0"/>
35
39
  </dslx>
36
- <status>
37
- <id>0</id>
38
- <message>undefined</message>
39
- </status>
40
40
  <description>
41
41
  <description xmlns="http://cpee.org/ns/description/1.0"/>
42
42
  </description>
@@ -0,0 +1,19 @@
1
+ digraph States {
2
+ ready -> running;
3
+ ready -> simulating;
4
+ ready -> replaying;
5
+ ready -> abandoned;
6
+ running -> stopping;
7
+ stopped -> running;
8
+ stopped -> simulating;
9
+ stopped -> replaying;
10
+ stopped -> abandoned;
11
+
12
+ running -> finishing;
13
+ simulating -> ready;
14
+ simulating -> stopped;
15
+ replaying -> stopping;
16
+ replaying -> finishing;
17
+ finishing -> finished;
18
+ stopping -> stopped;
19
+ }
@@ -0,0 +1,49 @@
1
+ <states>
2
+ <!-- final states are "abandoned" and "finished" (no further observable or setable states) -->
3
+ <!-- children of setable and observable are source states, their respective children are possible target states -->
4
+
5
+ <setable>
6
+ <!-- the following states change through external input -->
7
+ <ready><!-- in this state you can set the following four states -->
8
+ <ready/>
9
+ <running/>
10
+ <simulating/>
11
+ <replaying/>
12
+ <abandoned/>
13
+ </ready>
14
+ <running><!-- in this state you can set the following state -->
15
+ <stopping/>
16
+ </running>
17
+ <stopped><!-- in this state you can set the following four states -->
18
+ <running/>
19
+ <simulating/>
20
+ <replaying/>
21
+ <abandoned/>
22
+ <stopped/>
23
+ </stopped>
24
+ </setable>
25
+
26
+ <observable>
27
+ <!-- the following states change through internal mechanisms -->
28
+ <running>
29
+ <stopping/>
30
+ <finishing/>
31
+ </running>
32
+ <simulating>
33
+ <ready/>
34
+ <stopped/>
35
+ </simulating>
36
+ <replaying>
37
+ <stopping/>
38
+ <finishing/>
39
+ </replaying>
40
+ <finishing>
41
+ <finished/>
42
+ </finishing>
43
+ <stopping>
44
+ <stopped/>
45
+ </stopping>
46
+ <abandoned/>
47
+ <finished/>
48
+ </observable>
49
+ </states>
@@ -389,6 +389,9 @@
389
389
  <xsl:apply-templates select="d:*" mode="plainmulti"/>
390
390
  <xsl:text>]</xsl:text>
391
391
  </xsl:when>
392
+ <xsl:when test="count(*) &gt; 0 and name()='report'">
393
+ <xsl:apply-templates select="d:*" mode="plainmulti"/>
394
+ </xsl:when>
392
395
  <xsl:when test="count(*) &gt; 0 and not(name()='arguments')">
393
396
  <xsl:text>{</xsl:text>
394
397
  <xsl:apply-templates select="d:*" mode="parameter"/>
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # This file is part of CPEE.
4
+ #
5
+ # CPEE is free software: you can redistribute it and/or modify it under the terms
6
+ # of the GNU General Public License as published by the Free Software Foundation,
7
+ # either version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
10
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ # PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along with
14
+ # CPEE (file COPYING in the main directory). If not, see
15
+ # <http://www.gnu.org/licenses/>.
16
+
17
+ require 'json'
18
+ require 'redis'
19
+ require 'daemonite'
20
+
21
+ Daemonite.new do |opts|
22
+ redis = Redis.new(path: "/tmp/redis.sock", db: 3)
23
+ pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
24
+
25
+ run do
26
+ pubsubredis.psubscribe('callback-end:*') do |on|
27
+ on.pmessage do |pat, what, message|
28
+ _, key = what.split(':')
29
+ index = message.index(' ')
30
+ instance = message[0...index]
31
+ redis.multi do |multi|
32
+ multi.srem("instance:#{instance}/callbacks",key)
33
+ multi.del("instance:#{instance}/callback/#{key}/uuid")
34
+ multi.del("instance:#{instance}/callback/#{key}/label")
35
+ multi.del("instance:#{instance}/callback/#{key}/position")
36
+ multi.del("instance:#{instance}/callback/#{key}/type")
37
+ end
38
+ rescue => e
39
+ puts e.message
40
+ puts e.backtrace
41
+ end
42
+ end
43
+ end
44
+ end.go!
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # This file is part of CPEE.
4
+ #
5
+ # CPEE is free software: you can redistribute it and/or modify it under the terms
6
+ # of the GNU General Public License as published by the Free Software Foundation,
7
+ # either version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
10
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ # PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along with
14
+ # CPEE (file COPYING in the main directory). If not, see
15
+ # <http://www.gnu.org/licenses/>.
16
+
17
+ require 'redis'
18
+ require 'daemonite'
19
+ require 'riddl/client'
20
+
21
+ Daemonite.new do |opts|
22
+ redis = Redis.new(path: "/tmp/redis.sock", db: 3)
23
+ pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
24
+
25
+ run do
26
+ pubsubredis.psubscribe('event:*') do |on|
27
+ on.pmessage do |pat, what, message|
28
+ index = message.index(' ')
29
+ mess = message[index+1..-1]
30
+ instance = message[0...index]
31
+ type = pat[0..-3]
32
+ event = what[(type.length+1)..-1]
33
+ topic = ::File::dirname(event)
34
+ name = ::File::basename(event)
35
+ long = File.join(topic,type,name)
36
+ redis.smembers("instance:#{instance}/handlers").each do |key|
37
+ if redis.smembers("instance:#{instance}/handlers/#{key}").include? long
38
+ url = redis.get("instance:#{instance}/handlers/#{key}/url")
39
+ if url.nil? || url == ""
40
+ redis.publish("forward:#{instance}/#{key}",mess)
41
+ else
42
+ client = Riddl::Client.new(url,'http://riddl.org/ns/common-patterns/notifications-consumer/2.0/consumer.xml')
43
+ client.post [
44
+ Riddl::Parameter::Simple::new('type',type),
45
+ Riddl::Parameter::Simple::new('topic',topic),
46
+ Riddl::Parameter::Simple::new('event',name),
47
+ Riddl::Parameter::Complex::new('notification','application/json',mess)
48
+ ]
49
+ end
50
+ end
51
+ end
52
+ rescue => e
53
+ puts e.message
54
+ puts e.backtrace
55
+ p '-----------------'
56
+ end
57
+ end
58
+ end
59
+ end.go!
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # This file is part of CPEE.
4
+ #
5
+ # CPEE is free software: you can redistribute it and/or modify it under the terms
6
+ # of the GNU General Public License as published by the Free Software Foundation,
7
+ # either version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
10
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+ # PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along with
14
+ # CPEE (file COPYING in the main directory). If not, see
15
+ # <http://www.gnu.org/licenses/>.
16
+
17
+ require 'redis'
18
+ require 'daemonite'
19
+ require 'riddl/client'
20
+ require 'json'
21
+ require_relative '../../lib/cpee/message'
22
+
23
+ def persist_handler(instance,key,mess,redis) #{{{
24
+ redis.multi do |multi|
25
+ multi.sadd("instance:#{instance}/callbacks",key)
26
+ multi.set("instance:#{instance}/callback/#{key}/uuid",mess.dig('content','activity_uuid'))
27
+ multi.set("instance:#{instance}/callback/#{key}/label",mess.dig('content','label'))
28
+ multi.set("instance:#{instance}/callback/#{key}/position",mess.dig('content','activity'))
29
+ multi.set("instance:#{instance}/callback/#{key}/type",'vote')
30
+ end
31
+ end #}}}
32
+
33
+ def send_response(instance,key,url,value,redis) #{{{
34
+ CPEE::Message::send(
35
+ :'vote-response',
36
+ key,
37
+ url,
38
+ instance,
39
+ {},
40
+ {},
41
+ value,
42
+ redis
43
+ )
44
+ end #}}}
45
+
46
+ Daemonite.new do |opts|
47
+ redis = Redis.new(path: "/tmp/redis.sock", db: 3)
48
+ pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
49
+
50
+ run do
51
+ pubsubredis.psubscribe('vote:*') do |on|
52
+ on.pmessage do |pat, what, message|
53
+ index = message.index(' ')
54
+ mess = message[index+1..-1]
55
+
56
+ instance = message[0...index]
57
+ type = pat[0..-3]
58
+ event = what[(type.length+1)..-1]
59
+ topic = ::File::dirname(event)
60
+ name = ::File::basename(event)
61
+ long = File.join(topic,type,name)
62
+
63
+ redis.smembers("instance:#{instance}/handlers").each do |subscription_key|
64
+ if redis.smembers("instance:#{instance}/handlers/#{subscription_key}").include? long
65
+ m = JSON.parse(mess)
66
+ callback_key = m.dig('content','key')
67
+ url = redis.get("instance:#{instance}/handlers/#{subscription_key}/url")
68
+
69
+ if url.nil? || url == ""
70
+ persist_handler instance, callback_key, m, redis
71
+ redis.publish("forward:#{instance}/#{subscription_key}",mess)
72
+ else
73
+ client = Riddl::Client.new(url,'http://riddl.org/ns/common-patterns/notifications-consumer/2.0/consumer.xml')
74
+ callback = m['instance-url'] + '/callbacks/' + subscription_key
75
+ status, result, headers = (client.post [
76
+ Riddl::Header.new("CPEE-BASE",m['cpee']),
77
+ Riddl::Header.new("CPEE-INSTANCE",m['instance']),
78
+ Riddl::Header.new("CPEE-INSTANCE-URL",m['instance-url']),
79
+ Riddl::Header.new("CPEE-INSTANCE-UUID",m['instance-uuid']),
80
+ Riddl::Header.new("CPEE-CALLBACK",callback),
81
+ Riddl::Header.new("CPEE-CALLBACK-ID",subscription_key),
82
+ Riddl::Parameter::Simple::new('type',type),
83
+ Riddl::Parameter::Simple::new('topic',topic),
84
+ Riddl::Parameter::Simple::new('vote',name),
85
+ Riddl::Parameter::Simple::new('callback',callback),
86
+ Riddl::Parameter::Complex::new('notification','application/json',mess)
87
+ ] rescue [ 0, [], []])
88
+ if status >= 200 && status < 300
89
+ val = result[0].value.read
90
+ if (headers["CPEE_CALLBACK"] && headers["CPEE_CALLBACK"] == 'true') || val == 'callback'
91
+ persist_handler instance, callback_key, m, redis
92
+ else # they may send true or false
93
+ send_response instance, callback_key, m['cpee'], val, redis
94
+ end
95
+ else
96
+ send_response instance, callback_key, m['cpee'], true, redis
97
+ end
98
+ end
99
+ end
100
+ end
101
+ rescue => e
102
+ puts e.message
103
+ puts e.backtrace
104
+ p '-----------------'
105
+ end
106
+ end
107
+ end
108
+ end.go!