ruote 2.2.0 → 2.3.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 (305) hide show
  1. data/CHANGELOG.txt +166 -1
  2. data/CREDITS.txt +36 -17
  3. data/LICENSE.txt +1 -1
  4. data/README.rdoc +1 -7
  5. data/Rakefile +38 -29
  6. data/TODO.txt +93 -52
  7. data/lib/ruote-fs.rb +3 -0
  8. data/lib/ruote.rb +5 -1
  9. data/lib/ruote/context.rb +140 -35
  10. data/lib/ruote/dashboard.rb +1247 -0
  11. data/lib/ruote/{engine → dboard}/process_error.rb +22 -2
  12. data/lib/ruote/dboard/process_status.rb +587 -0
  13. data/lib/ruote/engine.rb +6 -871
  14. data/lib/ruote/exp/command.rb +7 -2
  15. data/lib/ruote/exp/commanded.rb +2 -2
  16. data/lib/ruote/exp/condition.rb +38 -13
  17. data/lib/ruote/exp/fe_add_branches.rb +1 -1
  18. data/lib/ruote/exp/fe_apply.rb +1 -1
  19. data/lib/ruote/exp/fe_await.rb +357 -0
  20. data/lib/ruote/exp/fe_cancel_process.rb +17 -3
  21. data/lib/ruote/exp/fe_command.rb +8 -4
  22. data/lib/ruote/exp/fe_concurrence.rb +218 -18
  23. data/lib/ruote/exp/fe_concurrent_iterator.rb +71 -10
  24. data/lib/ruote/exp/fe_cron.rb +3 -10
  25. data/lib/ruote/exp/fe_cursor.rb +14 -4
  26. data/lib/ruote/exp/fe_define.rb +3 -1
  27. data/lib/ruote/exp/fe_echo.rb +1 -1
  28. data/lib/ruote/exp/fe_equals.rb +1 -1
  29. data/lib/ruote/exp/fe_error.rb +1 -1
  30. data/lib/ruote/exp/fe_filter.rb +163 -4
  31. data/lib/ruote/exp/fe_forget.rb +21 -4
  32. data/lib/ruote/exp/fe_given.rb +1 -1
  33. data/lib/ruote/exp/fe_if.rb +1 -1
  34. data/lib/ruote/exp/fe_inc.rb +102 -35
  35. data/lib/ruote/exp/fe_iterator.rb +47 -12
  36. data/lib/ruote/exp/fe_listen.rb +96 -11
  37. data/lib/ruote/exp/fe_lose.rb +31 -4
  38. data/lib/ruote/exp/fe_noop.rb +1 -1
  39. data/lib/ruote/exp/fe_on_error.rb +109 -0
  40. data/lib/ruote/exp/fe_once.rb +10 -19
  41. data/lib/ruote/exp/fe_participant.rb +90 -28
  42. data/lib/ruote/exp/fe_read.rb +69 -0
  43. data/lib/ruote/exp/fe_redo.rb +3 -2
  44. data/lib/ruote/exp/fe_ref.rb +57 -27
  45. data/lib/ruote/exp/fe_registerp.rb +1 -3
  46. data/lib/ruote/exp/fe_reserve.rb +1 -1
  47. data/lib/ruote/exp/fe_restore.rb +6 -6
  48. data/lib/ruote/exp/fe_save.rb +12 -19
  49. data/lib/ruote/exp/fe_sequence.rb +38 -2
  50. data/lib/ruote/exp/fe_set.rb +143 -40
  51. data/lib/ruote/exp/{fe_let.rb → fe_stall.rb} +7 -38
  52. data/lib/ruote/exp/fe_subprocess.rb +8 -2
  53. data/lib/ruote/exp/fe_that.rb +1 -1
  54. data/lib/ruote/exp/fe_undo.rb +40 -4
  55. data/lib/ruote/exp/fe_unregisterp.rb +1 -3
  56. data/lib/ruote/exp/fe_wait.rb +12 -25
  57. data/lib/ruote/exp/{flowexpression.rb → flow_expression.rb} +375 -229
  58. data/lib/ruote/exp/iterator.rb +2 -2
  59. data/lib/ruote/exp/merge.rb +78 -17
  60. data/lib/ruote/exp/ro_attributes.rb +46 -36
  61. data/lib/ruote/exp/ro_filters.rb +34 -8
  62. data/lib/ruote/exp/ro_on_x.rb +431 -0
  63. data/lib/ruote/exp/ro_persist.rb +19 -7
  64. data/lib/ruote/exp/ro_timers.rb +123 -0
  65. data/lib/ruote/exp/ro_variables.rb +90 -29
  66. data/lib/ruote/fei.rb +57 -3
  67. data/lib/ruote/fs.rb +3 -0
  68. data/lib/ruote/id/mnemo_wfid_generator.rb +30 -7
  69. data/lib/ruote/id/wfid_generator.rb +17 -38
  70. data/lib/ruote/log/default_history.rb +23 -9
  71. data/lib/ruote/log/fancy_printing.rb +265 -0
  72. data/lib/ruote/log/storage_history.rb +23 -13
  73. data/lib/ruote/log/wait_logger.rb +224 -17
  74. data/lib/ruote/observer.rb +82 -0
  75. data/lib/ruote/part/block_participant.rb +65 -28
  76. data/lib/ruote/part/code_participant.rb +81 -0
  77. data/lib/ruote/part/engine_participant.rb +7 -2
  78. data/lib/ruote/part/local_participant.rb +221 -21
  79. data/lib/ruote/part/no_op_participant.rb +1 -1
  80. data/lib/ruote/part/null_participant.rb +1 -1
  81. data/lib/ruote/part/participant.rb +50 -0
  82. data/lib/ruote/part/rev_participant.rb +178 -0
  83. data/lib/ruote/part/smtp_participant.rb +2 -2
  84. data/lib/ruote/part/storage_participant.rb +228 -60
  85. data/lib/ruote/part/template.rb +1 -1
  86. data/lib/ruote/participant.rb +2 -0
  87. data/lib/ruote/reader.rb +205 -68
  88. data/lib/ruote/reader/json.rb +49 -0
  89. data/lib/ruote/reader/radial.rb +303 -0
  90. data/lib/ruote/reader/ruby_dsl.rb +44 -9
  91. data/lib/ruote/reader/xml.rb +11 -8
  92. data/lib/ruote/receiver/base.rb +98 -45
  93. data/lib/ruote/storage/base.rb +104 -35
  94. data/lib/ruote/storage/composite_storage.rb +50 -60
  95. data/lib/ruote/storage/fs_storage.rb +25 -34
  96. data/lib/ruote/storage/hash_storage.rb +38 -36
  97. data/lib/ruote/svc/dispatch_pool.rb +104 -35
  98. data/lib/ruote/svc/dollar_sub.rb +10 -8
  99. data/lib/ruote/svc/error_handler.rb +108 -52
  100. data/lib/ruote/svc/expression_map.rb +3 -3
  101. data/lib/ruote/svc/participant_list.rb +160 -55
  102. data/lib/ruote/svc/tracker.rb +31 -31
  103. data/lib/ruote/svc/treechecker.rb +28 -16
  104. data/lib/ruote/tree_dot.rb +1 -1
  105. data/lib/ruote/util/deep.rb +143 -0
  106. data/lib/ruote/util/filter.rb +125 -18
  107. data/lib/ruote/util/hashdot.rb +15 -13
  108. data/lib/ruote/util/look.rb +1 -1
  109. data/lib/ruote/util/lookup.rb +60 -22
  110. data/lib/ruote/util/misc.rb +63 -18
  111. data/lib/ruote/util/mpatch.rb +53 -0
  112. data/lib/ruote/util/ometa.rb +1 -2
  113. data/lib/ruote/util/process_observer.rb +177 -0
  114. data/lib/ruote/util/subprocess.rb +1 -1
  115. data/lib/ruote/util/time.rb +2 -2
  116. data/lib/ruote/util/tree.rb +64 -2
  117. data/lib/ruote/version.rb +3 -2
  118. data/lib/ruote/worker.rb +421 -92
  119. data/lib/ruote/workitem.rb +157 -22
  120. data/ruote.gemspec +15 -9
  121. data/test/bm/ci.rb +0 -2
  122. data/test/bm/ici.rb +0 -2
  123. data/test/bm/load_26c.rb +0 -3
  124. data/test/bm/mega.rb +0 -2
  125. data/test/functional/base.rb +57 -43
  126. data/test/functional/concurrent_base.rb +16 -13
  127. data/test/functional/ct_0_concurrence.rb +7 -11
  128. data/test/functional/ct_1_iterator.rb +9 -11
  129. data/test/functional/ct_2_cancel.rb +28 -17
  130. data/test/functional/eft_0_flow_expression.rb +35 -0
  131. data/test/functional/eft_10_cancel_process.rb +1 -1
  132. data/test/functional/eft_11_wait.rb +13 -13
  133. data/test/functional/eft_12_listen.rb +199 -66
  134. data/test/functional/eft_13_iterator.rb +95 -29
  135. data/test/functional/eft_14_cursor.rb +74 -24
  136. data/test/functional/eft_15_loop.rb +7 -7
  137. data/test/functional/eft_16_if.rb +1 -1
  138. data/test/functional/eft_17_equals.rb +1 -1
  139. data/test/functional/eft_18_concurrent_iterator.rb +156 -68
  140. data/test/functional/eft_19_reserve.rb +15 -15
  141. data/test/functional/eft_1_echo.rb +1 -1
  142. data/test/functional/eft_20_save.rb +51 -9
  143. data/test/functional/eft_21_restore.rb +1 -1
  144. data/test/functional/eft_22_noop.rb +1 -1
  145. data/test/functional/eft_23_apply.rb +1 -1
  146. data/test/functional/eft_24_add_branches.rb +7 -8
  147. data/test/functional/eft_25_command.rb +1 -1
  148. data/test/functional/eft_26_error.rb +11 -11
  149. data/test/functional/eft_27_inc.rb +111 -67
  150. data/test/functional/eft_28_once.rb +16 -16
  151. data/test/functional/eft_29_cron.rb +9 -9
  152. data/test/functional/eft_2_sequence.rb +23 -4
  153. data/test/functional/eft_30_ref.rb +36 -24
  154. data/test/functional/eft_31_registerp.rb +24 -24
  155. data/test/functional/eft_32_lose.rb +46 -20
  156. data/test/functional/eft_34_given.rb +1 -1
  157. data/test/functional/eft_35_filter.rb +161 -7
  158. data/test/functional/eft_36_read.rb +97 -0
  159. data/test/functional/{eft_0_process_definition.rb → eft_37_process_definition.rb} +4 -4
  160. data/test/functional/eft_38_on_error.rb +195 -0
  161. data/test/functional/eft_39_stall.rb +35 -0
  162. data/test/functional/eft_3_participant.rb +77 -22
  163. data/test/functional/eft_40_await.rb +297 -0
  164. data/test/functional/eft_4_set.rb +110 -11
  165. data/test/functional/eft_5_subprocess.rb +27 -5
  166. data/test/functional/eft_6_concurrence.rb +299 -60
  167. data/test/functional/eft_7_forget.rb +24 -22
  168. data/test/functional/eft_8_undo.rb +52 -15
  169. data/test/functional/eft_9_redo.rb +18 -20
  170. data/test/functional/ft_0_worker.rb +122 -13
  171. data/test/functional/ft_10_dollar.rb +77 -16
  172. data/test/functional/ft_11_recursion.rb +9 -9
  173. data/test/functional/ft_12_launchitem.rb +7 -9
  174. data/test/functional/ft_13_variables.rb +125 -22
  175. data/test/functional/ft_14_re_apply.rb +112 -56
  176. data/test/functional/ft_15_timeout.rb +64 -33
  177. data/test/functional/ft_16_participant_params.rb +59 -6
  178. data/test/functional/ft_17_conditional.rb +68 -2
  179. data/test/functional/ft_18_kill.rb +48 -30
  180. data/test/functional/ft_19_participant_code.rb +67 -0
  181. data/test/functional/ft_1_process_status.rb +222 -150
  182. data/test/functional/ft_20_storage_participant.rb +445 -44
  183. data/test/functional/ft_21_forget.rb +21 -26
  184. data/test/functional/ft_22_process_definitions.rb +8 -6
  185. data/test/functional/ft_23_load_defs.rb +29 -5
  186. data/test/functional/ft_24_block_participant.rb +199 -20
  187. data/test/functional/ft_25_receiver.rb +98 -46
  188. data/test/functional/ft_26_participant_rtimeout.rb +34 -26
  189. data/test/functional/ft_27_var_indirection.rb +40 -5
  190. data/test/functional/ft_28_null_noop_participants.rb +5 -5
  191. data/test/functional/ft_29_part_template.rb +2 -2
  192. data/test/functional/ft_2_errors.rb +106 -74
  193. data/test/functional/ft_30_smtp_participant.rb +7 -7
  194. data/test/functional/ft_31_part_blocking.rb +11 -11
  195. data/test/functional/ft_32_scope.rb +50 -0
  196. data/test/functional/ft_33_participant_subprocess_priority.rb +3 -3
  197. data/test/functional/ft_34_cursor_rewind.rb +14 -14
  198. data/test/functional/ft_35_add_service.rb +67 -9
  199. data/test/functional/ft_36_storage_history.rb +92 -24
  200. data/test/functional/ft_37_default_history.rb +35 -23
  201. data/test/functional/ft_38_participant_more.rb +189 -32
  202. data/test/functional/ft_39_wait_for.rb +25 -25
  203. data/test/functional/ft_3_participant_registration.rb +235 -107
  204. data/test/functional/ft_40_wait_logger.rb +105 -18
  205. data/test/functional/ft_41_participants.rb +13 -12
  206. data/test/functional/ft_42_storage_copy.rb +12 -12
  207. data/test/functional/ft_43_participant_on_reply.rb +85 -11
  208. data/test/functional/ft_44_var_participant.rb +5 -5
  209. data/test/functional/ft_45_participant_accept.rb +3 -3
  210. data/test/functional/ft_46_launch_single.rb +17 -17
  211. data/test/functional/ft_47_wfids.rb +41 -0
  212. data/test/functional/ft_48_lose.rb +19 -25
  213. data/test/functional/ft_49_engine_on_error.rb +54 -70
  214. data/test/functional/ft_4_cancel.rb +84 -26
  215. data/test/functional/ft_50_engine_config.rb +4 -4
  216. data/test/functional/ft_51_misc.rb +12 -12
  217. data/test/functional/ft_52_case.rb +17 -17
  218. data/test/functional/ft_53_engine_on_terminate.rb +18 -21
  219. data/test/functional/ft_54_patterns.rb +18 -16
  220. data/test/functional/ft_55_engine_participant.rb +55 -55
  221. data/test/functional/ft_56_filter_attribute.rb +90 -52
  222. data/test/functional/ft_57_rev_participant.rb +252 -0
  223. data/test/functional/ft_58_workitem.rb +150 -0
  224. data/test/functional/ft_59_pause.rb +329 -0
  225. data/test/functional/ft_5_on_error.rb +430 -77
  226. data/test/functional/ft_60_code_participant.rb +65 -0
  227. data/test/functional/ft_61_trailing_fields.rb +34 -0
  228. data/test/functional/ft_62_exp_name_and_dollar_substitution.rb +35 -0
  229. data/test/functional/ft_63_participants_221.rb +458 -0
  230. data/test/functional/ft_64_stash.rb +41 -0
  231. data/test/functional/ft_65_timers.rb +313 -0
  232. data/test/functional/ft_66_flank.rb +133 -0
  233. data/test/functional/ft_67_radial_misc.rb +34 -0
  234. data/test/functional/ft_68_reput.rb +72 -0
  235. data/test/functional/ft_69_worker_info.rb +56 -0
  236. data/test/functional/ft_6_on_cancel.rb +189 -36
  237. data/test/functional/ft_70_take_and_discard_attributes.rb +94 -0
  238. data/test/functional/ft_71_retries.rb +144 -0
  239. data/test/functional/ft_72_on_terminate.rb +60 -0
  240. data/test/functional/ft_73_raise_msg.rb +107 -0
  241. data/test/functional/ft_74_respark.rb +106 -0
  242. data/test/functional/ft_75_context.rb +66 -0
  243. data/test/functional/ft_76_observer.rb +53 -0
  244. data/test/functional/ft_77_process_observer.rb +157 -0
  245. data/test/functional/ft_78_part_participant.rb +37 -0
  246. data/test/functional/ft_7_tags.rb +238 -50
  247. data/test/functional/ft_8_participant_consumption.rb +27 -21
  248. data/test/functional/ft_9_subprocesses.rb +48 -18
  249. data/test/functional/restart_base.rb +4 -6
  250. data/test/functional/rt_0_wait.rb +10 -10
  251. data/test/functional/rt_1_listen.rb +6 -6
  252. data/test/functional/rt_2_errors.rb +12 -12
  253. data/test/functional/rt_3_once.rb +17 -12
  254. data/test/functional/rt_4_cron.rb +17 -17
  255. data/test/functional/rt_5_timeout.rb +13 -13
  256. data/test/functional/signals.rb +103 -0
  257. data/test/functional/storage.rb +730 -0
  258. data/test/functional/storage_helper.rb +48 -35
  259. data/test/functional/test.rb +6 -2
  260. data/test/misc/idle.rb +21 -0
  261. data/test/misc/light.rb +29 -0
  262. data/test/path_helper.rb +1 -1
  263. data/test/test.rb +2 -5
  264. data/test/test_helper.rb +13 -0
  265. data/test/unit/test.rb +1 -4
  266. data/test/unit/ut_0_ruby_reader.rb +25 -9
  267. data/test/unit/ut_10_participants.rb +47 -0
  268. data/test/unit/ut_11_lookup.rb +59 -2
  269. data/test/unit/ut_12_wait_logger.rb +123 -0
  270. data/test/unit/ut_14_is_uri.rb +1 -1
  271. data/test/unit/ut_15_util.rb +1 -1
  272. data/test/unit/ut_16_reader.rb +136 -14
  273. data/test/unit/ut_17_merge.rb +155 -0
  274. data/test/unit/ut_19_part_template.rb +1 -1
  275. data/test/unit/ut_1_fei.rb +11 -2
  276. data/test/unit/ut_20_composite_storage.rb +27 -1
  277. data/test/unit/{ut_21_participant_list.rb → ut_21_svc_participant_list.rb} +2 -3
  278. data/test/unit/ut_22_filter.rb +231 -10
  279. data/test/unit/ut_23_svc_tracker.rb +48 -0
  280. data/test/unit/ut_24_radial_reader.rb +458 -0
  281. data/test/unit/ut_25_process_status.rb +143 -0
  282. data/test/unit/ut_26_deep.rb +131 -0
  283. data/test/unit/ut_2_dashboard.rb +114 -0
  284. data/test/unit/ut_3_worker.rb +54 -0
  285. data/test/unit/ut_4_expmap.rb +1 -1
  286. data/test/unit/ut_5_tree.rb +23 -23
  287. data/test/unit/ut_6_condition.rb +71 -29
  288. data/test/unit/ut_7_workitem.rb +18 -4
  289. data/test/unit/ut_8_tree_to_dot.rb +1 -1
  290. data/test/unit/ut_9_xml_reader.rb +1 -1
  291. metadata +142 -63
  292. data/jruby_issue.txt +0 -32
  293. data/lib/ruote/engine/process_status.rb +0 -403
  294. data/lib/ruote/log/pretty.rb +0 -165
  295. data/lib/ruote/log/test_logger.rb +0 -204
  296. data/lib/ruote/util/serializer.rb +0 -103
  297. data/phil.txt +0 -14
  298. data/test/functional/eft_33_let.rb +0 -31
  299. data/test/functional/ft_19_alias.rb +0 -33
  300. data/test/functional/ft_47_wfid_generator.rb +0 -54
  301. data/test/unit/storage.rb +0 -403
  302. data/test/unit/storages.rb +0 -37
  303. data/test/unit/ut_13_serializer.rb +0 -65
  304. data/test/unit/ut_18_engine.rb +0 -47
  305. data/test/unit/ut_3_wait_logger.rb +0 -39
