ruote 0.9.18 → 0.9.19

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 (323) hide show
  1. data/README.txt +2 -0
  2. data/examples/about_state.rb +29 -29
  3. data/examples/bigflow.rb +9 -9
  4. data/examples/csv_weather.rb +4 -4
  5. data/examples/engine_template.rb +141 -129
  6. data/examples/flowtracing.rb +8 -8
  7. data/examples/homeworkreview.rb +15 -15
  8. data/examples/kotoba.rb +9 -9
  9. data/examples/mano_tracker.rb +63 -63
  10. data/examples/openwferu.rb +22 -20
  11. data/examples/quotereporter.rb +79 -79
  12. data/lib/openwfe/contextual.rb +72 -72
  13. data/lib/openwfe/def.rb +21 -21
  14. data/lib/openwfe/engine.rb +19 -19
  15. data/lib/openwfe/engine/engine.rb +578 -614
  16. data/lib/openwfe/engine/expool_methods.rb +144 -115
  17. data/lib/openwfe/engine/file_persisted_engine.rb +77 -77
  18. data/lib/openwfe/engine/participant_methods.rb +96 -96
  19. data/lib/openwfe/engine/status_methods.rb +271 -247
  20. data/lib/openwfe/engine/update_exp_methods.rb +69 -69
  21. data/lib/openwfe/exceptions.rb +25 -25
  22. data/lib/openwfe/expool/errorjournal.rb +334 -348
  23. data/lib/openwfe/expool/expool_pause_methods.rb +98 -0
  24. data/lib/openwfe/expool/expressionpool.rb +793 -800
  25. data/lib/openwfe/expool/expstorage.rb +284 -313
  26. data/lib/openwfe/expool/history.rb +193 -105
  27. data/lib/openwfe/expool/journal.rb +163 -163
  28. data/lib/openwfe/expool/journal_replay.rb +228 -228
  29. data/lib/openwfe/expool/parser.rb +178 -142
  30. data/lib/openwfe/{orest/exception.rb → expool/paused_error.rb} +49 -32
  31. data/lib/openwfe/expool/representation.rb +59 -59
  32. data/lib/openwfe/expool/threadedexpstorage.rb +137 -134
  33. data/lib/openwfe/expool/wfidgen.rb +289 -287
  34. data/lib/openwfe/expool/yamlexpstorage.rb +154 -154
  35. data/lib/openwfe/expressions/condition.rb +175 -168
  36. data/lib/openwfe/expressions/environment.rb +165 -165
  37. data/lib/openwfe/expressions/expressionmap.rb +135 -131
  38. data/lib/openwfe/expressions/fe_cancel.rb +68 -68
  39. data/lib/openwfe/expressions/fe_command.rb +190 -190
  40. data/lib/openwfe/expressions/fe_concurrence.rb +531 -531
  41. data/lib/openwfe/expressions/fe_cron.rb +152 -197
  42. data/lib/openwfe/expressions/fe_cursor.rb +152 -186
  43. data/lib/openwfe/expressions/fe_define.rb +118 -118
  44. data/lib/openwfe/expressions/fe_do.rb +109 -109
  45. data/lib/openwfe/expressions/fe_equals.rb +219 -219
  46. data/lib/openwfe/expressions/fe_filter.rb +98 -98
  47. data/lib/openwfe/expressions/fe_filter_definition.rb +122 -122
  48. data/lib/openwfe/expressions/fe_fqv.rb +203 -203
  49. data/lib/openwfe/expressions/fe_http.rb +212 -0
  50. data/lib/openwfe/expressions/fe_if.rb +214 -214
  51. data/lib/openwfe/expressions/fe_iterator.rb +91 -91
  52. data/lib/openwfe/expressions/fe_listen.rb +268 -268
  53. data/lib/openwfe/expressions/fe_losfor.rb +73 -73
  54. data/lib/openwfe/expressions/fe_misc.rb +343 -351
  55. data/lib/openwfe/expressions/fe_participant.rb +206 -206
  56. data/lib/openwfe/expressions/fe_reserve.rb +153 -142
  57. data/lib/openwfe/expressions/fe_save.rb +226 -226
  58. data/lib/openwfe/expressions/fe_sequence.rb +66 -56
  59. data/lib/openwfe/expressions/fe_set.rb +80 -80
  60. data/lib/openwfe/expressions/fe_sleep.rb +132 -125
  61. data/lib/openwfe/expressions/fe_step.rb +113 -111
  62. data/lib/openwfe/expressions/fe_subprocess.rb +139 -136
  63. data/lib/openwfe/expressions/fe_timeout.rb +74 -78
  64. data/lib/openwfe/expressions/fe_wait.rb +48 -49
  65. data/lib/openwfe/expressions/fe_when.rb +106 -106
  66. data/lib/openwfe/expressions/filter.rb +60 -60
  67. data/lib/openwfe/expressions/flowexpression.rb +618 -612
  68. data/lib/openwfe/expressions/iterator.rb +158 -158
  69. data/lib/openwfe/expressions/merge.rb +53 -53
  70. data/lib/openwfe/expressions/raw.rb +396 -397
  71. data/lib/openwfe/expressions/rprocdef.rb +261 -266
  72. data/lib/openwfe/expressions/time.rb +238 -243
  73. data/lib/openwfe/expressions/timeout.rb +135 -135
  74. data/lib/openwfe/expressions/value.rb +55 -55
  75. data/lib/openwfe/extras/engine/db_persisted_engine.rb +94 -0
  76. data/lib/openwfe/extras/expool/dberrorjournal.rb +189 -0
  77. data/lib/openwfe/extras/expool/dbexpstorage.rb +355 -0
  78. data/lib/openwfe/extras/expool/dbhistory.rb +135 -0
  79. data/lib/openwfe/extras/listeners/sqslisteners.rb +146 -0
  80. data/lib/openwfe/extras/misc/activityfeed.rb +264 -0
  81. data/lib/openwfe/extras/misc/basecamp.rb +485 -0
  82. data/lib/openwfe/extras/participants/activeparticipants.rb +749 -0
  83. data/lib/openwfe/extras/participants/atomfeed_participants.rb +173 -0
  84. data/lib/openwfe/extras/participants/atompub_participants.rb +267 -0
  85. data/lib/openwfe/extras/participants/basecamp_participants.rb +87 -0
  86. data/lib/openwfe/extras/participants/csvparticipants.rb +127 -0
  87. data/lib/openwfe/extras/participants/sqsparticipants.rb +125 -0
  88. data/lib/openwfe/extras/participants/twitterparticipants.rb +176 -0
  89. data/lib/openwfe/filterdef.rb +191 -191
  90. data/lib/openwfe/flowexpressionid.rb +271 -269
  91. data/lib/openwfe/listeners/listener.rb +61 -61
  92. data/lib/openwfe/listeners/listeners.rb +81 -81
  93. data/lib/openwfe/listeners/socketlisteners.rb +189 -189
  94. data/lib/openwfe/logging.rb +74 -74
  95. data/lib/openwfe/omixins.rb +55 -54
  96. data/lib/openwfe/orest/definitions.rb +90 -90
  97. data/lib/openwfe/orest/osocket.rb +91 -91
  98. data/lib/openwfe/orest/xmlcodec.rb +471 -459
  99. data/lib/openwfe/participants.rb +19 -19
  100. data/lib/openwfe/participants/enoparticipants.rb +187 -187
  101. data/lib/openwfe/participants/participant.rb +100 -100
  102. data/lib/openwfe/participants/participantmap.rb +170 -170
  103. data/lib/openwfe/participants/participants.rb +316 -316
  104. data/lib/openwfe/participants/soapparticipants.rb +90 -90
  105. data/lib/openwfe/participants/socketparticipants.rb +143 -143
  106. data/lib/openwfe/participants/storeparticipants.rb +198 -198
  107. data/lib/openwfe/rexml.rb +44 -0
  108. data/lib/openwfe/rudefinitions.rb +87 -91
  109. data/lib/openwfe/service.rb +65 -65
  110. data/lib/openwfe/storage/yamlcustom.rb +71 -71
  111. data/lib/openwfe/storage/yamlfilestorage.rb +190 -190
  112. data/lib/openwfe/tools/flowtracer.rb +41 -45
  113. data/lib/openwfe/util/dollar.rb +125 -139
  114. data/lib/openwfe/util/irb.rb +42 -42
  115. data/lib/openwfe/util/observable.rb +93 -99
  116. data/lib/openwfe/util/ometa.rb +36 -36
  117. data/lib/openwfe/util/treechecker.rb +122 -0
  118. data/lib/openwfe/util/workqueue.rb +73 -73
  119. data/lib/openwfe/util/xml.rb +285 -279
  120. data/lib/openwfe/utils.rb +415 -442
  121. data/lib/openwfe/version.rb +1 -1
  122. data/lib/openwfe/workitem.rb +444 -437
  123. data/lib/openwfe/worklist/oldrest.rb +161 -161
  124. data/lib/openwfe/worklist/storelocks.rb +218 -218
  125. data/lib/openwfe/worklist/storeparticipant.rb +19 -19
  126. data/lib/openwfe/worklist/worklist.rb +223 -223
  127. data/test/back_0916_test.rb +57 -59
  128. data/test/bm/bm_1_xml_vs_prog.rb +25 -22
  129. data/test/bm/bm_2_step.rb +81 -81
  130. data/test/bm/ft_0f_5ms.rb +13 -13
  131. data/test/bm/ft_26_load.rb +177 -179
  132. data/test/bm/ft_26b_load.rb +57 -59
  133. data/test/bm/ft_26c_load.rb +70 -65
  134. data/test/bm/ft_recu.rb +51 -51
  135. data/test/clone_test.rb +145 -99
  136. data/test/concurrence_test.rb +41 -41
  137. data/test/condition_test.rb +104 -90
  138. data/test/description_test.rb +46 -45
  139. data/test/eno_test.rb +36 -36
  140. data/test/expmap_test.rb +26 -26
  141. data/test/extras/README.txt +5 -0
  142. data/test/extras/active_connection.rb +48 -0
  143. data/test/extras/active_with_engine_test.rb +140 -0
  144. data/test/extras/activityfeed_test.rb +85 -0
  145. data/test/extras/ap_0_test.rb +287 -0
  146. data/test/extras/ap_1_test.rb +53 -0
  147. data/test/extras/ap_test_base.rb +24 -0
  148. data/test/extras/atomfeedp_test.rb +113 -0
  149. data/test/extras/atompubp_test.rb +91 -0
  150. data/test/extras/basecamp_test.rb +53 -0
  151. data/test/extras/db_errorjournal_utest.rb +75 -0
  152. data/test/extras/db_expstorage_utest.rb +171 -0
  153. data/test/extras/db_history_0_test.rb +58 -0
  154. data/test/extras/ft_19_csv.rb +58 -0
  155. data/test/extras/ft_71_b14008.rb +85 -0
  156. data/test/extras/sqs_test.rb +57 -0
  157. data/test/extras/twitter_test.rb +62 -0
  158. data/test/fe_lookup_att_test.rb +41 -41
  159. data/test/fei_test.rb +131 -131
  160. data/test/file_persisted_engine_test.rb +30 -30
  161. data/test/file_persistence_test.rb +112 -111
  162. data/test/filep_cancel_test.rb +58 -58
  163. data/test/filter_test.rb +67 -67
  164. data/test/flowtestbase.rb +207 -219
  165. data/test/ft_0.rb +35 -35
  166. data/test/ft_0b_sequence.rb +15 -15
  167. data/test/ft_0c_testname.rb +12 -12
  168. data/test/ft_0d_participant.rb +9 -9
  169. data/test/ft_0e_multibody.rb +11 -11
  170. data/test/ft_10_loop.rb +103 -104
  171. data/test/ft_11_ppd.rb +285 -289
  172. data/test/ft_11b_ppd.rb +26 -26
  173. data/test/ft_12_blockparticipant.rb +57 -57
  174. data/test/ft_13_eno.rb +31 -31
  175. data/test/ft_14_subprocess.rb +45 -45
  176. data/test/ft_14b_subprocess.rb +107 -107
  177. data/test/ft_14c_subprocess.rb +33 -33
  178. data/test/ft_15_iterator.rb +127 -127
  179. data/test/ft_15b_iterator.rb +41 -41
  180. data/test/ft_16_fqv.rb +44 -44
  181. data/test/ft_17_condition.rb +48 -48
  182. data/test/ft_18_pname.rb +26 -26
  183. data/test/ft_1_unset.rb +140 -140
  184. data/test/ft_1b_unset.rb +17 -17
  185. data/test/ft_20_cron.rb +33 -33
  186. data/test/ft_21_cron.rb +51 -51
  187. data/test/ft_21b_cron_pause.rb +41 -41
  188. data/test/ft_22_history.rb +45 -41
  189. data/test/ft_23_when.rb +51 -51
  190. data/test/ft_23b_when.rb +43 -43
  191. data/test/ft_23c_wait.rb +48 -48
  192. data/test/ft_23d_cww.rb +28 -28
  193. data/test/ft_24_def.rb +15 -15
  194. data/test/ft_25_cancel.rb +57 -54
  195. data/test/ft_27_getflowpos.rb +79 -83
  196. data/test/ft_28_fileparticipant.rb +25 -25
  197. data/test/ft_29_httprb.rb +57 -57
  198. data/test/ft_2_concurrence.rb +99 -97
  199. data/test/ft_2b_concurrence.rb +132 -132
  200. data/test/ft_2c_concurrence.rb +37 -37
  201. data/test/ft_30_socketlistener.rb +133 -133
  202. data/test/ft_31_flowname.rb +15 -16
  203. data/test/ft_32_journal.rb +48 -48
  204. data/test/ft_32c_journal.rb +54 -54
  205. data/test/ft_32d_journal.rb +43 -46
  206. data/test/ft_33_description.rb +62 -62
  207. data/test/ft_34_cancelwfid.rb +37 -37
  208. data/test/ft_35_localdefs.rb +36 -34
  209. data/test/ft_36_subprocids.rb +61 -61
  210. data/test/ft_37_pnames.rb +33 -33
  211. data/test/ft_38_tag.rb +82 -82
  212. data/test/ft_38b_tag.rb +97 -97
  213. data/test/ft_38c_tag.rb +50 -50
  214. data/test/ft_38d_tag.rb +53 -0
  215. data/test/ft_39_reserve.rb +33 -33
  216. data/test/ft_39b_reserve.rb +59 -59
  217. data/test/ft_3_equals.rb +131 -131
  218. data/test/ft_3b_lookup_vf.rb +43 -43
  219. data/test/ft_40_defined.rb +33 -33
  220. data/test/ft_41_case.rb +80 -80
  221. data/test/ft_42_environments.rb +48 -48
  222. data/test/ft_43_pat10.rb +51 -51
  223. data/test/ft_44_save.rb +37 -37
  224. data/test/ft_44b_restore.rb +151 -151
  225. data/test/ft_45_citerator.rb +149 -149
  226. data/test/ft_45b_citerator.rb +77 -0
  227. data/test/ft_46_pparams.rb +27 -27
  228. data/test/ft_47_filter.rb +100 -100
  229. data/test/ft_48_fe_filter.rb +41 -41
  230. data/test/ft_49_condition.rb +101 -94
  231. data/test/ft_4_misc.rb +185 -190
  232. data/test/ft_50_xml_attribute.rb +101 -104
  233. data/test/ft_51_stack.rb +30 -30
  234. data/test/ft_52_obs_participant.rb +73 -73
  235. data/test/ft_53_null_noop_participant.rb +31 -31
  236. data/test/ft_54_listen.rb +183 -183
  237. data/test/ft_54b_listen.rb +32 -32
  238. data/test/ft_54c_listen.rb +60 -60
  239. data/test/ft_55_ptimeout.rb +29 -30
  240. data/test/ft_56_timeout.rb +29 -29
  241. data/test/ft_57_a.rb +105 -102
  242. data/test/ft_58_ejournal.rb +83 -80
  243. data/test/ft_58b_ejournal.rb +82 -0
  244. data/test/ft_59_ps.rb +148 -86
  245. data/test/ft_5_time.rb +77 -77
  246. data/test/ft_60_ecancel.rb +98 -98
  247. data/test/ft_61_elsub.rb +23 -23
  248. data/test/ft_62_procparticipant.rb +46 -46
  249. data/test/ft_63_pause.rb +82 -69
  250. data/test/ft_64_alias.rb +56 -57
  251. data/test/ft_65_stringlaunch.rb +29 -29
  252. data/test/ft_66_subforget.rb +42 -42
  253. data/test/ft_67_schedlaunch.rb +58 -59
  254. data/test/ft_68_ifparticipant.rb +39 -39
  255. data/test/ft_69_cancelmissing.rb +23 -21
  256. data/test/ft_6_lambda.rb +37 -37
  257. data/test/ft_70_lookupvar.rb +25 -25
  258. data/test/ft_71_log.rb +35 -35
  259. data/test/ft_72_lookup_processes.rb +43 -40
  260. data/test/ft_73_cancel_sub.rb +79 -79
  261. data/test/ft_74_block_and_workitem_dup.rb +42 -42
  262. data/test/ft_75_ruby_attributes.rb +53 -51
  263. data/test/ft_76_merge_isolate.rb +57 -57
  264. data/test/ft_77_segments.rb +13 -13
  265. data/test/ft_78_eval.rb +94 -94
  266. data/test/ft_79_tticket.rb +79 -79
  267. data/test/ft_79b_tticket.rb +73 -73
  268. data/test/ft_79c_outcome.rb +36 -36
  269. data/test/ft_7_lose.rb +73 -73
  270. data/test/ft_7b_lose.rb +49 -49
  271. data/test/ft_80_spname.rb +65 -65
  272. data/test/ft_81_exp.rb +30 -30
  273. data/test/ft_82_trecu.rb +30 -24
  274. data/test/ft_83_badpause.rb +35 -35
  275. data/test/ft_84_updateexp.rb +118 -118
  276. data/test/ft_84b_subrepr.rb +72 -0
  277. data/test/ft_85_dolhash.rb +18 -18
  278. data/test/ft_86_dollar_fv.rb +33 -33
  279. data/test/ft_87_define.rb +47 -47
  280. data/test/ft_88_http.rb +100 -0
  281. data/test/ft_8_forget.rb +25 -25
  282. data/test/ft_9_cursor.rb +119 -110
  283. data/test/ft_9b_cursor.rb +70 -70
  284. data/test/ft_tests.rb +6 -0
  285. data/test/hash_test.rb +52 -34
  286. data/test/hparticipant_test.rb +92 -88
  287. data/test/lookup_att_test.rb +70 -70
  288. data/test/lookup_vf_test.rb +52 -52
  289. data/test/misc_test.rb +55 -51
  290. data/test/obs_test.rb +82 -82
  291. data/test/param_test.rb +181 -181
  292. data/test/participant_test.rb +46 -46
  293. data/test/pending.rb +12 -12
  294. data/test/ps_representation.rb +70 -70
  295. data/test/rake_ltest.rb +2 -2
  296. data/test/rake_qtest.rb +11 -11
  297. data/test/raw_prog_test.rb +303 -308
  298. data/test/restart_cron_test.rb +74 -74
  299. data/test/restart_paused_test.rb +52 -47
  300. data/test/restart_sleep_test.rb +80 -80
  301. data/test/restart_when_test.rb +64 -64
  302. data/test/ruby_procdef_test.rb +71 -71
  303. data/test/rutest_utils.rb +32 -32
  304. data/test/sec_test.rb +143 -142
  305. data/test/slock_test.rb +41 -41
  306. data/test/storage_test.rb +15 -15
  307. data/test/timeout_test.rb +53 -53
  308. data/test/treechecker_test.rb +111 -0
  309. data/test/util_xml_test.rb +57 -57
  310. data/test/wfid_test.rb +93 -93
  311. data/test/wi_test.rb +58 -58
  312. metadata +64 -19
  313. data/examples/scheduler_cron_usage.rb +0 -48
  314. data/examples/scheduler_usage.rb +0 -56
  315. data/lib/openwfe/orest/controlclient.rb +0 -119
  316. data/lib/openwfe/orest/oldrestservlet.rb +0 -279
  317. data/lib/openwfe/orest/restclient.rb +0 -176
  318. data/lib/openwfe/orest/workitem.rb +0 -206
  319. data/lib/openwfe/orest/worklistclient.rb +0 -272
  320. data/test/bm/ft_26d_load.rb +0 -97
  321. data/test/ft_59b_ps_for_pat.rb +0 -58
  322. data/test/ft_64_clone.rb +0 -69
  323. data/test/orest_test.rb +0 -251
