ruote 0.9.19 → 0.9.20
Sign up to get free protection for your applications and to get access to all the features.
- data/README.txt +16 -6
- data/examples/engine_template.rb +6 -43
- data/examples/quickstart.rb +87 -0
- data/examples/quotereporter.rb +42 -49
- data/examples/simple.rb +56 -0
- data/lib/openwfe.rb +20 -34
- data/lib/openwfe/contextual.rb +45 -36
- data/lib/openwfe/def.rb +21 -30
- data/lib/openwfe/engine.rb +17 -26
- data/lib/openwfe/engine/engine.rb +132 -397
- data/lib/openwfe/engine/expool_methods.rb +34 -122
- data/lib/openwfe/engine/file_persisted_engine.rb +39 -60
- data/lib/openwfe/engine/fs_engine.rb +54 -0
- data/lib/openwfe/engine/launch_methods.rb +245 -0
- data/lib/openwfe/engine/listener_methods.rb +128 -0
- data/lib/openwfe/engine/lookup_methods.rb +156 -0
- data/lib/openwfe/engine/participant_methods.rb +60 -52
- data/lib/openwfe/engine/status_methods.rb +102 -97
- data/lib/openwfe/engine/tc_engine.rb +55 -0
- data/lib/openwfe/engine/tt_engine.rb +55 -0
- data/lib/openwfe/engine/update_exp_methods.rb +46 -39
- data/lib/openwfe/expool/def_parser.rb +196 -0
- data/lib/openwfe/expool/errorjournal.rb +51 -219
- data/lib/openwfe/expool/errors.rb +69 -0
- data/lib/openwfe/expool/expool_pause_methods.rb +32 -43
- data/lib/openwfe/expool/expressionpool.rb +398 -594
- data/lib/openwfe/expool/expstorage.rb +68 -72
- data/lib/openwfe/expool/fs_expstorage.rb +302 -0
- data/lib/openwfe/expool/history.rb +54 -38
- data/lib/openwfe/expool/journal.rb +24 -38
- data/lib/openwfe/expool/journal_replay.rb +20 -36
- data/lib/openwfe/expool/representation.rb +62 -78
- data/lib/openwfe/expool/tc_expstorage.rb +239 -0
- data/lib/openwfe/expool/{threadedexpstorage.rb → threaded_expstorage.rb} +25 -53
- data/lib/openwfe/expool/tt_expstorage.rb +55 -0
- data/lib/openwfe/expool/wfidgen.rb +23 -43
- data/lib/openwfe/expool/yaml_errorjournal.rb +187 -0
- data/lib/openwfe/expressions/condition.rb +33 -58
- data/lib/openwfe/expressions/environment.rb +62 -76
- data/lib/openwfe/expressions/{expressionmap.rb → expression_map.rb} +40 -54
- data/lib/openwfe/expressions/expression_tree.rb +265 -0
- data/lib/openwfe/expressions/fe_cancel.rb +19 -39
- data/lib/openwfe/expressions/fe_command.rb +80 -84
- data/lib/openwfe/expressions/fe_concurrence.rb +250 -313
- data/lib/openwfe/expressions/fe_cron.rb +38 -55
- data/lib/openwfe/expressions/fe_cursor.rb +49 -74
- data/lib/openwfe/expressions/fe_define.rb +44 -90
- data/lib/openwfe/expressions/fe_do.rb +83 -70
- data/lib/openwfe/expressions/fe_equals.rb +17 -35
- data/lib/openwfe/expressions/fe_error.rb +103 -0
- data/lib/openwfe/expressions/fe_filter.rb +27 -44
- data/lib/openwfe/expressions/fe_filter_definition.rb +37 -54
- data/lib/openwfe/expressions/fe_fqv.rb +46 -65
- data/lib/openwfe/expressions/fe_http.rb +17 -31
- data/lib/openwfe/expressions/fe_if.rb +39 -55
- data/lib/openwfe/expressions/fe_iterator.rb +25 -42
- data/lib/openwfe/expressions/fe_listen.rb +71 -115
- data/lib/openwfe/expressions/fe_losfor.rb +34 -43
- data/lib/openwfe/expressions/fe_misc.rb +70 -109
- data/lib/openwfe/expressions/fe_participant.rb +61 -99
- data/lib/openwfe/expressions/fe_reserve.rb +28 -59
- data/lib/openwfe/expressions/fe_save.rb +62 -81
- data/lib/openwfe/expressions/fe_sequence.rb +45 -70
- data/lib/openwfe/expressions/fe_set.rb +22 -40
- data/lib/openwfe/expressions/fe_step.rb +22 -37
- data/lib/openwfe/expressions/fe_subprocess.rb +34 -55
- data/lib/openwfe/expressions/fe_timeout.rb +28 -44
- data/lib/openwfe/expressions/fe_wait.rb +142 -36
- data/lib/openwfe/expressions/fe_when.rb +22 -46
- data/lib/openwfe/expressions/filter.rb +24 -43
- data/lib/openwfe/expressions/flowexpression.rb +211 -192
- data/lib/openwfe/expressions/iterator.rb +24 -39
- data/lib/openwfe/expressions/merge.rb +30 -52
- data/lib/openwfe/expressions/raw.rb +168 -384
- data/lib/openwfe/expressions/rprocdef.rb +79 -76
- data/lib/openwfe/expressions/time.rb +89 -103
- data/lib/openwfe/expressions/timeout.rb +98 -92
- data/lib/openwfe/expressions/value.rb +43 -69
- data/lib/openwfe/extras/engine/ar_engine.rb +58 -0
- data/lib/openwfe/extras/engine/db_persisted_engine.rb +37 -57
- data/lib/openwfe/extras/engine/dm_engine.rb +59 -0
- data/lib/openwfe/extras/expool/ar_expstorage.rb +337 -0
- data/lib/openwfe/extras/expool/db_errorjournal.rb +165 -0
- data/lib/openwfe/extras/expool/db_expstorage.rb +73 -0
- data/lib/openwfe/extras/expool/db_history.rb +163 -0
- data/lib/openwfe/extras/expool/dm_expstorage.rb +327 -0
- data/lib/openwfe/extras/listeners/jabber_listeners.rb +102 -0
- data/lib/openwfe/extras/listeners/jabberlisteners.rb +26 -0
- data/lib/openwfe/extras/listeners/sqs_listeners.rb +128 -0
- data/lib/openwfe/extras/misc/activityfeed.rb +19 -34
- data/lib/openwfe/extras/misc/jabber_common.rb +122 -0
- data/lib/openwfe/extras/participants/active_participants.rb +724 -0
- data/lib/openwfe/extras/participants/active_resource_participants.rb +213 -0
- data/lib/openwfe/extras/participants/activeparticipants.rb +1 -747
- data/lib/openwfe/extras/participants/ar_participants.rb +285 -0
- data/lib/openwfe/extras/participants/atomfeed_participants.rb +19 -34
- data/lib/openwfe/extras/participants/atompub_participants.rb +19 -34
- data/lib/openwfe/extras/participants/basecamp_participants.rb +17 -31
- data/lib/openwfe/extras/participants/{csvparticipants.rb → decision_participants.rb} +17 -31
- data/lib/openwfe/extras/participants/jabber_participants.rb +147 -0
- data/lib/openwfe/extras/participants/jabberparticipants.rb +3 -0
- data/lib/openwfe/extras/participants/sqs_participants.rb +108 -0
- data/lib/openwfe/extras/participants/{twitterparticipants.rb → twitter_participants.rb} +20 -34
- data/lib/openwfe/extras/singlecon.rb +56 -0
- data/lib/openwfe/filterdef.rb +83 -65
- data/lib/openwfe/flowexpressionid.rb +99 -62
- data/lib/openwfe/listeners/listener.rb +54 -65
- data/lib/openwfe/listeners/listeners.rb +52 -56
- data/lib/openwfe/logging.rb +17 -31
- data/lib/openwfe/omixins.rb +25 -58
- data/lib/openwfe/participants.rb +1 -34
- data/lib/openwfe/participants/{enoparticipants.rb → mail_participants.rb} +33 -47
- data/lib/openwfe/participants/participant.rb +37 -36
- data/lib/openwfe/participants/participant_map.rb +245 -0
- data/lib/openwfe/participants/participants.rb +43 -69
- data/lib/openwfe/participants/{soapparticipants.rb → soap_participants.rb} +22 -36
- data/lib/openwfe/participants/{storeparticipants.rb → store_participants.rb} +57 -62
- data/lib/openwfe/{storage/yamlfilestorage.rb → participants/yaml_filestorage.rb} +35 -64
- data/lib/openwfe/representations.rb +770 -0
- data/lib/openwfe/rudefinitions.rb +17 -29
- data/lib/openwfe/service.rb +21 -32
- data/lib/openwfe/tools/flowtracer.rb +21 -35
- data/lib/openwfe/util/dollar.rb +48 -61
- data/lib/openwfe/util/irb.rb +19 -34
- data/lib/openwfe/util/json.rb +55 -0
- data/lib/openwfe/util/observable.rb +22 -41
- data/lib/openwfe/util/ometa.rb +21 -35
- data/lib/openwfe/util/treechecker.rb +17 -31
- data/lib/openwfe/util/workqueue.rb +45 -44
- data/lib/openwfe/util/xml.rb +80 -234
- data/lib/openwfe/utils.rb +67 -110
- data/lib/openwfe/version.rb +19 -27
- data/lib/openwfe/workitem.rb +119 -84
- data/lib/openwfe/worklist/storelocks.rb +17 -33
- data/lib/openwfe/worklist/storeparticipant.rb +1 -39
- data/lib/openwfe/worklist/worklist.rb +17 -31
- data/lib/pooltool.ru +311 -0
- data/test/{extras/active_connection.rb → ar_test_connection.rb} +26 -11
- data/test/bm/fatxml.rb +70 -0
- data/test/bm/load_26c.rb +79 -0
- data/test/dm_test_connection.rb +11 -0
- data/test/extras/base.rb +3 -0
- data/test/extras/et_0_sqs.rb +37 -0
- data/test/extras/et_jabber_test.rb +226 -0
- data/test/extras/test.rb +16 -0
- data/test/functional/base.rb +198 -0
- data/test/functional/db_ft_0_ar_participants.rb +136 -0
- data/test/functional/eft_0_process_definition.rb +34 -0
- data/test/functional/eft_10_unset.rb +60 -0
- data/test/functional/eft_11_sleep.rb +95 -0
- data/test/functional/eft_12_wait.rb +57 -0
- data/test/functional/eft_13_cursor.rb +139 -0
- data/test/functional/eft_14_loop.rb +36 -0
- data/test/functional/eft_15_undo.rb +77 -0
- data/test/functional/eft_16_redo.rb +88 -0
- data/test/functional/eft_1_print.rb +57 -0
- data/test/functional/eft_2_sequence.rb +47 -0
- data/test/functional/eft_3_equals.rb +98 -0
- data/test/functional/eft_4_if.rb +96 -0
- data/test/functional/eft_5_eval.rb +89 -0
- data/test/functional/eft_6_reval.rb +101 -0
- data/test/functional/eft_7_exp.rb +47 -0
- data/test/functional/eft_8_log.rb +50 -0
- data/test/functional/eft_9_set.rb +132 -0
- data/test/functional/engine_helper.rb +122 -0
- data/test/functional/ft_0_vars_at_launch.rb +27 -0
- data/test/functional/ft_1_process_status.rb +46 -0
- data/test/functional/ft_2_file_listener.rb +45 -0
- data/test/functional/ft_3_on_cancel.rb +171 -0
- data/test/functional/ft_4_on_error.rb +220 -0
- data/test/functional/ft_5_process_uri.rb +82 -0
- data/test/functional/ft_6_process_status.rb +62 -0
- data/test/functional/ft_7_parameters.rb +103 -0
- data/test/functional/ft_8_dollar.rb +53 -0
- data/test/functional/ft_9_register_participants.rb +119 -0
- data/test/functional/restart_base.rb +43 -0
- data/test/functional/rft_0_sleep.rb +76 -0
- data/test/functional/test.rb +24 -0
- data/test/path_helper.rb +12 -0
- data/test/test.rb +11 -1
- data/test/{rutest_utils.rb → test_helper.rb} +8 -31
- data/test/unit/test.rb +19 -0
- data/test/{fei_test.rb → unit/ut_0_fei.rb} +34 -49
- data/test/unit/ut_10_lookup_attribute.rb +86 -0
- data/test/unit/ut_11_filter.rb +124 -0
- data/test/{condition_test.rb → unit/ut_12_conditional.rb} +33 -40
- data/test/unit/ut_13_xmlutil.rb +57 -0
- data/test/unit/ut_14_var_field_lookup.rb +85 -0
- data/test/{fe_lookup_att_test.rb → unit/ut_15_fe_att_lookup.rb} +14 -21
- data/test/{storage_test.rb → unit/ut_16_expstorage_findexp.rb} +3 -9
- data/test/unit/ut_17_representations.rb +330 -0
- data/test/{hash_test.rb → unit/ut_17b_representations_hash.rb} +25 -21
- data/test/{slock_test.rb → unit/ut_18_store_lock.rb} +17 -20
- data/test/{wfid_test.rb → unit/ut_1_wfid.rb} +2 -73
- data/test/unit/ut_2_utils.rb +53 -0
- data/test/unit/ut_3_expmap.rb +65 -0
- data/test/{clone_test.rb → unit/ut_4_fulldup.rb} +41 -46
- data/test/{obs_test.rb → unit/ut_5_observable.rb} +9 -19
- data/test/unit/ut_6_treechecker.rb +101 -0
- data/test/unit/ut_7_parser_ruby.rb +344 -0
- data/test/unit/ut_7b_parser_ruby.rb +56 -0
- data/test/{description_test.rb → unit/ut_8_parser_description.rb} +8 -19
- data/test/unit/ut_9_workitem.rb +72 -0
- metadata +117 -234
- data/lib/openwfe/exceptions.rb +0 -51
- data/lib/openwfe/expool/parser.rb +0 -278
- data/lib/openwfe/expool/paused_error.rb +0 -77
- data/lib/openwfe/expool/yamlexpstorage.rb +0 -224
- data/lib/openwfe/expressions/fe_sleep.rb +0 -173
- data/lib/openwfe/extras/expool/dberrorjournal.rb +0 -189
- data/lib/openwfe/extras/expool/dbexpstorage.rb +0 -355
- data/lib/openwfe/extras/expool/dbhistory.rb +0 -135
- data/lib/openwfe/extras/listeners/sqslisteners.rb +0 -146
- data/lib/openwfe/extras/participants/sqsparticipants.rb +0 -125
- data/lib/openwfe/listeners/socketlisteners.rb +0 -272
- data/lib/openwfe/orest/definitions.rb +0 -113
- data/lib/openwfe/orest/osocket.rb +0 -148
- data/lib/openwfe/orest/xmlcodec.rb +0 -682
- data/lib/openwfe/participants/participantmap.rb +0 -249
- data/lib/openwfe/participants/socketparticipants.rb +0 -202
- data/lib/openwfe/storage/yamlcustom.rb +0 -106
- data/lib/openwfe/worklist/oldrest.rb +0 -244
- data/test/README.txt +0 -27
- data/test/back_0916_test.rb +0 -109
- data/test/bm/bm_1_xml_vs_prog.rb +0 -59
- data/test/bm/bm_2_step.rb +0 -109
- data/test/bm/ft_0f_5ms.rb +0 -35
- data/test/bm/ft_26_load.rb +0 -208
- data/test/bm/ft_26b_load.rb +0 -84
- data/test/bm/ft_26c_load.rb +0 -102
- data/test/bm/ft_recu.rb +0 -71
- data/test/concurrence_test.rb +0 -77
- data/test/console_test.rb +0 -12
- data/test/cron_ltest.rb +0 -15
- data/test/eno_test.rb +0 -76
- data/test/expmap_test.rb +0 -54
- data/test/expool_20031219_0916.tgz +0 -0
- data/test/extras/README.txt +0 -5
- data/test/extras/active_with_engine_test.rb +0 -140
- data/test/extras/activityfeed_test.rb +0 -85
- data/test/extras/ap_0_test.rb +0 -287
- data/test/extras/ap_1_test.rb +0 -53
- data/test/extras/ap_test_base.rb +0 -24
- data/test/extras/atomfeedp_test.rb +0 -113
- data/test/extras/atompubp_test.rb +0 -91
- data/test/extras/basecamp_test.rb +0 -53
- data/test/extras/db_errorjournal_utest.rb +0 -75
- data/test/extras/db_expstorage_utest.rb +0 -171
- data/test/extras/db_history_0_test.rb +0 -58
- data/test/extras/ft_19_csv.rb +0 -58
- data/test/extras/ft_71_b14008.rb +0 -85
- data/test/extras/sqs_test.rb +0 -57
- data/test/extras/twitter_test.rb +0 -62
- data/test/file_persisted_engine_test.rb +0 -64
- data/test/file_persistence_test.rb +0 -135
- data/test/filep_cancel_test.rb +0 -123
- data/test/filter_test.rb +0 -109
- data/test/flowtestbase.rb +0 -339
- data/test/ft_0.rb +0 -68
- data/test/ft_0b_sequence.rb +0 -36
- data/test/ft_0c_testname.rb +0 -33
- data/test/ft_0d_participant.rb +0 -30
- data/test/ft_0e_multibody.rb +0 -34
- data/test/ft_10_loop.rb +0 -133
- data/test/ft_11_ppd.rb +0 -411
- data/test/ft_11b_ppd.rb +0 -54
- data/test/ft_12_blockparticipant.rb +0 -97
- data/test/ft_13_eno.rb +0 -52
- data/test/ft_14_subprocess.rb +0 -88
- data/test/ft_14b_subprocess.rb +0 -192
- data/test/ft_14c_subprocess.rb +0 -68
- data/test/ft_15_iterator.rb +0 -216
- data/test/ft_15b_iterator.rb +0 -74
- data/test/ft_16_fqv.rb +0 -73
- data/test/ft_17_condition.rb +0 -84
- data/test/ft_18_pname.rb +0 -56
- data/test/ft_1_unset.rb +0 -175
- data/test/ft_1b_unset.rb +0 -39
- data/test/ft_20_cron.rb +0 -53
- data/test/ft_21_cron.rb +0 -87
- data/test/ft_21b_cron_pause.rb +0 -82
- data/test/ft_22_history.rb +0 -78
- data/test/ft_23_when.rb +0 -77
- data/test/ft_23b_when.rb +0 -70
- data/test/ft_23c_wait.rb +0 -80
- data/test/ft_23d_cww.rb +0 -58
- data/test/ft_24_def.rb +0 -44
- data/test/ft_25_cancel.rb +0 -92
- data/test/ft_27_getflowpos.rb +0 -143
- data/test/ft_28_fileparticipant.rb +0 -63
- data/test/ft_29_httprb.rb +0 -106
- data/test/ft_2_concurrence.rb +0 -137
- data/test/ft_2b_concurrence.rb +0 -188
- data/test/ft_2c_concurrence.rb +0 -64
- data/test/ft_30_socketlistener.rb +0 -203
- data/test/ft_31_flowname.rb +0 -39
- data/test/ft_32_journal.rb +0 -91
- data/test/ft_32c_journal.rb +0 -102
- data/test/ft_32d_journal.rb +0 -81
- data/test/ft_33_description.rb +0 -107
- data/test/ft_34_cancelwfid.rb +0 -80
- data/test/ft_35_localdefs.rb +0 -77
- data/test/ft_36_subprocids.rb +0 -97
- data/test/ft_37_pnames.rb +0 -70
- data/test/ft_38_tag.rb +0 -127
- data/test/ft_38b_tag.rb +0 -161
- data/test/ft_38c_tag.rb +0 -100
- data/test/ft_38d_tag.rb +0 -53
- data/test/ft_39_reserve.rb +0 -63
- data/test/ft_39b_reserve.rb +0 -84
- data/test/ft_3_equals.rb +0 -170
- data/test/ft_3b_lookup_vf.rb +0 -83
- data/test/ft_40_defined.rb +0 -61
- data/test/ft_41_case.rb +0 -110
- data/test/ft_42_environments.rb +0 -75
- data/test/ft_43_pat10.rb +0 -85
- data/test/ft_44_save.rb +0 -70
- data/test/ft_44b_restore.rb +0 -212
- data/test/ft_45_citerator.rb +0 -214
- data/test/ft_45b_citerator.rb +0 -77
- data/test/ft_46_pparams.rb +0 -62
- data/test/ft_47_filter.rb +0 -160
- data/test/ft_48_fe_filter.rb +0 -88
- data/test/ft_49_condition.rb +0 -133
- data/test/ft_4_misc.rb +0 -232
- data/test/ft_50_xml_attribute.rb +0 -152
- data/test/ft_51_stack.rb +0 -55
- data/test/ft_52_obs_participant.rb +0 -123
- data/test/ft_53_null_noop_participant.rb +0 -62
- data/test/ft_54_listen.rb +0 -288
- data/test/ft_54b_listen.rb +0 -66
- data/test/ft_54c_listen.rb +0 -99
- data/test/ft_55_ptimeout.rb +0 -58
- data/test/ft_56_timeout.rb +0 -59
- data/test/ft_57_a.rb +0 -148
- data/test/ft_58_ejournal.rb +0 -154
- data/test/ft_58b_ejournal.rb +0 -82
- data/test/ft_59_ps.rb +0 -212
- data/test/ft_5_time.rb +0 -118
- data/test/ft_60_ecancel.rb +0 -161
- data/test/ft_61_elsub.rb +0 -51
- data/test/ft_62_procparticipant.rb +0 -71
- data/test/ft_63_pause.rb +0 -137
- data/test/ft_64_alias.rb +0 -101
- data/test/ft_65_stringlaunch.rb +0 -59
- data/test/ft_66_subforget.rb +0 -70
- data/test/ft_67_schedlaunch.rb +0 -115
- data/test/ft_68_ifparticipant.rb +0 -70
- data/test/ft_69_cancelmissing.rb +0 -53
- data/test/ft_6_lambda.rb +0 -64
- data/test/ft_70_lookupvar.rb +0 -55
- data/test/ft_71_log.rb +0 -60
- data/test/ft_72_lookup_processes.rb +0 -79
- data/test/ft_73_cancel_sub.rb +0 -139
- data/test/ft_74_block_and_workitem_dup.rb +0 -63
- data/test/ft_75_ruby_attributes.rb +0 -89
- data/test/ft_76_merge_isolate.rb +0 -88
- data/test/ft_77_segments.rb +0 -35
- data/test/ft_78_eval.rb +0 -150
- data/test/ft_79_tticket.rb +0 -187
- data/test/ft_79b_tticket.rb +0 -172
- data/test/ft_79c_outcome.rb +0 -56
- data/test/ft_7_lose.rb +0 -104
- data/test/ft_7b_lose.rb +0 -78
- data/test/ft_80_spname.rb +0 -91
- data/test/ft_81_exp.rb +0 -60
- data/test/ft_82_trecu.rb +0 -52
- data/test/ft_83_badpause.rb +0 -58
- data/test/ft_84_updateexp.rb +0 -198
- data/test/ft_84b_subrepr.rb +0 -72
- data/test/ft_85_dolhash.rb +0 -43
- data/test/ft_86_dollar_fv.rb +0 -68
- data/test/ft_87_define.rb +0 -74
- data/test/ft_88_http.rb +0 -100
- data/test/ft_8_forget.rb +0 -44
- data/test/ft_9_cursor.rb +0 -154
- data/test/ft_9b_cursor.rb +0 -105
- data/test/ft_tests.rb +0 -130
- data/test/hparticipant_test.rb +0 -168
- data/test/lookup_att_test.rb +0 -90
- data/test/lookup_vf_test.rb +0 -94
- data/test/misc_test.rb +0 -94
- data/test/nut_0_irb.rb +0 -20
- data/test/param_test.rb +0 -290
- data/test/participant_test.rb +0 -101
- data/test/pending.rb +0 -23
- data/test/ps_representation.rb +0 -133
- data/test/rake_ltest.rb +0 -38
- data/test/rake_qtest.rb +0 -68
- data/test/raw_prog_test.rb +0 -407
- data/test/restart_cron_test.rb +0 -136
- data/test/restart_paused_test.rb +0 -103
- data/test/restart_sleep_test.rb +0 -140
- data/test/restart_tests.rb +0 -18
- data/test/restart_when_test.rb +0 -112
- data/test/ruby_procdef_test.rb +0 -132
- data/test/sec_test.rb +0 -206
- data/test/timeout_test.rb +0 -105
- data/test/treechecker_test.rb +0 -111
- data/test/util_xml_test.rb +0 -112
- data/test/wi_test.rb +0 -75
@@ -1,106 +0,0 @@
|
|
1
|
-
#
|
2
|
-
#--
|
3
|
-
# Copyright (c) 2007-2008, John Mettraux, OpenWFE.org
|
4
|
-
# All rights reserved.
|
5
|
-
#
|
6
|
-
# Redistribution and use in source and binary forms, with or without
|
7
|
-
# modification, are permitted provided that the following conditions are met:
|
8
|
-
#
|
9
|
-
# . Redistributions of source code must retain the above copyright notice, this
|
10
|
-
# list of conditions and the following disclaimer.
|
11
|
-
#
|
12
|
-
# . Redistributions in binary form must reproduce the above copyright notice,
|
13
|
-
# this list of conditions and the following disclaimer in the documentation
|
14
|
-
# and/or other materials provided with the distribution.
|
15
|
-
#
|
16
|
-
# . Neither the name of the "OpenWFE" nor the names of its contributors may be
|
17
|
-
# used to endorse or promote products derived from this software without
|
18
|
-
# specific prior written permission.
|
19
|
-
#
|
20
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
-
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
-
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
23
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
24
|
-
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
25
|
-
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
26
|
-
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
27
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
28
|
-
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
29
|
-
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
|
-
# POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
#++
|
32
|
-
#
|
33
|
-
|
34
|
-
#
|
35
|
-
# "made in Japan"
|
36
|
-
#
|
37
|
-
# John Mettraux at openwfe.org
|
38
|
-
#
|
39
|
-
|
40
|
-
require 'yaml'
|
41
|
-
|
42
|
-
|
43
|
-
module OpenWFE
|
44
|
-
|
45
|
-
#
|
46
|
-
# reopening some classes in order to facilitate their
|
47
|
-
# yaml serialization
|
48
|
-
#
|
49
|
-
|
50
|
-
#
|
51
|
-
# opening for tuning yaml persistence
|
52
|
-
#
|
53
|
-
class FlowExpression
|
54
|
-
|
55
|
-
def to_yaml_properties
|
56
|
-
|
57
|
-
l = super
|
58
|
-
|
59
|
-
l.delete("@application_context")
|
60
|
-
|
61
|
-
#l.delete("@timeout_job_id")
|
62
|
-
#l.delete("@scheduler_job_id")
|
63
|
-
# scheduler ids should not get persisted
|
64
|
-
|
65
|
-
l
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
#
|
70
|
-
# making sure that the FlowExpressionId is serialized as a unique String
|
71
|
-
#
|
72
|
-
class FlowExpressionId
|
73
|
-
|
74
|
-
yaml_as "tag:ruby.yaml.org,2002:#{self}"
|
75
|
-
|
76
|
-
#--
|
77
|
-
#def to_yaml (opts={})
|
78
|
-
# @s = to_s
|
79
|
-
# super
|
80
|
-
#end
|
81
|
-
#def to_yaml_properties
|
82
|
-
# [ "@s" ]
|
83
|
-
#end
|
84
|
-
#++
|
85
|
-
|
86
|
-
def to_yaml (opts={})
|
87
|
-
|
88
|
-
YAML::quick_emit(self.object_id, opts) do |out|
|
89
|
-
out.map(taguri) do |map|
|
90
|
-
map.add "s", to_s
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def FlowExpressionId.yaml_new (klass, tag, val)
|
96
|
-
|
97
|
-
s = val["s"]
|
98
|
-
begin
|
99
|
-
FlowExpressionId.to_fei s
|
100
|
-
rescue Exception => e
|
101
|
-
raise "failed to decode FlowExpressionId out of '#{s}'"
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
@@ -1,244 +0,0 @@
|
|
1
|
-
#
|
2
|
-
#--
|
3
|
-
# Copyright (c) 2007-2008, John Mettraux, OpenWFE.org
|
4
|
-
# All rights reserved.
|
5
|
-
#
|
6
|
-
# Redistribution and use in source and binary forms, with or without
|
7
|
-
# modification, are permitted provided that the following conditions are met:
|
8
|
-
#
|
9
|
-
# . Redistributions of source code must retain the above copyright notice, this
|
10
|
-
# list of conditions and the following disclaimer.
|
11
|
-
#
|
12
|
-
# . Redistributions in binary form must reproduce the above copyright notice,
|
13
|
-
# this list of conditions and the following disclaimer in the documentation
|
14
|
-
# and/or other materials provided with the distribution.
|
15
|
-
#
|
16
|
-
# . Neither the name of the "OpenWFE" nor the names of its contributors may be
|
17
|
-
# used to endorse or promote products derived from this software without
|
18
|
-
# specific prior written permission.
|
19
|
-
#
|
20
|
-
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
-
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
-
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
23
|
-
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
24
|
-
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
25
|
-
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
26
|
-
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
27
|
-
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
28
|
-
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
29
|
-
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
30
|
-
# POSSIBILITY OF SUCH DAMAGE.
|
31
|
-
#++
|
32
|
-
#
|
33
|
-
|
34
|
-
#
|
35
|
-
# "made in Japan"
|
36
|
-
#
|
37
|
-
# John Mettraux at openwfe.org
|
38
|
-
#
|
39
|
-
|
40
|
-
require 'openwfe/rexml'
|
41
|
-
require 'openwfe/orest/xmlcodec'
|
42
|
-
require 'openwfe/orest/oldrestservlet'
|
43
|
-
|
44
|
-
|
45
|
-
module OpenWFE
|
46
|
-
|
47
|
-
#
|
48
|
-
# This webrick servlet provides a REST interface for an old style
|
49
|
-
# OpenWFE worklist.
|
50
|
-
#
|
51
|
-
class OldRestWorklistServlet < OldRestServlet
|
52
|
-
|
53
|
-
def initialize (server, params)
|
54
|
-
super
|
55
|
-
@worklist = params[:Worklist]
|
56
|
-
end
|
57
|
-
|
58
|
-
#
|
59
|
-
# The realm for HTTP authentication.
|
60
|
-
#
|
61
|
-
def get_realm_name
|
62
|
-
"worklist"
|
63
|
-
end
|
64
|
-
|
65
|
-
#
|
66
|
-
# Lists the stores in the worklist
|
67
|
-
#
|
68
|
-
def do__getstorenames (req, res)
|
69
|
-
|
70
|
-
e = REXML::Element.new 'stores'
|
71
|
-
|
72
|
-
@worklist.each_store do |regex, store_name, store|
|
73
|
-
|
74
|
-
perms = @worklist.get_permissions(
|
75
|
-
req.attributes['username'], store_name)
|
76
|
-
|
77
|
-
es = REXML::Element.new 'store'
|
78
|
-
es.add_attribute 'name', store_name
|
79
|
-
es.add_attribute 'workitem-count', store.size
|
80
|
-
es.add_attribute 'permissions', perms
|
81
|
-
e << es
|
82
|
-
end
|
83
|
-
|
84
|
-
reply_with_xml res, 200, e
|
85
|
-
end
|
86
|
-
|
87
|
-
alias :do__liststores :do__getstorenames
|
88
|
-
|
89
|
-
#
|
90
|
-
# This implementation simply encodes the workitem, no transformation
|
91
|
-
# into headers at all.
|
92
|
-
#
|
93
|
-
def do__getheaders (req, res)
|
94
|
-
|
95
|
-
limit = req.query['limit']
|
96
|
-
limit = limit.to_s.to_i if limit
|
97
|
-
limit = nil if limit and limit < 1
|
98
|
-
|
99
|
-
hs = @worklist.get_headers(
|
100
|
-
req.attributes['username'],
|
101
|
-
get_store_name(req),
|
102
|
-
limit)
|
103
|
-
|
104
|
-
# TODO raise "404 no store named '#{store_name}'" unless store
|
105
|
-
# TODO raise "403 forbidden"
|
106
|
-
|
107
|
-
e = REXML::Element.new 'headers'
|
108
|
-
|
109
|
-
hs.each do |h|
|
110
|
-
|
111
|
-
workitem, locked = h
|
112
|
-
|
113
|
-
e << OpenWFE::XmlCodec::encode_workitem_as_header(
|
114
|
-
workitem, locked)
|
115
|
-
end
|
116
|
-
|
117
|
-
reply_with_xml res, 200, e
|
118
|
-
end
|
119
|
-
|
120
|
-
#
|
121
|
-
# Launches a new process instance.
|
122
|
-
#
|
123
|
-
def do__launchflow (req, res)
|
124
|
-
|
125
|
-
engine_name = req.query['engineid']
|
126
|
-
engine_name = "__nil__" unless engine_name
|
127
|
-
|
128
|
-
launch_item = OpenWFE::XmlCodec::decode req.body
|
129
|
-
|
130
|
-
r = @worklist.launch_flow engine_name, launch_item
|
131
|
-
|
132
|
-
e = REXML::Element.new 'ok'
|
133
|
-
|
134
|
-
e.add_attribute 'flow-id', r.to_s
|
135
|
-
|
136
|
-
reply_with_xml res, 200, e
|
137
|
-
end
|
138
|
-
|
139
|
-
#
|
140
|
-
# Retrieves a workitem from the worklist
|
141
|
-
#
|
142
|
-
def do__getworkitem (req, res)
|
143
|
-
|
144
|
-
execute_wi_get :get, req, res
|
145
|
-
end
|
146
|
-
|
147
|
-
#
|
148
|
-
# Retrieves a workitem from the worklist, locks it and returns it
|
149
|
-
#
|
150
|
-
def do__getandlockworkitem (req, res)
|
151
|
-
|
152
|
-
execute_wi_get :get_and_lock, req, res
|
153
|
-
end
|
154
|
-
|
155
|
-
#
|
156
|
-
# Returns the flow expression ids of the workitems with a given
|
157
|
-
# workflow instance id in a store.
|
158
|
-
#
|
159
|
-
def do__findflowinstance (req, res)
|
160
|
-
|
161
|
-
store_name = get_store_name req
|
162
|
-
|
163
|
-
wfid = req.query['id']
|
164
|
-
raise "404 'id' not specified" unless wfid
|
165
|
-
|
166
|
-
wis = @worklist.list_workitems(
|
167
|
-
req.attributes['username'], store_name, wfid)
|
168
|
-
|
169
|
-
e = REXML::Element.new 'stores'
|
170
|
-
|
171
|
-
wis.each do |wi|
|
172
|
-
e << OpenWFE::XmlCodec::encode(wi.fei)
|
173
|
-
end
|
174
|
-
|
175
|
-
reply_with_xml res, 200, e
|
176
|
-
end
|
177
|
-
|
178
|
-
#
|
179
|
-
# Releases a workitem (unlocks it).
|
180
|
-
#
|
181
|
-
def do__releaseworkitem (req, res)
|
182
|
-
|
183
|
-
execute_wi_post :release, req, res
|
184
|
-
end
|
185
|
-
|
186
|
-
#
|
187
|
-
# Simply saves the workitem and the modifications done to it.
|
188
|
-
#
|
189
|
-
def do__saveworkitem (req, res)
|
190
|
-
|
191
|
-
execute_wi_post :save, req, res
|
192
|
-
end
|
193
|
-
|
194
|
-
#
|
195
|
-
# Forwards the workitem (makes the worklist reply to the engine
|
196
|
-
# with the modified workitem)
|
197
|
-
#
|
198
|
-
def do__forwardworkitem (req, res)
|
199
|
-
|
200
|
-
execute_wi_post :forward, req, res
|
201
|
-
end
|
202
|
-
|
203
|
-
protected
|
204
|
-
|
205
|
-
def execute_wi_post (method, req, res)
|
206
|
-
|
207
|
-
store_name = get_store_name req
|
208
|
-
|
209
|
-
wi = OpenWFE::XmlCodec::decode req.body
|
210
|
-
|
211
|
-
@worklist.send(
|
212
|
-
method,
|
213
|
-
req.attributes['username'],
|
214
|
-
store_name,
|
215
|
-
wi)
|
216
|
-
end
|
217
|
-
|
218
|
-
def execute_wi_get (method, req, res)
|
219
|
-
|
220
|
-
store_name = get_store_name req
|
221
|
-
fei = OpenWFE::XmlCodec::decode req.body
|
222
|
-
|
223
|
-
wi = @worklist.send(
|
224
|
-
method, req.attributes['username'], store_name, fei)
|
225
|
-
|
226
|
-
raise "404 no workitem found for #{fei.to_s}" unless wi
|
227
|
-
|
228
|
-
reply_with_wi res, wi
|
229
|
-
end
|
230
|
-
|
231
|
-
def reply_with_wi (res, wi)
|
232
|
-
|
233
|
-
reply_with_xml res, 200, OpenWFE::XmlCodec::encode(wi)
|
234
|
-
end
|
235
|
-
|
236
|
-
def get_store_name (req)
|
237
|
-
|
238
|
-
ss = req.path.split("/")
|
239
|
-
raise "404 'store' not specified" if ss.length != 3
|
240
|
-
ss[-1]
|
241
|
-
end
|
242
|
-
end
|
243
|
-
end
|
244
|
-
|
data/test/README.txt
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
= OpenWFEru - about the unit tests
|
2
|
-
|
3
|
-
There are three tests triggerable by Rake :
|
4
|
-
|
5
|
-
rake test
|
6
|
-
rake qtest
|
7
|
-
rake ptest
|
8
|
-
|
9
|
-
These 3 tests correspond to the following unit test files *
|
10
|
-
|
11
|
-
test/rake_test.rb
|
12
|
-
test/rake_qtest.rb
|
13
|
-
test/rake_ptest.rb
|
14
|
-
|
15
|
-
== test/rake_test.rb
|
16
|
-
|
17
|
-
Triggers 'quicktests' and time based tests. Running "rake test" takes 10 seconds more than "rake qtest". These are the 10 seconds necessary to test some time and scheduling aspects of OpenWFEru.
|
18
|
-
|
19
|
-
== test/rake_qtest.rb
|
20
|
-
|
21
|
-
Runs only 'quick' tests.
|
22
|
-
|
23
|
-
== test/rake_ptest.rb
|
24
|
-
|
25
|
-
Runs the quicktest but with persistence on. Persistence stores its work file under the work/ directory.
|
26
|
-
This set of tests takes care of wiping fresh the work/ directory before beginning the tests.
|
27
|
-
|
data/test/back_0916_test.rb
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# Testing OpenWFE
|
4
|
-
#
|
5
|
-
# John Mettraux at openwfe.org
|
6
|
-
#
|
7
|
-
# Tue Feb 19 10:58:43 JST 2008
|
8
|
-
#
|
9
|
-
|
10
|
-
require 'rubygems'
|
11
|
-
|
12
|
-
require 'test/unit'
|
13
|
-
require 'fileutils'
|
14
|
-
require 'openwfe/def'
|
15
|
-
require 'openwfe/engine/file_persisted_engine'
|
16
|
-
|
17
|
-
|
18
|
-
class Back0916Test < Test::Unit::TestCase
|
19
|
-
|
20
|
-
WORK = 'work_back'
|
21
|
-
|
22
|
-
def setup
|
23
|
-
|
24
|
-
FileUtils.rm_rf WORK
|
25
|
-
FileUtils.mkdir WORK
|
26
|
-
|
27
|
-
`cd work_back && tar xzvf ../test/expool_20031219_0916.tgz`
|
28
|
-
|
29
|
-
ac = { :work_directory => WORK }
|
30
|
-
|
31
|
-
@engine = OpenWFE::FilePersistedEngine.new ac
|
32
|
-
end
|
33
|
-
|
34
|
-
def teardown
|
35
|
-
|
36
|
-
$OWFE_LOG.level = Logger::INFO
|
37
|
-
FileUtils.rm_rf WORK
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_0
|
41
|
-
|
42
|
-
$OWFE_LOG.level = Logger::DEBUG
|
43
|
-
|
44
|
-
trace = []
|
45
|
-
|
46
|
-
@engine.register_participant :alpha do
|
47
|
-
trace << :alpha
|
48
|
-
end
|
49
|
-
|
50
|
-
@engine.reload
|
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"
|
57
|
-
|
58
|
-
@engine.reply wi
|
59
|
-
|
60
|
-
sleep 0.350
|
61
|
-
|
62
|
-
assert_equal [ :alpha ], trace
|
63
|
-
|
64
|
-
ps = @engine.process_status '20080212-moshijuzuke'
|
65
|
-
#puts ps.size
|
66
|
-
#puts ps.collect { |e| e.fei.to_s }.join("\n")
|
67
|
-
|
68
|
-
assert_nil ps
|
69
|
-
|
70
|
-
@engine.stop
|
71
|
-
|
72
|
-
sleep 0.300
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_1
|
76
|
-
|
77
|
-
$OWFE_LOG.level = Logger::DEBUG
|
78
|
-
|
79
|
-
trace = []
|
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) { trace << p }
|
89
|
-
end
|
90
|
-
|
91
|
-
@engine.reload
|
92
|
-
|
93
|
-
ps = @engine.process_status '20080213-depejetzube' # a ruby procdef
|
94
|
-
exp = ps.expressions.first
|
95
|
-
wi = exp.applied_workitem
|
96
|
-
|
97
|
-
@engine.reply wi
|
98
|
-
|
99
|
-
sleep 0.400
|
100
|
-
|
101
|
-
assert_equal [ :user_bob, :user_bob ], trace
|
102
|
-
|
103
|
-
assert_nil @engine.process_status('20080213-depejetzube')
|
104
|
-
|
105
|
-
@engine.stop
|
106
|
-
|
107
|
-
sleep 0.300
|
108
|
-
end
|
109
|
-
end
|