@@ -7,7 +7,7 @@
7
7
  # in the train from Friboug to Zurich-Flughafen
8
8
  #
9
9
 
10
- require File.join(File.dirname(__FILE__), 'base')
10
+ require File.expand_path('../base', __FILE__)
11
11
 
12
12
  require 'ruote/participant'
13
13
 
@@ -35,7 +35,7 @@ class EftOnceTest < Test::Unit::TestCase
35
35
 
36
36
  assert_trace %w[ in over done. ], pdef
37
37
 
38
- assert_equal 0, @engine.storage.get_many('schedules').size
38
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
39
39
  end
40
40
 
41
41
  def test_once_blocking
@@ -59,7 +59,7 @@ class EftOnceTest < Test::Unit::TestCase
59
59
 
60
60
  assert_trace %w[ in over done. ], pdef
61
61
 
62
- assert_equal 0, @engine.storage.get_many('schedules').size
62
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
63
63
  end
64
64
 
65
65
  def test_cancel
@@ -71,18 +71,18 @@ class EftOnceTest < Test::Unit::TestCase
71
71
 
72
72
  #noisy
73
73
 
74
- wfid = @engine.launch(pdef)
74
+ wfid = @dashboard.launch(pdef)
75
75
 
76
76
  wait_for(2)
77
77
 