@@ -17,95 +17,93 @@ require 'openwfe/engine/file_persisted_engine'
17
17
 
18
18
  class Back0916Test < Test::Unit::TestCase
19
19
 
20
- WORK = 'work_back'
20
+ WORK = 'work_back'
21
21
 
22
- def setup
22
+ def setup
23
23
 
24
- FileUtils.rm_rf WORK
25
- FileUtils.mkdir WORK
24
+ FileUtils.rm_rf WORK
25
+ FileUtils.mkdir WORK
26
26
 
27
- `cd work_back && tar xzvf ../test/expool_20031219_0916.tgz`
27
+ `cd work_back && tar xzvf ../test/expool_20031219_0916.tgz`
28
28
 
29
- ac = { :work_directory => WORK }
29
+ ac = { :work_directory => WORK }
30
30
 
31
- @engine = OpenWFE::FilePersistedEngine.new ac
32
- end
31
+ @engine = OpenWFE::FilePersistedEngine.new ac
32
+ end
33
33
 
34
- def teardown
34
+ def teardown
35
35
 
36
- $OWFE_LOG.level = Logger::INFO
37
- FileUtils.rm_rf WORK
38
- end
36
+ $OWFE_LOG.level = Logger::INFO
37
+ FileUtils.rm_rf WORK
38
+ end
39
39
 
