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
@@ -1,3 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="standfat"/>
3
- </svg>
@@ -1,5 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="stand cline"/>
3
- <circle cx="15" cy="15" r="11" class="stand cline hfill"/>
4
- <polygon points="10.5,20.5 15,8.5 20.5,20.5 15,15.5 10.5,20.5" class="black"/>
5
- </svg>
@@ -1,3 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="rfill hfill cline standfat"/>
3
- </svg>
@@ -1,5 +0,0 @@
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
- <line x1="10.5" y1="20.5" x2="20.5" y2="10.5" class="stand"/>
4
- <line x1="10.5" y1="10.5" x2="20.5" y2="20.5" class="stand"/>
5
- </svg>
@@ -1,4 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="rfill hfill cline stand"/>
3
- <text transform="translate(15,21)" class="normal">s</text>
4
- </svg>
@@ -1,5 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="11" class="hfill standtrans"/>
3
- <line x1="9" y1="21" x2="21" y2="9" class="stand cline hline"/>
4
- <line x1="15.6" y1="4" x2="15.6" y2="27" class="ourline"/>
5
- </svg>
@@ -1,5 +0,0 @@
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
- <text transform="translate(15,25)" class="normallarge">+</text>
4
- </svg>
5
-
@@ -1,5 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="11" y="6" width="9" height="18" rx="0" class="hline white"/>
3
- <path class="cline hfill stand" d="M 11,5 C 2,9 2,21 11,25 M 20,5 C 29,9 29,21 20,25" style="stroke-dasharray:1,4;"/>
4
- <line x1="15.6" y1="4" x2="15.6" y2="27" class="ourline"/>
5
- </svg>
@@ -1,4 +0,0 @@
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
- <text transform="translate(15,20)" class="small">|||</text>
4
- </svg>
@@ -1,14 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="3" width="24" height="24" rx="4" class="hfill rfill cline stand"/>
3
-
4
- <circle cx="24" cy="15" r="10" class="cline rfill stand" style="stroke-dasharray: 1,3"/>
5
- <circle cx="24" cy="15" r="7" class="cline rfill stand" style="stroke-dasharray: 1,3"/>
6
- <line x1="24" y1="11" x2="20" y2="18" class="stand"/>
7
- <line x1="20" y1="18" x2="28" y2="18" class="stand"/>
8
- <line x1="28" y1="18" x2="24" y2="11" class="stand"/>
9
-
10
- <circle cx="55.5" cy="15" r="14" class="cline hfill rfill stand"/>
11
- <line x1="55.5" y1="11" x2="51.5" y2="18" class="stand"/>
12
- <line x1="51.5" y1="18" x2="59.5" y2="18" class="stand"/>
13
- <line x1="59.5" y1="18" x2="55.5" y2="11" class="stand"/>
14
- </svg>
@@ -1,5 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="11" y="6" width="9" height="18" rx="0" class="hline white"/>
3
- <path class="cline hfill stand" d="M 11,5 C 2,9 2,21 11,25 M 20,5 C 29,9 29,21 20,25" style="stroke-dasharray:1,4;"/>
4
- <line x1="15.6" y1="4" x2="15.6" y2="27" class="ourline"/>
5
- </svg>
@@ -1,4 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect x="1" y="1" width="28" height="28" rx="4" class="hfill rfill cline stand"/>
3
- <text transform="translate(15,21)" class="normal">s</text>
4
- </svg>
@@ -1,3 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="stand"/>
3
- </svg>
@@ -1,5 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="hfill rfill cline stand"/>
3
- <line x1="12.5" y1="22.5" x2="12.5" y2="8.5" class="stand"/>
4
- <line x1="17.5" y1="22.5" x2="17.5" y2="8.5" class="stand"/>
5
- </svg>
@@ -1,4 +0,0 @@
1
- <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="14" class="standfat"/>
3
- <circle cx="15" cy="15" r="9" class="black"/>
4
- </svg>
@@ -1 +0,0 @@
1
- ../../default/rngs/alternative.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/choose.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/critical.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/escape.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/group.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/loop.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/manipulate.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/otherwise.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/parallel.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/parallel_branch.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/stop.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/terminate.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/alternative.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/choose.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/critical.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/escape.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/group.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/loop.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/manipulate.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/otherwise.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/parallel.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/parallel_branch.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/stop.rng
@@ -1 +0,0 @@
1
- ../../default/rngs/terminate.rng
@@ -1,28 +0,0 @@
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
- if Module.const_defined?(:CPEE) && CPEE.const_defined?(:DEVELOP) && CPEE::DEVELOP.const_defined?(:WEEL)
16
- require File.join(CPEE::DEVELOP::WEEL,'weel')
17
- else
18
- require 'weel'
19
- end
20
- require ::File.dirname(__FILE__) + '/../../server/handlerwrappers/default'
21
-
22
- class EmptyWorkflow < WEEL
23
- handlerwrapper DefaultHandlerWrapper
24
-
25
- control flow do
26
- # control flow will be set externally
27
- end
28
- end
@@ -1,47 +0,0 @@
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_websocket(@key,socket)
18
- end
19
- def ws_close
20
- @data.unserialize_notifications!(:del,@key)
21
- @data.notify('handler/change', :instance => @data.instance)
22
- end
23
- def ws_message(data)
24
- begin
25
- doc = XML::Smart::string(data)
26
- callback = doc.find("string(/vote/@id)")
27
- result = doc.find("string(/vote)")
28
- @data.callbacks[callback].callback(result == 'true' ? true : false)
29
- @data.callbacks.delete(callback)
30
- rescue
31
- puts "Invalid message over websocket"
32
- end
33
- end
34
-
35
- def create
36
- @data.unserialize_notifications!(:cre,@key)
37
- @data.notify('handler/change', :instance => @data.instance)
38
- end
39
- def delete
40
- @data.unserialize_notifications!(:del,@key)
41
- @data.notify('handler/change', :instance => @data.instance)
42
- end
43
- def update
44
- @data.unserialize_notifications!(:upd,@key)
45
- @data.notify('handler/change', :instance => @data.instance)
46
- end
47
- end
@@ -1,50 +0,0 @@
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('handlerwrapper/change', :instance => @data.instance)
21
- when 'description'
22
- nots = @data.unserialize_description!
23
- nots.uniq.each do |noti|
24
- @data.notify(*noti)
25
- end
26
- when 'endpoints'
27
- @data.unserialize_endpoints!
28
- @data.notify('endpoints/change', :label => 'external', :instance => @data.instance, :instance_name => @data.info, :instance_uuid => @data.uuid, :changed => @data.endpoints.keys, :values => @data.endpoints)
29
- when 'dataelements'
30
- @data.unserialize_dataelements!
31
- @data.notify('dataelements/change', :label => 'external', :instance => @data.instance, :instance_name => @data.info, :instance_uuid => @data.uuid, :changed => @data.dataelements.keys, :values => @data.dataelements)
32
- when 'attributes'
33
- @data.unserialize_attributes!
34
- @data.notify('attributes/change', :label => 'external', :instance => @data.instance, :instance_name => @data.info, :instance_uuid => @data.uuid, :changed => @data.attributes.keys, :values => @data.attributes)
35
- when 'positions'
36
- @data.unserialize_positions!
37
- @data.notify('position/change', :instance => @data.instance)
38
- when 'transformation'
39
- @data.notify('transformation/change', :instance => @data.instance)
40
- when 'state'
41
- @data.unserialize_state!
42
- else
43
- nil
44
- end
45
- end
46
-
47
- def create; sync; end
48
- def update; sync; end
49
- def delete; sync; end
50
- end
@@ -1,368 +0,0 @@
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 'riddl/server'
16
- require 'securerandom'
17
- require 'xml/smart'
18
- require 'base64'
19
- require 'uri'
20
- require 'redis'
21
- require 'json'
22
- require ::File.dirname(__FILE__) + '/value_helper'
23
-
24
- module CPEE
25
- module Instantiation
26
-
27
- SERVER = File.expand_path(__dir__ + '/../instantiation.xml')
28
-
29
- module Helpers #{{{
30
- def load_testset(tdoc,cpee,name=nil,stream=nil) #{{{
31
- ins = -1
32
- uuid = nil
33
- XML::Smart.string(tdoc) do |doc|
34
- doc.register_namespace 'desc', 'http://cpee.org/ns/description/1.0'
35
- doc.register_namespace 'prop', 'http://riddl.org/ns/common-patterns/properties/1.0'
36
-
37
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
38
- res = srv.resource("/")
39
- if name
40
- doc.find("/testset/attributes/prop:info").each do |e|
41
- e.text = name
42
- end
43
- end
44
- if stream && !stream.empty?
45
- JSON.parse(stream).each do |e|
46
- begin
47
- stream = Typhoeus.get e['url']
48
- if stream.success?
49
- XML::Smart::string(stream.response_body) do |str|
50
- doc.find("//desc:call[@id=\"#{e['id']}\"]/desc:parameters/desc:stream").each do |ele|
51
- ele.replace_by str.root
52
- end
53
- end
54
- end
55
- rescue => e
56
- puts e.message
57
- puts e.backtrace
58
- end
59
- end
60
- end
61
-
62
- status, response, headers = res.post Riddl::Parameter::Simple.new("info",doc.find("string(/testset/attributes/prop:info)"))
63
-
64
- if status == 200
65
- ins = response.first.value
66
- uuid = headers['CPEE_INSTANCE_UUID']
67
- params = []
68
-
69
- res = srv.resource("/#{ins}/properties/values")
70
- ["handlerwrapper","positions","dataelements","endpoints","attributes","transformation"].each do |item|
71
- if doc.find("/testset/#{item}").any?
72
- params << Riddl::Parameter::Simple.new("name",item)
73
- params << Riddl::Parameter::Simple.new("content",doc.find("/testset/#{item}").first.dump)
74
- end
75
- end
76
- ["description"].each do |item|
77
- if doc.find("/testset/#{item}").any?
78
- params << Riddl::Parameter::Simple.new("name",item)
79
- params << Riddl::Parameter::Simple.new("content","<content>" + doc.find("/testset/#{item}/desc:*").first.dump + "</content>")
80
- end
81
- end
82
- status, response = res.put params
83
- ["handlers"].each do |item|
84
- doc.find("/testset/#{item}/handler").each do |han|
85
- #pp han.children.first
86
- url = han.attributes['url']
87
- inp = "url=" + URI.encode_www_form_component(url)
88
- inp = inp + "&topic=" + han.children.first.attributes['topic']
89
- inp = inp + "&" + han.children.first.qname.to_s + "=" + han.children.first.to_s
90
- status,body = Riddl::Client::new(cpee+ins+"/notifications/subscriptions/").post(
91
- [
92
- Riddl::Parameter::Simple.new("url",han.attributes['url']),
93
- Riddl::Parameter::Simple.new("topic",han.children.first.attributes['topic']),
94
- Riddl::Parameter::Simple.new(han.children.first.qname.to_s,han.children.first.to_s)
95
- ]
96
- )
97
- end
98
- end
99
- end
100
- end
101
- [ins, uuid]
102
- end #}}}
103
- private :load_testset
104
- def handle_waiting(cpee,instance,uuid,behavior,selfurl,cblist) #{{{
105
- if behavior =~ /^wait/
106
- condition = behavior.match(/_([^_]+)_/)&.[](1) || 'finished'
107
- @headers << Riddl::Header.new('CPEE-CALLBACK','true')
108
- cb = @h['CPEE_CALLBACK']
109
-
110
- if cb
111
- cbk = SecureRandom.uuid
112
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
113
- status, response = srv.resource("/#{instance}/notifications/subscriptions/").post [
114
- Riddl::Parameter::Simple.new("url",File.join(selfurl,'callback',cbk)),
115
- Riddl::Parameter::Simple.new("topic","state"),
116
- Riddl::Parameter::Simple.new("events","change")
117
- ]
118
- cblist.rpush(cbk, cb)
119
- cblist.rpush(cbk, condition)
120
- cblist.rpush(cbk, instance)
121
- cblist.rpush(cbk, uuid)
122
- cblist.rpush(cbk, File.join(cpee,instance))
123
- end
124
- end
125
- end #}}}
126
- private :handle_waiting
127
- def handle_starting(cpee,instance,behavior) #{{{
128
- if behavior =~ /_running$/
129
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
130
- res = srv.resource("/#{instance}/properties/values")
131
- status, response = res.put [
132
- Riddl::Parameter::Simple.new('name', 'state'),
133
- Riddl::Parameter::Simple.new('value','running')
134
- ]
135
- end
136
- end #}}}
137
- private :handle_starting
138
- def handle_data(cpee,instance,data) #{{{
139
- if data && !data.empty?
140
- content = XML::Smart.string('<content/>')
141
- JSON::parse(data).each do |k,v|
142
- content.root.add(k,v)
143
- end
144
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
145
- res = srv.resource("/#{instance}/properties/values/dataelements/")
146
- status, response = res.patch [
147
- Riddl::Parameter::Complex.new('content','text/xml',content.to_s)
148
- ]
149
- end rescue nil
150
- end #}}}
151
- def handle_endpoints(cpee,instance,data) #{{{
152
- if data && !data.empty?
153
- content = XML::Smart.string('<content/>')
154
- JSON::parse(data).each do |k,v|
155
- content.root.add(k,v)
156
- end
157
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
158
- res = srv.resource("/#{instance}/properties/values/endpoints/")
159
- status, response = res.patch [
160
- Riddl::Parameter::Complex.new('content','text/xml',content.to_s)
161
- ]
162
- end rescue nil
163
- end #}}}
164
- end #}}}
165
-
166
- class InstantiateGit < Riddl::Implementation #{{{
167
- include Helpers
168
-
169
- def response
170
- cpee = @h['X_CPEE'] || @a[0]
171
- selfurl = @a[1]
172
- cblist = @a[2]
173
-
174
- status, res = Riddl::Client.new(File.join(@p[1].value,'raw',@p[2].value,@p[3].value).gsub(/ /,'%20')).get
175
- tdoc = if status >= 200 && status < 300
176
- res[0].value.read
177
- else
178
- (@status = 500) && return
179
- end
180
- stream = @p.find{ |e| e.name == 'stream' }&.value
181
- if (instance, uuid = load_testset(tdoc,cpee,nil,stream)).first == -1
182
- @status = 500
183
- else
184
- handle_data cpee, instance, @p[4]&.value if @p[4]&.name == 'init'
185
- handle_endpoints cpee, instance, @p[4]&.value if @p[4]&.name == 'endpoints'
186
- handle_endpoints cpee, instance, @p[5]&.value if @p[5]&.name == 'endpoints'
187
-
188
- handle_waiting cpee, instance, uuid, @p[0].value, selfurl, cblist
189
- handle_starting cpee, instance, @p[0].value
190
-
191
- send = {
192
- 'CPEE-INSTANCE' => instance,
193
- 'CPEE-INSTANCE-URL' => File.join(cpee,instance),
194
- 'CPEE-INSTANCE-UUID' => uuid,
195
- 'CPEE-BEHAVIOR' => @p[0].value
196
- }
197
- @headers << Riddl::Header.new('CPEE-INSTANTIATION',JSON::generate(send))
198
- Riddl::Parameter::Complex.new('instance','application/json',JSON::generate(send))
199
- end
200
- end
201
- end #}}}
202
-
203
- class InstantiateUrl < Riddl::Implementation #{{{
204
- include Helpers
205
-
206
- def response
207
- cpee = @h['X_CPEE'] || @a[0]
208
- selfurl = @a[1]
209
- cblist = @a[2]
210
- name = @a[3] ? @p.shift.value : nil
211
-
212
- status, res = Riddl::Client.new(@p[1].value.gsub(/ /,'%20')).get
213
- tdoc = if status >= 200 && status < 300
214
- res[0].value.read
215
- else
216
- (@status = 500) && return
217
- end
218
- stream = @p.find{ |e| e.name == 'stream' }&.value
219
- if (instance, uuid = load_testset(tdoc,cpee,name,stream)).first == -1
220
- @status = 500
221
- else
222
- handle_data cpee, instance, @p[2]&.value if @p[2]&.name == 'init'
223
- handle_endpoints cpee, instance, @p[2]&.value if @p[2]&.name == 'endpoints'
224
- handle_endpoints cpee, instance, @p[3]&.value if @p[3]&.name == 'endpoints'
225
-
226
- handle_waiting cpee, instance, uuid, @p[0].value, selfurl, cblist
227
- handle_starting cpee, instance, @p[0].value
228
-
229
- send = {
230
- 'CPEE-INSTANCE' => instance,
231
- 'CPEE-INSTANCE-URL' => File.join(cpee,instance),
232
- 'CPEE-INSTANCE-UUID' => uuid,
233
- 'CPEE-BEHAVIOR' => @p[0].value
234
- }
235
- @headers << Riddl::Header.new('CPEE-INSTANTIATION',JSON::generate(send))
236
- Riddl::Parameter::Complex.new('instance','application/json',JSON::generate(send))
237
- end
238
- end
239
- end #}}}
240
-
241
- class InstantiateXML < Riddl::Implementation #{{{
242
- include Helpers
243
-
244
- def response
245
- cpee = @h['X_CPEE'] || @a[0]
246
- behavior = @a[1] ? 'fork_ready' : @p[0].value
247
- data = @a[1] ? 0 : 1
248
- selfurl = @a[2]
249
- cblist = @a[3]
250
- tdoc = if @p[data].additional =~ /base64/
251
- Base64.decode64(@p[data].value.read)
252
- else
253
- @p[data].value.read
254
- end
255
-
256
- if (instance, uuid = load_testset(tdoc,cpee)).first == -1
257
- @status = 500
258
- else
259
- handle_data cpee, instance, @p[data+1]&.value
260
- handle_waiting cpee, instance, uuid, behavior, selfurl, cblist
261
- handle_starting cpee, instance, behavior
262
-
263
- send = {
264
- 'CPEE-INSTANCE' => instance,
265
- 'CPEE-INSTANCE-URL' => File.join(cpee,instance),
266
- 'CPEE-INSTANCE-UUID' => uuid,
267
- 'CPEE-BEHAVIOR' => behavior
268
- }
269
- Riddl::Parameter::Complex.new('instance','application/json',JSON::generate(send))
270
- end
271
- end
272
- end #}}}
273
-
274
- class HandleInstance < Riddl::Implementation #{{{
275
- include Helpers
276
-
277
- def response
278
- cpee = @h['X_CPEE'] || @a[0]
279
- selfurl = @a[1]
280
- cblist = @a[2]
281
- instance = @p[1].value
282
-
283
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
284
- res = srv.resource("/#{instance}/properties/values/attributes/uuid")
285
- status, response = res.get
286
-
287
- if status >= 200 && status < 300
288
- uuid = XML::Smart::string(response.first.value).root.text
289
- handle_data cpee, instance, @p[2]&.value
290
- handle_waiting cpee, instance, uuid, @p[0].value, selfurl, cblist
291
- handle_starting cpee, instance, @p[0].value
292
- return Riddl::Parameter::Simple.new("url",cpee + instance)
293
- end
294
- end
295
- end #}}}
296
-
297
- class ContinueTask < Riddl::Implementation #{{{
298
- def response
299
- cpee = @h['X_CPEE'] || @a[0]
300
- cblist = @a[1]
301
- topic = @p[1].value
302
- event_name = @p[2].value
303
- notification = JSON.parse(@p[3].value)
304
-
305
- key = @r.last
306
- cb, condition, instance, uuid, instance_url = cblist.lrange(key,0,-1)
307
-
308
- orisend = {
309
- 'CPEE-INSTANCE' => instance,
310
- 'CPEE-INSTANCE-URL' => instance_url,
311
- 'CPEE-INSTANCE-UUID' => uuid,
312
- 'CPEE-STATE' => notification['state']
313
- }
314
- send = orisend.dup
315
-
316
- if notification['state'] == condition
317
- cblist.del(key)
318
- srv = Riddl::Client.new(cpee, cpee + "?riddl-description")
319
- res = srv.resource("/#{instance}/properties/values/dataelements")
320
- status, response = res.get
321
- if status >= 200 && status < 300
322
- doc = XML::Smart.string(response[0].value.read)
323
- doc.register_namespace 'p', 'http://riddl.org/ns/common-patterns/properties/1.0'
324
- doc.find('/p:value/*').each do |e|
325
- send[e.qname.name] = CPEE::ValueHelper::parse(e.text)
326
- end
327
- end
328
- Riddl::Client.new(cb).put Riddl::Parameter::Complex.new('dataelements','application/json',JSON::generate(send))
329
- else
330
- Riddl::Client.new(cb).put [
331
- Riddl::Header.new('CPEE-UPDATE','true'),
332
- Riddl::Parameter::Complex.new('dataelements','application/json',JSON::generate(send))
333
- ]
334
- end
335
- end
336
- end #}}}
337
-
338
- def self::implementation(opts)
339
- opts[:cpee] ||= 'http://localhost:9298/'
340
- opts[:self] ||= "http#{opts[:secure] ? 's' : ''}://#{opts[:host]}:#{opts[:port]}/"
341
- opts[:cblist] = Redis.new(path: "/tmp/redis.sock", db: 14)
342
- Proc.new do
343
- on resource do
344
- run InstantiateXML, opts[:cpee], true if post 'xmlsimple'
345
- on resource 'xml' do
346
- run InstantiateXML, opts[:cpee], false if post 'xml'
347
- end
348
- on resource 'url' do
349
- run InstantiateUrl, opts[:cpee], opts[:self], opts[:cblist], false if post 'url'
350
- run InstantiateUrl, opts[:cpee], opts[:self], opts[:cblist], true if post 'url_info'
351
- end
352
- on resource 'git' do
353
- run InstantiateGit, opts[:cpee], opts[:self], opts[:cblist] if post 'git'
354
- end
355
- on resource 'instance' do
356
- run HandleInstance, opts[:cpee] if post 'instance'
357
- end
358
- on resource 'callback' do
359
- on resource do
360
- run ContinueTask, opts[:cpee], opts[:cblist] if post
361
- end
362
- end
363
- end
364
- end
365
- end
366
-
367
- end
368
- end