78
- assert_equal 1, @engine.storage.get_many('schedules').size
78
+ assert_equal 1, @dashboard.storage.get_many('schedules').size
79
79
 
80
- @engine.cancel_process(wfid)
80
+ @dashboard.cancel_process(wfid)
81
81
 
82
82
  wait_for(4)
83
83
 
84
- assert_nil @engine.process(wfid)
85
- assert_equal 0, @engine.storage.get_many('schedules').size
84
+ assert_nil @dashboard.process(wfid)
85
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
86
86
  end
87
87
 
88
88
  def test_cancel_once_child_is_active
@@ -93,20 +93,20 @@ class EftOnceTest < Test::Unit::TestCase
93
93
  end
94
94
  end
95
95
 
96
- @engine.register_participant :alpha, Ruote::StorageParticipant
96
+ @dashboard.register_participant :alpha, Ruote::StorageParticipant
97
97
 
98
98
  #noisy
99
99
 
100
- wfid = @engine.launch(pdef)
100
+ wfid = @dashboard.launch(pdef)
101
101
 
102
- @engine.wait_for(:alpha)
102
+ @dashboard.wait_for(:alpha)
103
103
 
104
- @engine.cancel(wfid)
104
+ @dashboard.cancel(wfid)
105
105
 
106
- @engine.wait_for(wfid)
106
+ @dashboard.wait_for(wfid)
107
107
 