40
- def test_0
40
+ def test_0
41
41
 
42
- $OWFE_LOG.level = Logger::DEBUG
42
+ $OWFE_LOG.level = Logger::DEBUG
43
43
 
44
- trace = []
44
+ trace = []
45
45
 
46
- @engine.register_participant :alpha do
47
- trace << :alpha
48
- end
46
+ @engine.register_participant :alpha do
47
+ trace << :alpha
48
+ end
49
49
 
50
- @engine.reload
50
+ @engine.reload
51
51
 
52
- ps = @engine.process_status "20080212-moshijuzuke" # an XML process
53
- #p ps.expressions.collect { |e| e.fei.to_s }
54
- exp = ps.expressions.first
55
- wi = exp.applied_workitem
56
- wi.message = "back from obsolesence"
52
+ ps = @engine.process_status '20080212-moshijuzuke' # an XML process
53
+ #p ps.expressions.collect { |e| e.fei.to_s }
54
+ exp = ps.expressions.first
55
+ wi = exp.applied_workitem
56
+ wi.message = "back from obsolesence"
57
57
 
58
- @engine.reply wi
58
+ @engine.reply wi
59
59
 
60
- sleep 0.350
60
+ sleep 0.350
61
61
 
62
- assert_equal [ :alpha ], trace
62
+ assert_equal [ :alpha ], trace
63
63
 
