jruby_activiti 1.2.5 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG +6 -0
  5. data/Jarfile +5 -0
  6. data/Jarfile.lock +52 -13
  7. data/README.md +21 -9
  8. data/java/build.md +3 -0
  9. data/java/mapping.md +20 -0
  10. data/java/pom.xml +30 -0
  11. data/java/src/main/java/jrubyactiviti/Modeler.java +95 -0
  12. data/java/src/main/java/jrubyactiviti/ProcessDiagram.java +491 -0
  13. data/java/src/main/java/jrubyactiviti/ProcessInstanceHighlights.java +237 -0
  14. data/java/src/main/java/jrubyactiviti/StencilsetResource.java +16 -0
  15. data/java/src/main/resources/stencilset.json +1339 -0
  16. data/jruby_activiti.gemspec +3 -2
  17. data/lib/generators/jruby_activiti/install_generator.rb +4 -0
  18. data/lib/jar/jrubyactiviti-2.0.jar +0 -0
  19. data/lib/jruby_activiti/version.rb +1 -1
  20. data/lib/jruby_activiti/web.rb +81 -0
  21. data/lib/jruby_activiti.rb +28 -20
  22. data/test/{base_test.rb → activiti_test.rb} +1 -3
  23. data/test/instance_hights_test.rb +18 -0
  24. data/test/modeler_test.rb +35 -0
  25. data/test/process_diagram_test.rb +33 -0
  26. data/test/resources/model_init_editor_source.json +1 -0
  27. data/test/resources/model_json_xml.json +278 -0
  28. data/test/resources/model_svg_xml.xml +66 -0
  29. data/test/stencilset_test.rb +7 -0
  30. data/test/test_helper.rb +2 -0
  31. data/web/public/diagram-viewer/images/bg.png +0 -0
  32. data/web/public/diagram-viewer/images/breadcrumbs.png +0 -0
  33. data/web/public/diagram-viewer/images/checker-bg.png +0 -0
  34. data/web/public/diagram-viewer/images/deployer/blue/message_catch.png +0 -0
  35. data/web/public/diagram-viewer/images/deployer/business_rule.png +0 -0
  36. data/web/public/diagram-viewer/images/deployer/error_catch.png +0 -0
  37. data/web/public/diagram-viewer/images/deployer/error_throw.png +0 -0
  38. data/web/public/diagram-viewer/images/deployer/manual.png +0 -0
  39. data/web/public/diagram-viewer/images/deployer/message_catch.png +0 -0
  40. data/web/public/diagram-viewer/images/deployer/message_throw.png +0 -0
  41. data/web/public/diagram-viewer/images/deployer/receive.png +0 -0
  42. data/web/public/diagram-viewer/images/deployer/script.png +0 -0
  43. data/web/public/diagram-viewer/images/deployer/send.png +0 -0
  44. data/web/public/diagram-viewer/images/deployer/service.png +0 -0
  45. data/web/public/diagram-viewer/images/deployer/signal_catch.png +0 -0
  46. data/web/public/diagram-viewer/images/deployer/signal_throw.png +0 -0
  47. data/web/public/diagram-viewer/images/deployer/timer.png +0 -0
  48. data/web/public/diagram-viewer/images/deployer/user.png +0 -0
  49. data/web/public/diagram-viewer/index.html +130 -0
  50. data/web/public/diagram-viewer/js/ActivitiRest.js +74 -0
  51. data/web/public/diagram-viewer/js/ActivityImpl.js +1 -0
  52. data/web/public/diagram-viewer/js/Color.js +603 -0
  53. data/web/public/diagram-viewer/js/LineBreakMeasurer.js +270 -0
  54. data/web/public/diagram-viewer/js/Polyline.js +387 -0
  55. data/web/public/diagram-viewer/js/ProcessDiagramCanvas.js +2172 -0
  56. data/web/public/diagram-viewer/js/ProcessDiagramGenerator.js +1087 -0
  57. data/web/public/diagram-viewer/js/jquery/jquery.asyncqueue.js +125 -0
  58. data/web/public/diagram-viewer/js/jquery/jquery.js +9266 -0
  59. data/web/public/diagram-viewer/js/jquery/jquery.progressbar.js +131 -0
  60. data/web/public/diagram-viewer/js/jstools.js +23 -0
  61. data/web/public/diagram-viewer/js/raphael.2.1.1.js +10 -0
  62. data/web/public/diagram-viewer/js/raphael.js +10 -0
  63. data/web/public/diagram-viewer/js/raphael_uncompressed.js +5815 -0
  64. data/web/public/diagram-viewer/js/textlayout.js +441 -0
  65. data/web/public/diagram-viewer/style.css +1 -0
  66. data/web/public/editor-app/app-cfg.js +25 -0
  67. data/web/public/editor-app/app.js +432 -0
  68. data/web/public/editor-app/configuration/properties/assignment-display-template.html +4 -0
  69. data/web/public/editor-app/configuration/properties/assignment-popup.html +44 -0
  70. data/web/public/editor-app/configuration/properties/assignment-write-template.html +4 -0
  71. data/web/public/editor-app/configuration/properties/boolean-property-template.html +4 -0
  72. data/web/public/editor-app/configuration/properties/condition-expression-display-template.html +2 -0
  73. data/web/public/editor-app/configuration/properties/condition-expression-popup.html +29 -0
  74. data/web/public/editor-app/configuration/properties/condition-expression-write-template.html +4 -0
  75. data/web/public/editor-app/configuration/properties/default-value-display-template.html +4 -0
  76. data/web/public/editor-app/configuration/properties/event-listeners-display-template.html +3 -0
  77. data/web/public/editor-app/configuration/properties/event-listeners-popup.html +115 -0
  78. data/web/public/editor-app/configuration/properties/event-listeners-write-template.html +4 -0
  79. data/web/public/editor-app/configuration/properties/execution-listeners-display-template.html +3 -0
  80. data/web/public/editor-app/configuration/properties/execution-listeners-popup.html +101 -0
  81. data/web/public/editor-app/configuration/properties/execution-listeners-write-template.html +4 -0
  82. data/web/public/editor-app/configuration/properties/feedback-popup.html +17 -0
  83. data/web/public/editor-app/configuration/properties/fields-display-template.html +3 -0
  84. data/web/public/editor-app/configuration/properties/fields-popup.html +61 -0
  85. data/web/public/editor-app/configuration/properties/fields-write-template.html +4 -0
  86. data/web/public/editor-app/configuration/properties/form-properties-display-template.html +3 -0
  87. data/web/public/editor-app/configuration/properties/form-properties-popup.html +93 -0
  88. data/web/public/editor-app/configuration/properties/form-properties-write-template.html +4 -0
  89. data/web/public/editor-app/configuration/properties/in-parameters-display-template.html +3 -0
  90. data/web/public/editor-app/configuration/properties/in-parameters-popup.html +53 -0
  91. data/web/public/editor-app/configuration/properties/in-parameters-write-template.html +4 -0
  92. data/web/public/editor-app/configuration/properties/message-definitions-display-template.html +2 -0
  93. data/web/public/editor-app/configuration/properties/message-definitions-popup.html +50 -0
  94. data/web/public/editor-app/configuration/properties/message-definitions-write-template.html +3 -0
  95. data/web/public/editor-app/configuration/properties/message-property-write-template.html +4 -0
  96. data/web/public/editor-app/configuration/properties/multiinstance-property-write-template.html +8 -0
  97. data/web/public/editor-app/configuration/properties/out-parameters-display-template.html +3 -0
  98. data/web/public/editor-app/configuration/properties/out-parameters-popup.html +53 -0
  99. data/web/public/editor-app/configuration/properties/out-parameters-write-template.html +4 -0
  100. data/web/public/editor-app/configuration/properties/sequenceflow-order-display-template.html +3 -0
  101. data/web/public/editor-app/configuration/properties/sequenceflow-order-popup.html +47 -0
  102. data/web/public/editor-app/configuration/properties/sequenceflow-order-write-template.html +4 -0
  103. data/web/public/editor-app/configuration/properties/signal-definitions-display-template.html +3 -0
  104. data/web/public/editor-app/configuration/properties/signal-definitions-popup.html +58 -0
  105. data/web/public/editor-app/configuration/properties/signal-definitions-write-template.html +4 -0
  106. data/web/public/editor-app/configuration/properties/signal-property-write-template.html +4 -0
  107. data/web/public/editor-app/configuration/properties/string-property-write-mode-template.html +8 -0
  108. data/web/public/editor-app/configuration/properties/subprocess-reference-display-template.html +3 -0
  109. data/web/public/editor-app/configuration/properties/subprocess-reference-popup.html +43 -0
  110. data/web/public/editor-app/configuration/properties/subprocess-reference-write-template.html +4 -0
  111. data/web/public/editor-app/configuration/properties/task-listeners-display-template.html +3 -0
  112. data/web/public/editor-app/configuration/properties/task-listeners-popup.html +102 -0
  113. data/web/public/editor-app/configuration/properties/task-listeners-write-template.html +4 -0
  114. data/web/public/editor-app/configuration/properties/text-popup.html +17 -0
  115. data/web/public/editor-app/configuration/properties/text-property-write-template.html +4 -0
  116. data/web/public/editor-app/configuration/properties-assignment-controller.js +150 -0
  117. data/web/public/editor-app/configuration/properties-condition-expression-controller.js +58 -0
  118. data/web/public/editor-app/configuration/properties-custom-controllers.js +18 -0
  119. data/web/public/editor-app/configuration/properties-default-controllers.js +115 -0
  120. data/web/public/editor-app/configuration/properties-event-listeners-controller.js +266 -0
  121. data/web/public/editor-app/configuration/properties-execution-listeners-controller.js +326 -0
  122. data/web/public/editor-app/configuration/properties-fields-controller.js +192 -0
  123. data/web/public/editor-app/configuration/properties-form-properties-controller.js +192 -0
  124. data/web/public/editor-app/configuration/properties-in-parameters-controller.js +158 -0
  125. data/web/public/editor-app/configuration/properties-message-definitions-controller.js +137 -0
  126. data/web/public/editor-app/configuration/properties-message-scope-controller.js +48 -0
  127. data/web/public/editor-app/configuration/properties-multiinstance-controller.js +34 -0
  128. data/web/public/editor-app/configuration/properties-out-parameters-controller.js +158 -0
  129. data/web/public/editor-app/configuration/properties-sequenceflow-order-controller.js +130 -0
  130. data/web/public/editor-app/configuration/properties-signal-definitions-controller.js +136 -0
  131. data/web/public/editor-app/configuration/properties-signal-scope-controller.js +47 -0
  132. data/web/public/editor-app/configuration/properties-task-listeners-controller.js +325 -0
  133. data/web/public/editor-app/configuration/properties.js +99 -0
  134. data/web/public/editor-app/configuration/toolbar-custom-actions.js +18 -0
  135. data/web/public/editor-app/configuration/toolbar-default-actions.js +429 -0
  136. data/web/public/editor-app/configuration/toolbar.js +175 -0
  137. data/web/public/editor-app/configuration/url-config.js +34 -0
  138. data/web/public/editor-app/css/style-common.css +1518 -0
  139. data/web/public/editor-app/css/style-editor.css +639 -0
  140. data/web/public/editor-app/css/style.css +471 -0
  141. data/web/public/editor-app/editor/css/editor.css +202 -0
  142. data/web/public/editor-app/editor/i18n/translation_de.js +383 -0
  143. data/web/public/editor-app/editor/i18n/translation_en_us.js +423 -0
  144. data/web/public/editor-app/editor/i18n/translation_signavio_de.js +106 -0
  145. data/web/public/editor-app/editor/i18n/translation_signavio_en_us.js +108 -0
  146. data/web/public/editor-app/editor/oryx.debug.js +24510 -0
  147. data/web/public/editor-app/editor/oryx.js +30 -0
  148. data/web/public/editor-app/editor-config.js +32 -0
  149. data/web/public/editor-app/editor-controller.js +65 -0
  150. data/web/public/editor-app/editor-utils.js +135 -0
  151. data/web/public/editor-app/editor.html +136 -0
  152. data/web/public/editor-app/eventbus.js +133 -0
  153. data/web/public/editor-app/fonts/activiti-admin-webfont.eot +0 -0
  154. data/web/public/editor-app/fonts/activiti-admin-webfont.svg +43 -0
  155. data/web/public/editor-app/fonts/activiti-admin-webfont.ttf +0 -0
  156. data/web/public/editor-app/fonts/activiti-admin-webfont.woff +0 -0
  157. data/web/public/editor-app/fonts/glyphicons-halflings-regular.eot +0 -0
  158. data/web/public/editor-app/fonts/glyphicons-halflings-regular.svg +229 -0
  159. data/web/public/editor-app/fonts/glyphicons-halflings-regular.ttf +0 -0
  160. data/web/public/editor-app/fonts/glyphicons-halflings-regular.woff +0 -0
  161. data/web/public/editor-app/header-controller.js +31 -0
  162. data/web/public/editor-app/i18n/en.json +286 -0
  163. data/web/public/editor-app/images/bpmn-error.png +0 -0
  164. data/web/public/editor-app/images/bpmn-warning.png +0 -0
  165. data/web/public/editor-app/images/datadefinition.png +0 -0
  166. data/web/public/editor-app/images/delete.png +0 -0
  167. data/web/public/editor-app/images/loading.gif +0 -0
  168. data/web/public/editor-app/images/logo-2x.png +0 -0
  169. data/web/public/editor-app/images/logo.png +0 -0
  170. data/web/public/editor-app/images/nw-handle-dark.gif +0 -0
  171. data/web/public/editor-app/images/se-handle-dark.gif +0 -0
  172. data/web/public/editor-app/images/shapemenu_highlight.png +0 -0
  173. data/web/public/editor-app/images/wrench.png +0 -0
  174. data/web/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js +8 -0
  175. data/web/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map +8 -0
  176. data/web/public/editor-app/libs/angular-dragdrop.min-1.0.3.js +9 -0
  177. data/web/public/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js +29 -0
  178. data/web/public/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js +2136 -0
  179. data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.js +596 -0
  180. data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js +13 -0
  181. data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map +8 -0
  182. data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.js +921 -0
  183. data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js +14 -0
  184. data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map +8 -0
  185. data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js +625 -0
  186. data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js +14 -0
  187. data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map +8 -0
  188. data/web/public/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js +1 -0
  189. data/web/public/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js +9 -0
  190. data/web/public/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js +8 -0
  191. data/web/public/editor-app/libs/angular-translate-loader-static-files/.bower.json +19 -0
  192. data/web/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js +31 -0
  193. data/web/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js +6 -0
  194. data/web/public/editor-app/libs/angular-translate-storage-cookie/.bower.json +20 -0
  195. data/web/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js +19 -0
  196. data/web/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js +6 -0
  197. data/web/public/editor-app/libs/angular-translate_2.4.2/angular-translate.js +960 -0
  198. data/web/public/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js +6 -0
  199. data/web/public/editor-app/libs/angular_1.2.13/angular-animate.min.js +27 -0
  200. data/web/public/editor-app/libs/angular_1.2.13/angular.min.js +204 -0
  201. data/web/public/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css +267 -0
  202. data/web/public/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js +1026 -0
  203. data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css +347 -0
  204. data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map +1 -0
  205. data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css +7 -0
  206. data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css +5785 -0
  207. data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map +1 -0
  208. data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css +7 -0
  209. data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot +0 -0
  210. data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg +229 -0
  211. data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf +0 -0
  212. data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff +0 -0
  213. data/web/public/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js +1951 -0
  214. data/web/public/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js +6 -0
  215. data/web/public/editor-app/libs/es5-shim-15.3.4.5/.bower.json +14 -0
  216. data/web/public/editor-app/libs/es5-shim-15.3.4.5/.gitignore +2 -0
  217. data/web/public/editor-app/libs/es5-shim-15.3.4.5/CHANGES +93 -0
  218. data/web/public/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md +25 -0
  219. data/web/public/editor-app/libs/es5-shim-15.3.4.5/LICENSE +19 -0
  220. data/web/public/editor-app/libs/es5-shim-15.3.4.5/README.md +161 -0
  221. data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js +444 -0
  222. data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map +1 -0
  223. data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js +4 -0
  224. data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js +1314 -0
  225. data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map +1 -0
  226. data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js +4 -0
  227. data/web/public/editor-app/libs/es5-shim-15.3.4.5/package.json +34 -0
  228. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js +64 -0
  229. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js +34 -0
  230. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js +3 -0
  231. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.html +64 -0
  232. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html +63 -0
  233. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js +190 -0
  234. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css +166 -0
  235. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js +2477 -0
  236. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png +0 -0
  237. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js +478 -0
  238. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js +1223 -0
  239. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js +152 -0
  240. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js +147 -0
  241. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js +14 -0
  242. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js +181 -0
  243. data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js +204 -0
  244. data/web/public/editor-app/libs/jquery-ui-1.10.3.custom.min.js +6 -0
  245. data/web/public/editor-app/libs/jquery.autogrow-textarea.js +61 -0
  246. data/web/public/editor-app/libs/jquery_1.11.0/jquery.js +9789 -0
  247. data/web/public/editor-app/libs/jquery_1.11.0/jquery.min.js +4 -0
  248. data/web/public/editor-app/libs/jquery_1.11.0/jquery.min.map +1 -0
  249. data/web/public/editor-app/libs/json3_3.2.6/LICENSE +20 -0
  250. data/web/public/editor-app/libs/json3_3.2.6/lib/json3.js +861 -0
  251. data/web/public/editor-app/libs/json3_3.2.6/lib/json3.min.js +18 -0
  252. data/web/public/editor-app/libs/momentjs_2.5.1/momentjs.min.js +6 -0
  253. data/web/public/editor-app/libs/mousetrap-1.4.5.min.js +9 -0
  254. data/web/public/editor-app/libs/ng-grid-2.0.7-min.js +2 -0
  255. data/web/public/editor-app/libs/ng-grid-2.0.7.min.css +1 -0
  256. data/web/public/editor-app/libs/path_parser.js +30 -0
  257. data/web/public/editor-app/libs/prototype-1.5.1.js +3272 -0
  258. data/web/public/editor-app/libs/ui-utils.min-0.0.4.js +7 -0
  259. data/web/public/editor-app/partials/root-stencil-item-template.html +11 -0
  260. data/web/public/editor-app/partials/stencil-item-template.html +27 -0
  261. data/web/public/editor-app/plugins.xml +58 -0
  262. data/web/public/editor-app/popups/icon-template.html +3 -0
  263. data/web/public/editor-app/popups/save-model.html +41 -0
  264. data/web/public/editor-app/popups/select-shape.html +20 -0
  265. data/web/public/editor-app/popups/unsaved-changes.html +22 -0
  266. data/web/public/editor-app/select-shape-controller.js +314 -0
  267. data/web/public/editor-app/stencil-controller.js +1421 -0
  268. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png +0 -0
  269. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png +0 -0
  270. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png +0 -0
  271. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png +0 -0
  272. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png +0 -0
  273. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png +0 -0
  274. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png +0 -0
  275. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png +0 -0
  276. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png +0 -0
  277. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png +0 -0
  278. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png +0 -0
  279. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png +0 -0
  280. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png +0 -0
  281. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png +0 -0
  282. data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/task.png +0 -0
  283. data/web/public/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png +0 -0
  284. data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png +0 -0
  285. data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png +0 -0
  286. data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/error.png +0 -0
  287. data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/message.png +0 -0
  288. data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png +0 -0
  289. data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png +0 -0
  290. data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png +0 -0
  291. data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png +0 -0
  292. data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png +0 -0
  293. data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png +0 -0
  294. data/web/public/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png +0 -0
  295. data/web/public/editor-app/stencilsets/bpmn2.0/icons/diagram.png +0 -0
  296. data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png +0 -0
  297. data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png +0 -0
  298. data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png +0 -0
  299. data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png +0 -0
  300. data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png +0 -0
  301. data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png +0 -0
  302. data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png +0 -0
  303. data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png +0 -0
  304. data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png +0 -0
  305. data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png +0 -0
  306. data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png +0 -0
  307. data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png +0 -0
  308. data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png +0 -0
  309. data/web/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png +0 -0
  310. data/web/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png +0 -0
  311. data/web/public/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png +0 -0
  312. data/web/public/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png +0 -0
  313. data/web/public/editor-app/toolbar-controller.js +162 -0
  314. data/web/public/modeler.html +140 -0
  315. data/web/views/models/index.erb +32 -0
  316. data/web/views/models/new.erb +15 -0
  317. metadata +334 -10
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  # spec.platform = "java"
10
10
  spec.authors = ["richfisher"]