108
- assert_equal 0, @engine.storage_participant.size
109
- assert_equal 0, @engine.storage.get_many('schedules').size
108
+ assert_equal 0, @dashboard.storage_participant.size
109
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
110
110
  end
111
111
 
112
112
  def test_once_cron
@@ -129,7 +129,7 @@ class EftOnceTest < Test::Unit::TestCase
129
129
 
130
130
  assert_trace %w[ in over done. ], pdef
131
131
 
132
- assert_equal 0, @engine.storage.get_many('schedules').size
132
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
133
133
  end
134
134
  end
135
135
 
@@ -5,7 +5,7 @@
5
5
  # Tue Oct 27 16:13:41 JST 2009
6
6
  #
7
7
 
8
- require File.join(File.dirname(__FILE__), 'base')
8
+ require File.expand_path('../base', __FILE__)
9
9
 
10
10
 
11
11
  class EftCronTest < Test::Unit::TestCase
@@ -22,19 +22,19 @@ class EftCronTest < Test::Unit::TestCase
22
22
  #noisy
23
23
 
24
24
  t = Time.now
25
- wfid = @engine.launch(pdef)
25
+ wfid = @dashboard.launch(pdef)
26
26
 
27
27
  wait_for(7)
28
28
 
29
29
  d = Time.now - t