64
- ps = @engine.process_status "20080212-moshijuzuke"
65
- #puts ps.size
66
- #puts ps.collect { |e| e.fei.to_s }.join("\n")
64
+ ps = @engine.process_status '20080212-moshijuzuke'
65
+ #puts ps.size
66
+ #puts ps.collect { |e| e.fei.to_s }.join("\n")
67
67
 
68
- assert_nil ps
68
+ assert_nil ps
69
69
 
70
- @engine.stop
70
+ @engine.stop
71
71
 
72
- sleep 0.300
73
- end
72
+ sleep 0.300
73
+ end
74
74
 
75
- def test_1
75
+ def test_1
76
76
 
77
- $OWFE_LOG.level = Logger::DEBUG
77
+ $OWFE_LOG.level = Logger::DEBUG
78
78
 
79
- trace = []
79
+ trace = []
80
80
 
81
- #@engine.register_participant :employee do
82
- # trace << :assistant
83
- #end
84
- #@engine.register_participant :employee do
85
- # trace << :employee
86
- #end
87
- [ :user_bob, :user_alice ].each do |p|
88
- @engine.register_participant p do
89
- trace << p
90
- end
91
- end
81
+ #@engine.register_participant :employee do
82
+ # trace << :assistant
83
+ #end
84
+ #@engine.register_participant :employee do
85
+ # trace << :employee
86
+ #end
87
+ [ :user_bob, :user_alice ].each do |p|
88
+ @engine.register_participant(p) { trace << p }
89
+ end
92
90
 