11
11
  spec.email = ["richfisher.pan@gmail.com"]
12
- spec.summary = "Access and interact with Activiti BPM in JRuby/Rails directly, https://github.com/richfisher/jruby_activiti"
12
+ spec.summary = "Integrate Activiti BPM in JRuby/Rails, including Activiti Engine, Modeler and Diagram Viewer. https://github.com/richfisher/jruby_activiti"
13
13
  spec.description = spec.summary
14
14
  spec.homepage = "https://github.com/richfisher/jruby_activiti"
15
15
  spec.license = "MIT"
@@ -21,5 +21,6 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency "minitest", '~> 5.8'
23
23
 
24
- spec.add_dependency "jbundler", '~> 0.9'
24
+ spec.add_dependency "jbundler"
25
+ spec.add_dependency "sinatra"
25
26
  end
@@ -22,6 +22,10 @@ module JrubyActiviti
22
22
  def create_initializer_file
23
23
  copy_file "initializer.rb", "config/initializers/jruby_activiti.rb"
24
24
  end
25
+
26
+ def add_routes
27
+ route "mount JrubyActiviti::Web => '/activiti' if defined?(JrubyActiviti)"
28
+ end
25
29
  end
26
30
  end
27
31
  end
Binary file
@@ -1,3 +1,3 @@
1
1
  module JrubyActiviti