30
30
 
31
- @engine.cancel_process(wfid)
31
+ @dashboard.cancel_process(wfid)
32
32
 
33
33
  wait_for(5)
34
34
 
35
35
  assert_match /^ok\nok/, @tracer.to_s
36
- assert_nil @engine.process(wfid)
37
- assert_equal 0, @engine.storage.get_many('schedules').size
36
+ assert_nil @dashboard.process(wfid)
37
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
38
38
  #assert d < 5.0, "#{d} < 5.0 :("
39
39
  end
40
40
 
@@ -48,17 +48,17 @@ class EftCronTest < Test::Unit::TestCase
48
48
 
49
49
  #noisy
50
50
 
51
- wfid = @engine.launch(pdef)
51
+ wfid = @dashboard.launch(pdef)
52
52
 
53
53
  wait_for(7)
54
54
 
55
- @engine.cancel_process(wfid)
55
+ @dashboard.cancel_process(wfid)
56
56
 
57
57
  wait_for(5)
58
58
 
59
59
  assert_match /^ok\nok/, @tracer.to_s
60
- assert_nil @engine.process(wfid)
61
- assert_equal 0, @engine.storage.get_many('schedules').size
60
+ assert_nil @dashboard.process(wfid)
61
+ assert_equal 0, @dashboard.storage.get_many('schedules').size
62
62
  end