93
- @engine.reload
91
+ @engine.reload
94
92
 
95
- ps = @engine.process_status "20080213-depejetzube" # an ruby procdef
96
- exp = ps.expressions.first
97
- wi = exp.applied_workitem
93
+ ps = @engine.process_status '20080213-depejetzube' # a ruby procdef
94
+ exp = ps.expressions.first
95
+ wi = exp.applied_workitem
98
96
 
99
- @engine.reply wi
97
+ @engine.reply wi
100
98
 
101
- sleep 0.400
99
+ sleep 0.400
102
100
 
103
- assert_equal [ :user_bob, :user_bob ], trace
101
+ assert_equal [ :user_bob, :user_bob ], trace
104
102
 
105
- assert_nil @engine.process_status("20080213-depejetzube")
103
+ assert_nil @engine.process_status('20080213-depejetzube')
106
104
 
107
- @engine.stop
105
+ @engine.stop
108
106
 
109
- sleep 0.300
110
- end
107
+ sleep 0.300
108
+ end
111
109
  end
@@ -7,50 +7,53 @@
7
7
 
8
8
  require 'benchmark'
9
9
 
10
+ require 'rubygems'
11
+
10
12
  require 'openwfe/def'
11
13
  #require 'openwfe/engine/engine'
12
14
  require 'openwfe/engine/file_persisted_engine'
13
15
 
14
16
 
15
17
  class ProgDef < OpenWFE::ProcessDefinition
16
- sequence do
17
- toto
18
- toto
19
- toto
20
- toto
21
- toto
22
- end
18
+ sequence do
19
+ toto
20
+ toto
21
+ toto
22
+ toto
23
+ toto
24
+ end
23
25
  end
24
26
 
25
27
  xml = <<END
26
28
  <process-definition name="x" revision="y">
27
- <sequence>
28
- <toto/>
29
- <toto/>
30
- <toto/>
31
- <toto/>
32
- <toto/>
33
- </sequence>
29
+ <sequence>
30
+ <toto/>
31
+ <toto/>
32
+ <toto/>
33
+ <toto/>
34
+ <toto/>
35
+ </sequence>
34
36
  </process-definition>
35
37
  END
36
38
 
37
39
  #$engine = OpenWFE::Engine.new
38
- $engine = OpenWFE::FilePersistedEngine.new
40
+ $engine = OpenWFE::FilePersistedEngine.new(
41
+ :definition_in_launchitem_allowed => true)
39
42
 
40
43
  $engine.register_participant "toto" do |workitem|
41
- # do nothing
44
+ # do nothing
42
45
  end
43
46
 
44
47
  N = 500
45
48
 
46
49
  def test (proc_def)
47
- N.times do
48
- fei = $engine.launch proc_def
49
- $engine.wait_for fei
50
- end
50
+ N.times do
51
+ fei = $engine.launch proc_def
52
+ $engine.wait_for fei
53
+ end
51
54
  end
52
55
 
53
56
  Benchmark.bm do |x|