2
- VERSION = "1.2.5"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -0,0 +1,81 @@
1
+ require 'sinatra'
2
+
3
+ module JrubyActiviti
4
+ class Web < Sinatra::Base
5
+ set :root, File.expand_path(File.dirname(__FILE__) + "/../../web")
6
+ set :public_folder, proc { "#{root}/public" }
7
+ set :views, proc { "#{root}/views" }
8
+
9
+ get "/" do
10
+ redirect uri('/models')
11
+ end
12
+
13
+ get "/service/model/:model_id/json" do
14
+ model = Activiti::RepositoryService.createModelQuery().modelId(params['model_id']).singleResult()
15
+ modeler = Java::Jrubyactiviti::Modeler.new(Activiti::RepositoryService)
16
+ modeler.show(model.getId()).to_s
17
+ end
18
+
19
+ get "/service/editor/stencilset" do
20
+ Java::Jrubyactiviti::StencilsetResource.getStencilset().to_s
21
+ end
22
+
23
+ put "/service/model/:model_id/save" do
24
+ model = Activiti::RepositoryService.createModelQuery().modelId(params['model_id']).singleResult()
25
+ map = Activiti::Utils.hash_to_map(params)
26
+ modeler = Java::Jrubyactiviti::Modeler.new(Activiti::RepositoryService)
27
+ modeler.save(model.getId(), map)
28
+ 200
29
+ end
30
+
31
+ get "/service/process-definition/:process_definition_id/diagram-layout" do
32
+ diagramer = Java::Jrubyactiviti::ProcessDiagram.new(
33
+ Activiti::RuntimeService,
34
+ Activiti::RepositoryService,
35
+ Activiti::HistoryService)
36
+ json = diagramer.getDiagramNode(nil, params[:process_definition_id]).to_s
37
+ "#{params[:callback]}(#{json})"
38
+ end
39
+
40
+ # seems not be used
41
+ get "/service/process-instance/:process_instance_id/diagram-layout" do
42
+ diagramer = Java::Jrubyactiviti::ProcessDiagram.new(
43
+ Activiti::RuntimeService,
44
+ Activiti::RepositoryService,
45
+ Activiti::HistoryService)
46
+ json = diagramer.getDiagramNode(params[:process_instance_id], nil).to_s
47
+ "#{params[:callback]}(#{json})"
48
+ end
49
+
50
+ get "/service/process-instance/:process_instance_id/highlights" do
51
+ highlighter = Java::Jrubyactiviti::ProcessInstanceHighlights.new(
52
+ Activiti::RuntimeService,
53
+ Activiti::RepositoryService,
54
+ Activiti::HistoryService)
55
+ json = highlighter.getHighlighted(params[:process_instance_id]).to_s
56
+ "#{params[:callback]}(#{json})"
57
+ end
58
+
59
+ get "/models" do
60
+ @models = Activiti::RepositoryService.createModelQuery().orderByCreateTime().desc().list()
61
+ erb 'models/index'.to_sym
62
+ end
63
+
64
+ get "/models/new" do
65
+ erb 'models/new'.to_sym
66
+ end
67
+
68
+ post "/models" do
69
+ model = Activiti::RepositoryService.newModel
70
+ model.setName(params[:name])
71
+ model.setCategory(params[:category])
72
+ model.setMetaInfo('{}')
73
+ Activiti::RepositoryService.saveModel(model)
74
+
75
+ init_json = '{"id":"canvas","resourceId":"canvas","stencilset":{"namespace":"http://b3mn.org/stencilset/bpmn2.0#"}}'
76
+ Activiti::RepositoryService.addModelEditorSource(model.getId(), init_json.bytes)
77
+
78
+ redirect uri('/models')
79
+ end
80
+ end
81
+ end
@@ -1,36 +1,44 @@
1
1
  require "jruby_activiti/version"