63
63
  end
64
64
 
@@ -5,7 +5,7 @@
5
5
  # Sat Jan 24 22:40:35 JST 2009
6
6
  #
7
7
 
8
- require File.join(File.dirname(__FILE__), 'base')
8
+ require File.expand_path('../base', __FILE__)
9
9
 
10
10
 
11
11
  class EftSequenceTest < Test::Unit::TestCase
@@ -32,7 +32,7 @@ class EftSequenceTest < Test::Unit::TestCase
32
32
  end
33
33
  end
34
34
 
35
- #noisy
35
+ #@dashboard.noisy = true
36
36
 
37
37
  assert_trace("a\nb", pdef)
38
38
  end
@@ -46,13 +46,32 @@ class EftSequenceTest < Test::Unit::TestCase
46
46
  end
47
47
  end
48
48
 
49
- @engine.register_participant '.+' do |workitem|
50
- @tracer << workitem.participant_name + "\n"
49
+ @dashboard.register_participant '.+' do |workitem|
50
+ context.tracer << workitem.participant_name + "\n"
51
51
  end
52
52
 
53
53
  #noisy
54
54
 
55
55
  assert_trace("alice\nbob", pdef)
56
56
  end
57
+
58
+ # Fri Dec 24 15:35:17 JST 2010
59
+ #
60
+ def test_let
61
+
62
+ pdef = Ruote.process_definition do
63
+ set 'v:var' => 'val'
64
+ echo "out:${v:var}"
65
+ let do
66
+ set 'v:var' => 'val1'
67
+ echo "in:${v:var}"
68
+ end
69
+ echo "out:${v:var}"
70
+ end
71
+
72
+ #noisy
73
+
74
+ assert_trace %w[ out:val in:val1 out:val ], pdef
75
+ end
57
76
  end
58
77
 
@@ -5,7 +5,7 @@
5
5
  # Tue Jul 20 12:47:36 JST 2010
6
6
  #
7
7
 
8
- require File.join(File.dirname(__FILE__), 'base')
8
+ require File.expand_path('../base', __FILE__)
9
9
 
10
10
  require 'ruote/participant'
11
11
 
@@ -31,7 +31,7 @@ class EftRefTest < Test::Unit::TestCase
31
31
  echo 'done.'
32
32
  end
33
33
 
34
- @engine.register_participant :alpha, AlphaParticipant
34
+ @dashboard.register_participant :alpha, AlphaParticipant
35
35
 
36
36
  #noisy
37
37
 
@@ -64,23 +64,23 @@ class EftRefTest < Test::Unit::TestCase
64
64
 
65
65
  #noisy
66
66
 
67
- wfid = @engine.launch(pdef)
67
+ wfid = @dashboard.launch(pdef)
68
68
 
69
- @engine.wait_for(wfid)
69
+ @dashboard.wait_for(wfid)
70
70
 
71
- ps = @engine.process(wfid)
71
+ ps = @dashboard.process(wfid)
72
72
 
73
73
  assert_equal 1, ps.errors.size
74
74
 
75
75
  # correct problem and replay at error
76
76
 
77
- @engine.register_participant 'alpha', AlphaParticipant
77
+ @dashboard.register_participant 'alpha', AlphaParticipant
78
78
 
79
- @engine.replay_at_error(ps.errors.first)
79
+ @dashboard.replay_at_error(ps.errors.first)
80
80
 