54
- x.report("prog :") { test ProgDef }
55
- x.report("xml :") { test xml.strip }
57
+ x.report("prog :") { test ProgDef }
58
+ x.report("xml :") { test xml.strip }
56
59
  end
data/test/bm/bm_2_step.rb CHANGED
@@ -15,95 +15,95 @@ require 'flowtestbase'
15
15
 
16
16
 
17
17
  class FlowTestRecursion < Test::Unit::TestCase
18
- include FlowTestBase
19
-
20
- #def teardown
21
- #end
22
-
23
- #def setup
24
- #end
25
-
26
- #
27
- # test 0
28
- #
29
-
30
- #N = 500
31
- N = 100
32
-
33
- #
34
- # Test0, N=100
35
- #
36
- # Tue May 13 17:24:53 JST 2008
37
- #
38
- # without substitution :
39
- # q : 2.72s
40
- # p : 752s
41
- #
42
- # with substitution :
43
- # q : 2.67s
44
- # p : 715s
45
- # (c : 10s)
46
- #
47
- # => :(
48
- #
49
- # with substitution : stack grows to 515 exps
50
- # without : stack grows to 615 exps
51
- #
52
-
53
- #
54
- # chaining N steps
55
- #
56
- # (took 39 seconds the first time for N = 500)
57
- #
58
- class Test0 < OpenWFE::ProcessDefinition
59
-
60
- step0
61
-
62
- (0..N).each do |i|
63
- define "stage#{i}" do
64
- sequence do
65
- _print "stage#{i}"
66
- set :f => 'outcome', :val => "step#{i+1}"
67
- #_print "${r:fexp.get_expression_storage.size}" if i == N
68
- end
69
- end
70
- define "step#{i}" do
71
- step "stage#{i}"
72
- end
73
- end
74
-
75
- define "step#{N+1}" do
76
- _print "over."
18
+ include FlowTestBase
19
+
20
+ #def teardown
21
+ #end
22
+
23
+ #def setup
24
+ #end
25
+
26
+ #
27
+ # test 0
28
+ #
29
+
30
+ #N = 500
31
+ N = 100
32
+
33
+ #
34
+ # Test0, N=100
35
+ #
36
+ # Tue May 13 17:24:53 JST 2008
37
+ #
38
+ # without substitution :
39
+ # q : 2.72s
40
+ # p : 752s
41
+ #
42
+ # with substitution :
43
+ # q : 2.67s
44
+ # p : 715s
45
+ # (c : 10s)
46
+ #
47
+ # => :(
48
+ #
49
+ # with substitution : stack grows to 515 exps
50
+ # without : stack grows to 615 exps
51
+ #
52
+
53
+ #
54
+ # chaining N steps
55
+ #
56
+ # (took 39 seconds the first time for N = 500)
57
+ #
58
+ class Test0 < OpenWFE::ProcessDefinition
59
+
60
+ step0
61
+
62
+ (0..N).each do |i|
63
+ define "stage#{i}" do
64
+ sequence do
65
+ _print "stage#{i}"
66
+ set :f => 'outcome', :val => "step#{i+1}"
67
+ #_print "${r:fexp.get_expression_storage.size}" if i == N
77
68
  end
69
+ end
70
+ define "step#{i}" do
71
+ step "stage#{i}"
72
+ end
78
73
  end
79
74
 
80
- #
81
- # testing against a sequence of N subprocess calls
82
- #
83
- # (took 6 seconds the first time for N = 500)
84
- # (just chaining N 'print "stage#{i}"' takes 0.7 second)
85
- #
86
- class Test0b < OpenWFE::ProcessDefinition
75
+ define "step#{N+1}" do
76
+ _print "over."
77
+ end
78
+ end
79
+
80
+ #
81
+ # testing against a sequence of N subprocess calls
82
+ #
83
+ # (took 6 seconds the first time for N = 500)
84
+ # (just chaining N 'print "stage#{i}"' takes 0.7 second)
85
+ #
86
+ class Test0b < OpenWFE::ProcessDefinition
87
+ sequence do
88
+ (0..N).each do |i|
89
+ subprocess :ref => "stage#{i}"
90
+ end
91
+ _print "over."
92
+ end
93
+ (0..N).each do |i|
94
+ define "stage#{i}" do
87
95
  sequence do
88
- (0..N).each do |i|
89
- subprocess :ref => "stage#{i}"
90
- end
91
- _print "over."
92
- end
93
- (0..N).each do |i|
94
- define "stage#{i}" do
95
- sequence do
96
- _print "stage#{i}"
97
- end
98
- end
96
+ _print "stage#{i}"
99
97
  end
98
+ end
100
99
  end
100
+ end
101
101
 
102
- def test_0
102
+ def test_0
103
103
 
104
- dotest Test0, (0..N).collect { |i| "stage#{i}" }.join("\n") + "\nover."
105
- #dotest Test0b, (0..N).collect { |i| "stage#{i}" }.join("\n") + "\nover."
106
- end
104
+ dotest Test0, (0..N).collect { |i| "stage#{i}" }.join("\n") + "\nover."
105
+ #dotest Test0b, (0..N).collect { |i| "stage#{i}" }.join("\n") + "\nover."
106
+ end
107
107
 
108
108
  end
109
109
 
data/test/bm/ft_0f_5ms.rb CHANGED
@@ -11,25 +11,25 @@ require 'flowtestbase'
11
11
 
12
12
 
13
13
  class FlowTest0b < Test::Unit::TestCase
14
- include FlowTestBase
14
+ include FlowTestBase
15
15
 
16
- #def setup
17
- #end
16
+ #def setup
17
+ #end
18
18
 
19
- #def teardown
20
- #end
19
+ #def teardown
20
+ #end
21
21
 