2
+ require "jruby_activiti/web"
3
+ # require File.dirname(__FILE__) + '/../java/target/jrubyactiviti-2.0.jar'
4
+ require File.dirname(__FILE__) + '/jar/jrubyactiviti-2.0.jar'
2
5
 
3
6
  require "jbundler"
4
7
  Bundler.require "activiti-engine"
8
+ Bundler.require "util"
5
9
 
6
10
  module JrubyActiviti
7
11
  ConfigPath ||= "config/activiti.cfg.xml"
8
12
 
9
13
  def self.build_engine
10
- Activiti.build_engine
11
- end
14
+ return self if @engine
12
15
 
13
- module Activiti
14
- def self.build_engine
15
- return self if @engine
16
+ configuration = Java::OrgActivitiEngine::ProcessEngineConfiguration.
17
+ createProcessEngineConfigurationFromResource(ConfigPath)
18
+ @engine = configuration.buildProcessEngine
19
+ self.set_activiti_const
16
20
 
17
- configuration = Java::OrgActivitiEngine::ProcessEngineConfiguration.
18
- createProcessEngineConfigurationFromResource(ConfigPath)
19
- @engine = configuration.buildProcessEngine
20
- self.set_activiti_const
21
+ return self
22
+ end
21
23
 
22
- return self
23
- end
24
+ def self.set_activiti_const
25
+ const_set 'Engine', @engine
26
+ const_set 'RepositoryService', @engine.getRepositoryService()
27
+ const_set 'RuntimeService', @engine.getRuntimeService()
28
+ const_set 'TaskService', @engine.getTaskService()
29
+ const_set 'ManagementService', @engine.getManagementService()
30
+ const_set 'IdentityService', @engine.getIdentityService()
31
+ const_set 'HistoryService', @engine.getHistoryService()
32
+ const_set 'FormService', @engine.getFormService()
33
+ end
24
34
 