81
- @engine.wait_for(wfid)
81
+ @dashboard.wait_for(wfid)
82
82
 
83
- assert_nil @engine.process(wfid)
83
+ assert_nil @dashboard.process(wfid)
84
84
  assert_equal '0_0', @tracer.to_s
85
85
  end
86
86
 
@@ -92,25 +92,25 @@ class EftRefTest < Test::Unit::TestCase
92
92
 
93
93
  #noisy
94
94
 
95
- wfid = @engine.launch(pdef)
95
+ wfid = @dashboard.launch(pdef)
96
96
 
97
- @engine.wait_for(wfid)
97
+ @dashboard.wait_for(wfid)
98
98
 
99
- ps = @engine.process(wfid)
99
+ ps = @dashboard.process(wfid)
100
100
 
101
101
  assert_equal 1, ps.errors.size
102
102
 
103
103
  # correct problem and replay at error
104
104
 
105
- @engine.variables['alpha'] = Ruote.process_definition do
105
+ @dashboard.variables['alpha'] = Ruote.process_definition do
106
106
  echo 'alpha'
107
107
  end
108
108
 
109
- @engine.replay_at_error(ps.errors.first)
109
+ @dashboard.replay_at_error(ps.errors.first)
110
110
 
111
- @engine.wait_for(wfid)
111
+ @dashboard.wait_for(wfid)
112
112
 
113
- assert_nil @engine.process(wfid)
113
+ assert_nil @dashboard.process(wfid)
114
114
  assert_equal 'alpha', @tracer.to_s
115
115
  end
116
116
 
@@ -119,7 +119,7 @@ class EftRefTest < Test::Unit::TestCase
119
119
  #
120
120
  def test_ref_and_subprocess_timeout
121
121
 
122
- @engine.register_participant :alpha, Ruote::StorageParticipant
122
+ @dashboard.register_participant :alpha, Ruote::StorageParticipant
123
123
 
124
124
  pdef = Ruote.process_definition do
125
125
  define 'sub0' do
@@ -128,10 +128,10 @@ class EftRefTest < Test::Unit::TestCase
128
128
  ref 'sub0', :timeout => '2d'
129
129
  end
130
130
 
131
- wfid = @engine.launch(pdef)
132
- @engine.wait_for(:alpha)
131
+ wfid = @dashboard.launch(pdef)
132
+ @dashboard.wait_for(:alpha)
133
133
 
134
- scheds = @engine.schedules
134
+ scheds = @dashboard.schedules
135
135
 
136
136
  assert_equal 1, scheds.size
137
137
  assert_equal '0_1', scheds.first['target'].expid
@@ -143,13 +143,25 @@ class EftRefTest < Test::Unit::TestCase
143
143
  ref 'nemo', :on_error => 'undo'
144
144
  end
145
145
 
146
- #noisy
146
+ wfid = @dashboard.launch(pdef)
147
+
148
+ @dashboard.wait_for(wfid)
149
+
150
+ assert_nil @dashboard.process(wfid)
151
+ end
147
152
 
148
- wfid = @engine.launch(pdef)
153
+ def test_ref_pointing_to_filter
154
+
155
+ @dashboard.variables['needs'] = 'filter'
156
+
157
+ pdef = Ruote.process_definition do
158
+ needs { x :type => 'string' }
159
+ end
149
160
 
150
- @engine.wait_for(wfid)
161
+ wfid = @dashboard.launch(pdef, 'x' => 'nada')
162
+ r = @dashboard.wait_for(wfid)
151
163
 
152
- assert_nil @engine.process(wfid)
164
+ assert_equal 'terminated', r['action']
153
165
  end
154
166
  end
155
167
 
@@ -5,7 +5,7 @@
5
5
  # Wed Oct 13 21:22:41 JST 2010
6
6
  #
7
7
 
8
- require File.join(File.dirname(__FILE__), 'base')
8
+ require File.expand_path('../base', __FILE__)
9
9
 
10
10
  require 'ruote/participant'
11
11
 
@@ -19,11 +19,11 @@ class EftRegisterpTest < Test::Unit::TestCase
19
19
  registerp 'alpha', :class => 'C', :opt0 => 'val0'
20
20
  end
21
21
 
22
- wfid = @engine.launch(pdef)
22
+ wfid = @dashboard.launch(pdef)
23
23
 
24
- @engine.wait_for(wfid)
24
+ @dashboard.wait_for(wfid)
25
25
 
26
- err = @engine.errors.first
26
+ err = @dashboard.errors.first
27
27
 