22
- class Test5ms < OpenWFE::ProcessDefinition
23
- concurrence do
24
- _print "a"
25
- _print "b"
26
- end
22
+ class Test5ms < OpenWFE::ProcessDefinition
23
+ concurrence do
24
+ _print "a"
25
+ _print "b"
27
26
  end
27
+ end
28
28
 
29
- def test_0
29
+ def test_0
30
30
 
31
- dotest Test5ms, "a\nb"
32
- end
31
+ dotest Test5ms, "a\nb"
32
+ end
33
33
 
34
34
  end
35
35
 
@@ -10,201 +10,199 @@
10
10
  require 'flowtestbase'
11
11
  require 'openwfe/def'
12
12
 
13
- include OpenWFE
14
-
15
13
 
16
14
  class FlowTest26c < Test::Unit::TestCase
17
- include FlowTestBase
15
+ include FlowTestBase
18
16
 
19
- #def setup
20
- #end
17
+ #def setup
18
+ #end
21
19
 
22
- #def teardown
23
- #end
20
+ #def teardown
21
+ #end
24
22
 
25
- #
26
- # Test 0
27
- #
23
+ #
24
+ # Test 0
25
+ #
28
26
 
29
- class TestDefinition0 < ProcessDefinition
30
- process_definition :name => "test0", :revision => "0" do
31
- sequence do
32
- count
33
- count
34
- end
35
- end
27
+ class TestDefinition0 < ProcessDefinition
28
+ process_definition :name => "test0", :revision => "0" do
29
+ sequence do
30
+ count
31
+ count
32
+ end
33
+ end
34
+ end
35
+ #class TestDefinition0 < ProcessDefinition
36
+ # count
37
+ #end
38
+
39
+ #def xxxx_load_0
40
+ def test_load_0
41
+
42
+ map = {}
43
+
44
+ @engine.register_participant("count") do |workitem|
45
+ count = map[workitem.flow_id]
46
+ count = unless count
47
+ 1
48
+ else
49
+ count + 1
50
+ end
51
+ map[workitem.flow_id] = count
36
52
  end
37
- #class TestDefinition0 < ProcessDefinition
38
- # count
39
- #end
40
53
 
41
- #def xxxx_load_0
42
- def test_load_0
43
-
44
- map = {}
45
-
46
- @engine.register_participant("count") do |workitem|
47
- count = map[workitem.flow_id]
48
- count = unless count
49
- 1
50
- else
51
- count + 1
52
- end
53
- map[workitem.flow_id] = count
54
- end
55
-
56
- n = 1000
57
-
58
- n.times do |i|
59
- li = LaunchItem.new(TestDefinition0)
60
- li.flow_id = i
61
- @engine.launch(li)
62
- end
63
-
64
- #while @engine.get_expression_storage.size > 1
65
- # sleep 0.001
66
- #end
67
- @engine.join_until_idle
68
-
69
- good = true
70
-
71
- n.times do |i|
72
- c = map[i]
73
- if c == 2
74
- #if c == 1
75
- print "."
76
- else
77
- print c
78
- good = false
79
- end
80
- end
81
-
82
- #puts "\n__good ? #{good}"
83
- assert good, "missing count"
84
-
85
- # 100 in 1s (in memory engine)
86
- # 1'000 in 14s (in memory engine)
87
- # 10'000 in 143s (in memory engine)
88
- # 1'000 in 31s (cache engine)
89
- # 10'000 in 321s (cache engine)
90
- # 1'000 in 113s (persistence only engine)
91
- # 10'000 in 1173s (persistence only engine)
92
- #
93
- #
94
- # ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]
95
- #
96
- # Machine Name: Mac
97
- # Machine Model: MacBook2,1
98
- # Processor Name: Intel Core 2 Duo
99
- # Processor Speed: 2 GHz
100
- # Number Of Processors: 1
101
- # Total Number Of Cores: 2
102
- # L2 Cache (per processor): 4 MB
103
- # Memory: 2 GB
104
- # Bus Speed: 667 MHz
105
-
106
- # Thu Sep 13 15:38:46 JST 2007
107
- #
108
- # 100 in 3s (in memory engine)
109
- # 1'000 in 85s (in memory engine)
110
- # 10'000 in s (in memory engine)
54
+ n = 1000
55
+
56
+ n.times do |i|
57
+ li = LaunchItem.new(TestDefinition0)
58
+ li.flow_id = i
59
+ @engine.launch(li)
60
+ end
61
+
62
+ #while @engine.get_expression_storage.size > 1
63
+ # sleep 0.001
64
+ #end
65
+ @engine.join_until_idle
66
+
67
+ good = true
68
+
69
+ n.times do |i|
70
+ c = map[i]
71
+ if c == 2
72
+ #if c == 1
73
+ print "."
74
+ else
75
+ print c
76
+ good = false
77
+ end
111
78
  end
112
79
 
80
+ #puts "\n__good ? #{good}"
81
+ assert good, "missing count"
113
82
 
83
+ # 100 in 1s (in memory engine)
84
+ # 1'000 in 14s (in memory engine)
85
+ # 10'000 in 143s (in memory engine)
86
+ # 1'000 in 31s (cache engine)
87
+ # 10'000 in 321s (cache engine)
88
+ # 1'000 in 113s (persistence only engine)
89
+ # 10'000 in 1173s (persistence only engine)
90
+ #
91
+ #
92
+ # ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]
114
93
  #