25
- def self.set_activiti_const
26
- const_set 'Engine', @engine
27
- const_set 'RepositoryService', @engine.getRepositoryService()
28
- const_set 'RuntimeService', @engine.getRuntimeService()
29
- const_set 'TaskService', @engine.getTaskService()
30
- const_set 'ManagementService', @engine.getManagementService()
31
- const_set 'IdentityService', @engine.getIdentityService()
32
- const_set 'HistoryService', @engine.getHistoryService()
33
- const_set 'FormService', @engine.getFormService()
35
+ module Utils
36
+ def self.hash_to_map(hash)
37
+ map = Java::JavaUtil::HashMap.new
38
+ hash.each do |k,v|
39
+ map.put(k.to_s,v.to_s)
40
+ end
41
+ map
34
42
  end
35
43
  end
36
44
  end
@@ -2,8 +2,6 @@ require 'test_helper'
2
2
 
3
3
  Bundler.require "h2"
4
4
 
5
- Activiti = JrubyActiviti.build_engine
6
-
7
5
  def assert_difference(cmd, target_count)
8
6
  count1 = eval(cmd)
9
7
  yield if block_given?
@@ -12,7 +10,7 @@ def assert_difference(cmd, target_count)
12
10
  assert_equal target_count, count2-count1
13
11
  end