28
28
  assert_equal(
29
29
  "#<ArgumentError: 'registerp_allowed' is set to false, " +
@@ -33,9 +33,9 @@ class EftRegisterpTest < Test::Unit::TestCase
33
33
 
34
34
  def test_register_from_attributes
35
35
 
36
- #@engine.noisy = true
36
+ #@dashboard.noisy = true
37
37
 
38
- @engine.context['registerp_allowed'] = true
38
+ @dashboard.context['registerp_allowed'] = true
39
39
 
40
40
  pdef = Ruote.define do
41
41
  registerp 'alpha', :class => 'C', :opt0 => 'val_a'
@@ -44,8 +44,8 @@ class EftRegisterpTest < Test::Unit::TestCase
44
44
  registerp :regex => 'delta', :class => 'C', :opt0 => 'val_d'
45
45
  end
46
46
 
47
- wfid = @engine.launch(pdef)
48
- @engine.wait_for(wfid)
47
+ wfid = @dashboard.launch(pdef)
48
+ @dashboard.wait_for(wfid)
49
49
 
50
50
  assert_equal(
51
51
  [
@@ -54,28 +54,28 @@ class EftRegisterpTest < Test::Unit::TestCase
54
54
  [ 'charly', [ 'C', { 'opt0' => 'val_c' } ] ],
55
55
  [ 'delta', [ 'C', { 'opt0' => 'val_d' } ] ]
56
56
  ],
57
- @engine.participant_list.collect { |e| e.to_a })
57
+ @dashboard.participant_list.collect { |e| e.to_a })
58
58
  end
59
59
 
60
60
  def test_register_from_workitem
61
61
 
62
- #@engine.noisy = true
62
+ #@dashboard.noisy = true
63
63
 
64
- @engine.context['registerp_allowed'] = true
64
+ @dashboard.context['registerp_allowed'] = true
65
65
 
66
66
  pdef = Ruote.define do
67
67
  registerp :participants => 'participants'
68
68
  registerp :participant => 'participant'
69
69
  end
70
70
 
71
- wfid = @engine.launch(pdef,
71
+ wfid = @dashboard.launch(pdef,
72
72
  'participants' => [
73
73
  [ 'alpha', 'C', { 'opt0' => 'val_a' } ],
74
74
  [ '/bravo/', 'C', { 'opt0' => 'val_b' } ]
75
75
  ],
76
76
  'participant' => [ '/charly/', 'C', { 'opt0' => 'val_c' } ])
77
77
 
78
- @engine.wait_for(wfid)
78
+ @dashboard.wait_for(wfid)
79
79
 
80
80
  assert_equal(
81
81
  [
@@ -83,48 +83,48 @@ class EftRegisterpTest < Test::Unit::TestCase
83
83
  [ 'bravo', [ 'C', { 'opt0' => 'val_b' } ] ],
84
84
  [ 'charly', [ 'C', { 'opt0' => 'val_c' } ] ]
85
85
  ],
86
- @engine.participant_list.collect { |e| e.to_a })
86
+ @dashboard.participant_list.collect { |e| e.to_a })
87
87
  end
88
88
 
89
89
  def test_register_with_position
90
90
 
91
- #@engine.noisy = true
91
+ #@dashboard.noisy = true
92
92
 
93
- @engine.context['registerp_allowed'] = true
93
+ @dashboard.context['registerp_allowed'] = true
94
94
 
95
95
  pdef = Ruote.define do
96
96
  registerp 'alpha', :class => 'C', :opt0 => 'val_a'
97
97
  registerp /bravo/, :class => 'C', :opt0 => 'val_b', :position => 0
98
98
  end
99
99
 
100
- wfid = @engine.launch(pdef)
101
- @engine.wait_for(wfid)
100
+ wfid = @dashboard.launch(pdef)
101
+ @dashboard.wait_for(wfid)
102
102
 
103
103
  assert_equal(
104
104
  [
105
105
  [ 'bravo', [ 'C', { 'opt0' => 'val_b', 'position' => 0 } ] ],
106
106
  [ '^alpha$', [ 'C', { 'opt0' => 'val_a' } ] ]
107
107
  ],
108
- @engine.participant_list.collect { |e| e.to_a })
108
+ @dashboard.participant_list.collect { |e| e.to_a })
109
109
  end
110
110
 
111
111
  def test_unregister
112
112
 
113
- #@engine.noisy = true
113
+ #@dashboard.noisy = true
114
114
 
115
- @engine.context['registerp_allowed'] = true
115
+ @dashboard.context['registerp_allowed'] = true
116
116
 
117
117
  pdef = Ruote.define do
118
118
  registerp 'alpha', :class => 'C', :opt0 => 'val_a'
119
119
  unregisterp 'alpha'
120
120
  end
121
121
 
122
- wfid = @engine.launch(pdef)
123
- @engine.wait_for(wfid)
122
+ wfid = @dashboard.launch(pdef)
123
+ @dashboard.wait_for(wfid)
124
124
 
125
125
  assert_equal(
126
126
  [],
127
- @engine.participant_list.collect { |e| e.to_a })
127
+ @dashboard.participant_list.collect { |e| e.to_a })
128
128
  end
129
129
  end
130
130