115
- # TEST 1
94
+ # Machine Name: Mac
95
+ # Machine Model: MacBook2,1
96
+ # Processor Name: Intel Core 2 Duo
97
+ # Processor Speed: 2 GHz
98
+ # Number Of Processors: 1
99
+ # Total Number Of Cores: 2
100
+ # L2 Cache (per processor): 4 MB
101
+ # Memory: 2 GB
102
+ # Bus Speed: 667 MHz
103
+
104
+ # Thu Sep 13 15:38:46 JST 2007
116
105
  #
106
+ # 100 in 3s (in memory engine)
107
+ # 1'000 in 85s (in memory engine)
108
+ # 10'000 in s (in memory engine)
109
+ end
110
+
111
+
112
+ #
113
+ # TEST 1
114
+ #
115
+
116
+ def xxxx_load_1
117
+ #def test_load_1
118
+
119
+ map = {}
120
+
121
+ @engine.register_participant("count") do |workitem|
122
+ count = map[workitem.flow_id]
123
+ count = unless count
124
+ 1
125
+ else
126
+ count + 1
127
+ end
128
+ map[workitem.flow_id] = count
129
+ #puts "(#{workitem.flow_id} => #{map[workitem.flow_id]})"
130
+ end
117
131
 
118
- def xxxx_load_1
119
- #def test_load_1
120
-
121
- map = {}
122
-
123
- @engine.register_participant("count") do |workitem|
124
- count = map[workitem.flow_id]
125
- count = unless count
126
- 1
127
- else
128
- count + 1
129
- end
130
- map[workitem.flow_id] = count
131
- #puts "(#{workitem.flow_id} => #{map[workitem.flow_id]})"
132
- end
133
-
134
- n = 10000
135
-
136
- n.times do |i|
137
-
138
- #t = Thread.new do
139
- # begin
140
- # li = LaunchItem.new(TestDefinition0)
141
- # li.flow_id = i
142
- # @engine.launch(li)
143
- # #print "."
144
- # rescue Exception => e
145
- # print "e"
146
- # @engine.lwarn do
147
- # "ft_26_test_1 exception...\n" +
148
- # OpenWFE::exception_to_s(e)
149
- # end
150
- # end
151
- #end
152
-
153
- li = LaunchItem.new(TestDefinition0)
154
- li.flow_id = i
155
-
156
- fei, t = @engine.launch(li, true)
157
- #
158
- # async : true
159
-
160
- t.join if i == n-1
161
- end
162
-
163
- sleep(1)
164
- puts
165
-
166
- good = true
167
-
168
- n.times do |i|
169
-
170
- c = map[i]
171
-
172
- if c == 2
173
- print "."
174
- elsif c == nil
175
- print "x"
176
- good = false
177
- else
178
- print c
179
- good = false
180
- end
181
- end
182
-
183
- #puts "\n__good ? #{good}"
184
-
185
- assert good, "missing count"
186
-
187
- # 100 in 3s (in memory engine)
188
- # 1'000 in 85s (in memory engine)
189
- # 10'000 in s (in memory engine)
190
- # 1'000 in 551s (cache engine)
191
- # 10'000 in s (cache engine)
192
- # 1'000 in s (persistence only engine)
193
- # 10'000 in s (persistence only engine)
194
- #
132
+ n = 10000
133
+
134
+ n.times do |i|
135
+
136
+ #t = Thread.new do
137
+ # begin
138
+ # li = LaunchItem.new(TestDefinition0)
139
+ # li.flow_id = i
140
+ # @engine.launch(li)
141
+ # #print "."
142
+ # rescue Exception => e
143
+ # print "e"
144
+ # @engine.lwarn do
145
+ # "ft_26_test_1 exception...\n" +
146
+ # OpenWFE::exception_to_s(e)
147
+ # end
148
+ # end
149
+ #end
150
+
151
+ li = LaunchItem.new(TestDefinition0)
152
+ li.flow_id = i
153
+
154
+ fei, t = @engine.launch(li, true)
195
155
  #
196
- # ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]
197
- #
198
- # Machine Name: Mac
199
- # Machine Model: MacBook2,1
200
- # Processor Name: Intel Core 2 Duo
201
- # Processor Speed: 2 GHz
202
- # Number Of Processors: 1
203
- # Total Number Of Cores: 2
204
- # L2 Cache (per processor): 4 MB
205
- # Memory: 2 GB
206
- # Bus Speed: 667 MHz
156
+ # async : true
157
+
158
+ t.join if i == n-1
159
+ end
160
+
161
+ sleep(1)
162
+ puts
163
+
164
+ good = true
165
+
166
+ n.times do |i|
167
+
168
+ c = map[i]
169
+
170
+ if c == 2
171
+ print "."
172
+ elsif c == nil
173
+ print "x"
174
+ good = false
175
+ else
176
+ print c
177
+ good = false
178
+ end
207
179
  end
208
180
 
181
+ #puts "\n__good ? #{good}"
182
+
183
+ assert good, "missing count"
184
+
185
+ # 100 in 3s (in memory engine)
186
+ # 1'000 in 85s (in memory engine)
187
+ # 10'000 in s (in memory engine)
188
+ # 1'000 in 551s (cache engine)
189
+ # 10'000 in s (cache engine)
190
+ # 1'000 in s (persistence only engine)
191
+ # 10'000 in s (persistence only engine)
192
+ #
193
+ #
194
+ # ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.3]
195
+ #
196
+ # Machine Name: Mac
197
+ # Machine Model: MacBook2,1
198
+ # Processor Name: Intel Core 2 Duo
199
+ # Processor Speed: 2 GHz
200
+ # Number Of Processors: 1
201
+ # Total Number Of Cores: 2
202
+ # L2 Cache (per processor): 4 MB
203
+ # Memory: 2 GB
204
+ # Bus Speed: 667 MHz
205
+ end
206
+
209
207
  end
210
208