14
12
 
15
- class BaseTest < Minitest::Test
13
+ class IntegrationTest < Minitest::Test
16
14
  def before_setup
17
15
  @@deployed ||= deploy_vacation_request
18
16
  end
@@ -0,0 +1,18 @@
1
+ require 'test_helper'
2
+
3
+ class InstanceHightsTest < Minitest::Test
4
+ def test_instance_diagram
5
+ highlighter = Java::Jrubyactiviti::ProcessInstanceHighlights.new(
6
+ Activiti::RuntimeService,
7
+ Activiti::RepositoryService,
8
+ Activiti::HistoryService)
9
+
10
+ Activiti::RepositoryService.createDeployment().
11
+ addClasspathResource("test/resources/VacationRequest.bpmn20.xml").
12
+ deploy()
13
+ Activiti::RuntimeService.startProcessInstanceByKey("vacationRequest", {});
14
+
15
+ instance = Activiti::RuntimeService.createProcessInstanceQuery().list().first()
16
+ assert highlighter.getHighlighted(instance.getId())
17
+ end
18
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class ModelerTest < Minitest::Test
4
+ def setup
5
+ @modeler = Java::Jrubyactiviti::Modeler.new(Activiti::RepositoryService)
6
+ end
7
+
8
+ def create_model
9
+ model = Activiti::RepositoryService.newModel
10
+ model.setName('modeler_test')
11
+ model.setMetaInfo('{}')
12
+ Activiti::RepositoryService.saveModel(model)
13
+ init_json = File.open(File.dirname(__FILE__)+'/resources/model_init_editor_source.json').read
14
+ Activiti::RepositoryService.addModelEditorSource(model.getId(),init_json.bytes)
15
+ model
16
+ end
17
+
18
+ def test_save
19
+ hash = {
20
+ 'name': 'aname',
21
+ 'description': 'adescription',
22
+ 'json_xml': File.open(File.dirname(__FILE__)+'/resources/model_json_xml.json').read,
23
+ 'svg_xml': File.open(File.dirname(__FILE__)+'/resources/model_svg_xml.xml').read
24
+ }
25
+ map = Activiti::Utils.hash_to_map(hash)
26
+
27
+ model = create_model
28
+ @modeler.save(model.getId(), map)
29
+ end
30
+
31
+ def test_show
32
+ model = create_model
33
+ assert @modeler.show(model.getId())
34
+ end
35
+ end
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+
3
+ class ProcessDiagramTest < Minitest::Test
4
+ def test_definition_diagram
5
+ diagramer = Java::Jrubyactiviti::ProcessDiagram.new(
6
+ Activiti::RuntimeService,
7
+ Activiti::RepositoryService,
8
+ Activiti::HistoryService)
9
+
10
+ Activiti::RepositoryService.createDeployment().
11
+ addClasspathResource("test/resources/VacationRequest.bpmn20.xml").
12
+ deploy()
13
+ Activiti::RuntimeService.startProcessInstanceByKey("vacationRequest", {});
14
+
15
+ pdid = Activiti::RuntimeService.createProcessInstanceQuery().list().first().getProcessDefinitionId()
16
+ assert diagramer.getDiagramNode(nil, pdid)
17
+ end
18
+
19
+ def test_instance_diagram
20
+ diagramer = Java::Jrubyactiviti::ProcessDiagram.new(
21
+ Activiti::RuntimeService,
22
+ Activiti::RepositoryService,
23
+ Activiti::HistoryService)
24
+
25
+ Activiti::RepositoryService.createDeployment().
26
+ addClasspathResource("test/resources/VacationRequest.bpmn20.xml").
27
+ deploy()
28
+ Activiti::RuntimeService.startProcessInstanceByKey("vacationRequest", {});
29
+
30
+ instance = Activiti::RuntimeService.createProcessInstanceQuery().list().first()
31
+ assert diagramer.getDiagramNode(instance.getId(), nil)
32
+ end
33
+ end
@@ -0,0 +1 @@
1
+ {"id":"canvas","resourceId":"canvas","stencilset":{"namespace":"http://b3mn.org/stencilset/bpmn2.0#"}}
@@ -0,0 +1,278 @@
1
+ {
2
+ "resourceId": "1649",
3
+ "properties": {
4
+ "process_id": "process",
5
+ "name": "",
6
+ "documentation": "",
7
+ "process_author": "",
8
+ "process_version": "",
9
+ "process_namespace": "http://www.activiti.org/processdef",
10
+ "executionlisteners": "",
11
+ "eventlisteners": "",
12
+ "signaldefinitions": "",
13
+ "messagedefinitions": ""
14
+ },
15
+ "stencil": {
16
+ "id": "BPMNDiagram"
17
+ },
18
+ "childShapes": [{
19
+ "resourceId": "sid-661AFB90-AD05-4D8F-ABB9-64018D8A271D",
20
+ "properties": {
21
+ "overrideid": "",
22
+ "name": "",
23
+ "documentation": "",
24
+ "executionlisteners": "",
25
+ "initiator": "",
26
+ "formkeydefinition": "",
27
+ "formproperties": ""
28
+ },
29
+ "stencil": {
30
+ "id": "StartNoneEvent"
31
+ },
32
+ "childShapes": [],
33
+ "outgoing": [{
34
+ "resourceId": "sid-F7856D41-5426-4FC5-B267-7AF366537986"
35
+ }],
36
+ "bounds": {
37
+ "lowerRight": {
38
+ "x": 143.5,
39
+ "y": 147
40
+ },
41
+ "upperLeft": {
42
+ "x": 113.5,
43
+ "y": 117
44
+ }
45
+ },
46
+ "dockers": []
47
+ }, {
48
+ "resourceId": "sid-B5E2DF17-E733-4D5C-9B2A-1B4947DE82ED",
49
+ "properties": {
50
+ "overrideid": "",
51
+ "name": "",
52
+ "documentation": "",
53
+ "asynchronousdefinition": "false",
54
+ "exclusivedefinition": "false",
55
+ "executionlisteners": "",
56
+ "multiinstance_type": "None",
57
+ "multiinstance_cardinality": "",
58
+ "multiinstance_collection": "",
59
+ "multiinstance_variable": "",
60
+ "multiinstance_condition": "",
61
+ "isforcompensation": "false",
62
+ "usertaskassignment": "",
63
+ "formkeydefinition": "",
64
+ "duedatedefinition": "",
65
+ "prioritydefinition": "",
66
+ "formproperties": "",
67
+ "tasklisteners": ""
68
+ },
69
+ "stencil": {
70
+ "id": "UserTask"
71
+ },
72
+ "childShapes": [],
73
+ "outgoing": [{
74
+ "resourceId": "sid-75F9A329-B83E-400D-8647-1BC0618A8211"
75
+ }],
76
+ "bounds": {
77
+ "lowerRight": {
78
+ "x": 288.5,
79
+ "y": 172
80
+ },
81
+ "upperLeft": {
82
+ "x": 188.5,
83
+ "y": 92
84
+ }
85
+ },
86
+ "dockers": []
87
+ }, {
88
+ "resourceId": "sid-F7856D41-5426-4FC5-B267-7AF366537986",
89
+ "properties": {
90
+ "overrideid": "",
91
+ "name": "",
92
+ "documentation": "",
93
+ "conditionsequenceflow": "",
94
+ "executionlisteners": "",
95
+ "defaultflow": "false"
96
+ },
97
+ "stencil": {
98
+ "id": "SequenceFlow"
99
+ },
100
+ "childShapes": [],
101
+ "outgoing": [{
102
+ "resourceId": "sid-B5E2DF17-E733-4D5C-9B2A-1B4947DE82ED"
103
+ }],
104
+ "bounds": {
105
+ "lowerRight": {
106
+ "x": 187.65625,
107
+ "y": 132
108
+ },
109
+ "upperLeft": {
110
+ "x": 144.109375,
111
+ "y": 132
112
+ }
113
+ },
114
+ "dockers": [{
115
+ "x": 15,
116
+ "y": 15
117
+ }, {
118
+ "x": 50,
119
+ "y": 40
120
+ }],
121
+ "target": {
122
+ "resourceId": "sid-B5E2DF17-E733-4D5C-9B2A-1B4947DE82ED"
123
+ }
124
+ }, {
125
+ "resourceId": "sid-EED58D00-9C48-4C71-842D-2559368AC304",
126
+ "properties": {
127
+ "overrideid": "",
128
+ "name": "",
129
+ "documentation": "",
130
+ "asynchronousdefinition": "false",
131
+ "exclusivedefinition": "false",
132
+ "executionlisteners": "",
133
+ "multiinstance_type": "None",
134
+ "multiinstance_cardinality": "",
135
+ "multiinstance_collection": "",
136
+ "multiinstance_variable": "",
137
+ "multiinstance_condition": "",
138
+ "isforcompensation": "false",
139
+ "usertaskassignment": "",
140
+ "formkeydefinition": "",
141
+ "duedatedefinition": "",
142
+ "prioritydefinition": "",
143
+ "formproperties": "",
144
+ "tasklisteners": ""
145
+ },
146
+ "stencil": {
147
+ "id": "UserTask"
148
+ },
149
+ "childShapes": [],
150
+ "outgoing": [{
151
+ "resourceId": "sid-DECD18FD-D6AF-4AF6-8A1F-15C234F06AB9"
152
+ }],
153
+ "bounds": {
154
+ "lowerRight": {
155
+ "x": 433.5,
156
+ "y": 172
157
+ },
158
+ "upperLeft": {
159
+ "x": 333.5,
160
+ "y": 92
161
+ }
162
+ },
163
+ "dockers": []
164
+ }, {
165
+ "resourceId": "sid-75F9A329-B83E-400D-8647-1BC0618A8211",
166
+ "properties": {
167
+ "overrideid": "",
168
+ "name": "",
169
+ "documentation": "",
170
+ "conditionsequenceflow": "",
171
+ "executionlisteners": "",
172
+ "defaultflow": "false"
173
+ },
174
+ "stencil": {
175
+ "id": "SequenceFlow"
176
+ },
177
+ "childShapes": [],
178
+ "outgoing": [{
179
+ "resourceId": "sid-EED58D00-9C48-4C71-842D-2559368AC304"
180
+ }],
181
+ "bounds": {
182
+ "lowerRight": {
183
+ "x": 332.65625,
184
+ "y": 132
185
+ },
186
+ "upperLeft": {
187
+ "x": 289.34375,
188
+ "y": 132
189
+ }
190
+ },
191
+ "dockers": [{
192
+ "x": 50,
193
+ "y": 40
194
+ }, {
195
+ "x": 50,
196
+ "y": 40
197
+ }],
198
+ "target": {
199
+ "resourceId": "sid-EED58D00-9C48-4C71-842D-2559368AC304"
200
+ }
201
+ }, {
202
+ "resourceId": "sid-80A15A5A-C8F0-4BD5-B975-6BA4AA9EFF6C",
203
+ "properties": {
204
+ "overrideid": "",
205
+ "name": "",
206
+ "documentation": "",
207
+ "executionlisteners": ""
208
+ },
209
+ "stencil": {
210
+ "id": "EndNoneEvent"
211
+ },
212
+ "childShapes": [],
213
+ "outgoing": [],
214
+ "bounds": {
215
+ "lowerRight": {
216
+ "x": 506.5,
217
+ "y": 146
218
+ },
219
+ "upperLeft": {
220
+ "x": 478.5,
221
+ "y": 118
222
+ }
223
+ },
224
+ "dockers": []
225
+ }, {
226
+ "resourceId": "sid-DECD18FD-D6AF-4AF6-8A1F-15C234F06AB9",
227
+ "properties": {
228
+ "overrideid": "",
229
+ "name": "",
230
+ "documentation": "",
231
+ "conditionsequenceflow": "",
232
+ "executionlisteners": "",
233
+ "defaultflow": "false"
234
+ },
235
+ "stencil": {
236
+ "id": "SequenceFlow"
237
+ },
238
+ "childShapes": [],
239
+ "outgoing": [{
240
+ "resourceId": "sid-80A15A5A-C8F0-4BD5-B975-6BA4AA9EFF6C"
241
+ }],
242
+ "bounds": {
243
+ "lowerRight": {
244
+ "x": 477.875,
245
+ "y": 132
246
+ },
247
+ "upperLeft": {
248
+ "x": 433.890625,
249
+ "y": 132
250
+ }
251
+ },
252
+ "dockers": [{
253
+ "x": 50,
254
+ "y": 40
255
+ }, {
256
+ "x": 14,
257
+ "y": 14
258
+ }],
259
+ "target": {
260
+ "resourceId": "sid-80A15A5A-C8F0-4BD5-B975-6BA4AA9EFF6C"
261
+ }
262
+ }],
263
+ "bounds": {
264
+ "lowerRight": {
265
+ "x": 1200,
266
+ "y": 1050
267
+ },
268
+ "upperLeft": {
269
+ "x": 0,
270
+ "y": 0
271
+ }
272
+ },
273
+ "stencilset": {
274
+ "url": "stencilsets/bpmn2.0/bpmn2.0.json",
275
+ "namespace": "http://b3mn.org/stencilset/bpmn2.0#"
276
+ },
277
+ "ssextensions": []
278
+ }