openwferu 0.9.1 → 0.9.2

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 (104) hide show
  1. data/{README → README.txt} +16 -13
  2. data/bin/validate-workflow.rb +46 -22
  3. data/examples/README.txt +8 -0
  4. data/examples/homeworkreview.rb +66 -0
  5. data/examples/quotereporter.rb +154 -0
  6. data/lib/{openwferu.rb → openwfe.rb} +6 -8
  7. data/lib/{ru → openwfe}/contextual.rb +11 -3
  8. data/lib/{ru → openwfe/engine}/engine.rb +50 -36
  9. data/lib/{ru/participant.rb → openwfe/engine/file_persisted_engine.rb} +21 -22
  10. data/lib/openwfe/expool/expressionpool.rb +534 -0
  11. data/lib/openwfe/expool/expstorage.rb +184 -0
  12. data/lib/openwfe/expool/journalexpstorage.rb +312 -0
  13. data/lib/openwfe/expool/yamlexpstorage.rb +127 -0
  14. data/lib/{ru → openwfe/expressions}/environment.rb +19 -14
  15. data/lib/{ru → openwfe/expressions}/expressionmap.rb +48 -21
  16. data/lib/{ru → openwfe/expressions}/fe_concurrence.rb +111 -35
  17. data/lib/openwfe/expressions/fe_cursor.rb +236 -0
  18. data/lib/{ru → openwfe/expressions}/fe_define.rb +5 -5
  19. data/lib/openwfe/expressions/fe_fqv.rb +99 -0
  20. data/lib/openwfe/expressions/fe_iterator.rb +182 -0
  21. data/lib/{ru/fe_misc.rb → openwfe/expressions/fe_losfor.rb} +14 -56
  22. data/lib/openwfe/expressions/fe_misc.rb +102 -0
  23. data/lib/{ru → openwfe/expressions}/fe_participant.rb +25 -14
  24. data/lib/{ru → openwfe/expressions}/fe_raw.rb +39 -75
  25. data/lib/{ru/fe_base.rb → openwfe/expressions/fe_sequence.rb} +40 -35
  26. data/lib/{ru → openwfe/expressions}/fe_subprocess.rb +30 -14
  27. data/lib/{ru → openwfe/expressions}/fe_time.rb +59 -31
  28. data/lib/{ru → openwfe/expressions}/fe_utils.rb +42 -26
  29. data/lib/{ru → openwfe/expressions}/fe_value.rb +20 -14
  30. data/lib/openwfe/expressions/flowexpression.rb +434 -0
  31. data/lib/openwfe/expressions/raw_prog.rb +391 -0
  32. data/lib/openwfe/expressions/raw_xml.rb +128 -0
  33. data/lib/openwfe/flowexpressionid.rb +148 -0
  34. data/lib/{ru → openwfe}/logging.rb +10 -6
  35. data/lib/{osocket.rb → openwfe/osocket.rb} +36 -35
  36. data/lib/{otime.rb → openwfe/otime.rb} +71 -21
  37. data/lib/openwfe/participants/atomparticipants.rb +144 -0
  38. data/lib/openwfe/participants/enoparticipant.rb +73 -0
  39. data/lib/openwfe/participants/participant.rb +85 -0
  40. data/lib/{ru → openwfe/participants}/participantmap.rb +40 -12
  41. data/lib/{ru → openwfe/participants}/participants.rb +41 -12
  42. data/lib/openwfe/participants/soapparticipants.rb +96 -0
  43. data/lib/{controlclient.rb → openwfe/rest/controlclient.rb} +12 -13
  44. data/lib/{definitions.rb → openwfe/rest/definitions.rb} +3 -3
  45. data/lib/{exception.rb → openwfe/rest/exception.rb} +3 -3
  46. data/lib/{restclient.rb → openwfe/rest/restclient.rb} +13 -22
  47. data/lib/{worklistclient.rb → openwfe/rest/worklistclient.rb} +33 -46
  48. data/lib/openwfe/rest/xmlcodec.rb +575 -0
  49. data/lib/{ru → openwfe}/rudefinitions.rb +32 -4
  50. data/lib/{ru → openwfe}/service.rb +20 -8
  51. data/lib/openwfe/storage/yamlfilestorage.rb +159 -0
  52. data/lib/{ru → openwfe/util}/dollar.rb +10 -8
  53. data/lib/openwfe/util/lru_cache.rb +149 -0
  54. data/lib/{ru → openwfe/util}/scheduler.rb +18 -10
  55. data/lib/{ru → openwfe/util}/schedulers.rb +7 -7
  56. data/lib/{utils.rb → openwfe/utils.rb} +93 -9
  57. data/lib/openwfe/workitem.rb +366 -0
  58. data/lib/openwfe/worklist/worklists.rb +175 -0
  59. data/test/README.txt +27 -0
  60. data/test/atomtest.rb +99 -0
  61. data/test/crontest.rb +58 -0
  62. data/test/dollartest.rb +3 -3
  63. data/test/feitest.rb +42 -14
  64. data/test/file_persistence_test.rb +93 -0
  65. data/test/flowtestbase.rb +72 -26
  66. data/test/ft_0.rb +1 -97
  67. data/test/ft_0b_sequence.rb +33 -0
  68. data/test/ft_0c_testname.rb +29 -0
  69. data/test/ft_10_loop.rb +48 -0
  70. data/test/ft_11_ppd.rb +292 -0
  71. data/test/ft_12_blockparticipant.rb +45 -0
  72. data/test/ft_13_eno.rb +51 -0
  73. data/test/ft_14_subprocess.rb +90 -0
  74. data/test/ft_14b_subprocess.rb +40 -0
  75. data/test/ft_15_iterator.rb +70 -0
  76. data/test/ft_16_fqv.rb +57 -0
  77. data/test/ft_1_unset.rb +25 -1
  78. data/test/ft_2_concurrence.rb +10 -5
  79. data/test/ft_3_equals.rb +35 -1
  80. data/test/ft_4_misc.rb +16 -1
  81. data/test/ft_5_time.rb +26 -1
  82. data/test/ft_6_lambda.rb +2 -1
  83. data/test/{ft_7_losfor.rb → ft_7_lose.rb} +41 -35
  84. data/test/ft_8_forget.rb +46 -0
  85. data/test/ft_9_cursor.rb +94 -0
  86. data/test/journal_persistence_test.rb +147 -0
  87. data/test/misctest.rb +13 -9
  88. data/test/rake_ptest.rb +18 -0
  89. data/test/rake_qtest.rb +43 -0
  90. data/test/{fulltest.rb → rake_test.rb} +2 -2
  91. data/test/raw_prog_test.rb +236 -0
  92. data/test/rest_test.rb +189 -0
  93. data/test/rutest_utils.rb +1 -1
  94. data/test/timetest.rb +42 -34
  95. metadata +125 -82
  96. data/lib/codec.rb +0 -573
  97. data/lib/flowexpressionid.rb +0 -139
  98. data/lib/ru/expressionpool.rb +0 -382
  99. data/lib/ru/expressionstorage.rb +0 -99
  100. data/lib/ru/flowexpression.rb +0 -272
  101. data/lib/ru/ruutils.rb +0 -70
  102. data/lib/test.rb +0 -222
  103. data/lib/workitem.rb +0 -249
  104. data/test/quicktest.rb +0 -21
@@ -1,249 +0,0 @@
1
- #
2
- #--
3
- # Copyright (c) 2005-2006, 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
- # $Id: workitem.rb 3556 2006-11-13 04:15:52Z jmettraux $
34
- #
35
-
36
- #
37
- # "hecho en Costa Rica"
38
- #
39
- # john.mettraux@openwfe.org
40
- #
41
-
42
- require 'base64'
43
-
44
- require 'definitions'
45
- require 'utils'
46
-
47
-
48
- module OpenWFE
49
-
50
- #
51
- # WORKITEMS
52
- #
53
-
54
- class WorkItem
55
-
56
- attr_accessor :lastModified, :attributes
57
-
58
- def initialize ()
59
-
60
- @lastModified = nil
61
-
62
- @attributes = {}
63
- @attributes[MAP_TYPE] = E_SMAP
64
- end
65
-
66
- def copy ()
67
- raise "not implemented"
68
- end
69
- end
70
-
71
- class InFlowItem < WorkItem
72
-
73
- attr_accessor :flowExpressionId, :participantName
74
-
75
- def lastExpressionId
76
- return @flowExpressionId
77
- end
78
-
79
- def lastExpressionId= (fei)
80
- @flowExpressionId = fei
81
- end
82
-
83
- alias last_expression_id lastExpressionId
84
- end
85
-
86
- class InFlowWorkItem < InFlowItem
87
-
88
- attr_accessor :dispatchTime, :filter, :history
89
-
90
- attr_accessor :store
91
- #
92
- # special : added by the ruby lib, not given by the worklist
93
-
94
- def dup
95
- return OpenWFE::dup(self)
96
- end
97
- end
98
-
99
- class CancelItem < InFlowItem
100
- end
101
-
102
- class LaunchItem < WorkItem
103
-
104
- attr_accessor :workflowDefinitionUrl
105
- #, :descriptionMap
106
- end
107
-
108
-
109
- #
110
- # HISTORY ITEM
111
- #
112
-
113
- class HistoryItem
114
-
115
- attr_accessor \
116
- :date, \
117
- :author, \
118
- :host, \
119
- :text, \
120
- :wfdName, \
121
- :wfdRevision, \
122
- :wfInstanceId, \
123
- :expressionId
124
-
125
- def dup
126
- return OpenWFE::dup(self)
127
- end
128
- end
129
-
130
-
131
- #
132
- # STORES
133
- #
134
-
135
- #
136
- # Models the information about a store as viewed by the current user
137
- # (upon calling the listStores or getStoreNames methods)
138
- #
139
- class Store
140
-
141
- attr_accessor :name, :workitemCount, :permissions
142
-
143
- def initialize ()
144
- @name = nil
145
- @workitemCount = nil
146
- @permissions = nil
147
- end
148
-
149
- #
150
- # Returns true if the current user may read headers and workitems
151
- # from this store
152
- #
153
- def mayRead? ()
154
- return @permissions.index('r') > -1
155
- end
156
-
157
- #
158
- # Returns true if the current user may modify workitems (and at least
159
- # proceed/forward them) in this store
160
- #
161
- def mayWrite? ()
162
- return @permissions.index('w') > -1
163
- end
164
-
165
- #
166
- # Returns true if the current user may browse the headers of this
167
- # store
168
- #
169
- def mayBrowse? ()
170
- return @permissions.index('b') > -1
171
- end
172
-
173
- #
174
- # Returns true if the current user may delegate workitems to this store
175
- #
176
- def mayDelegate? ()
177
- return @permissions.index('d') > -1
178
- end
179
- end
180
-
181
- #
182
- # A header is a summary of a workitem, returned by the getHeader
183
- # worklist method
184
- #
185
- class Header
186
-
187
- attr_accessor :lastModified, :locked, :flowExpressionId, :attributes
188
- end
189
-
190
-
191
- #
192
- # MISC ATTRIBUTES
193
- #
194
- # in openwfe-ruby, OpenWFE attributes are immediately mapped to
195
- # Ruby instances, but some attributes still deserve their own class
196
- #
197
-
198
- #
199
- # a wrapper for some binary content
200
- #
201
- class Base64Attribute
202
-
203
- attr_accessor :content
204
-
205
- def initialize (base64content)
206
-
207
- @content = base64content
208
- end
209
-
210
- #
211
- # dewraps (decode) the current content and returns it
212
- #
213
- def dewrap ()
214
-
215
- return Base64.decode64(@content)
216
- end
217
-
218
- #
219
- # wraps some binary content and stores it in this attribute
220
- # (class method)
221
- #
222
- def Base64Attribute.wrap (binaryData)
223
-
224
- return Base64Attribute.new(Base64.encode64(binaryData))
225
- end
226
- end
227
-
228
-
229
- #
230
- # LAUNCHABLE
231
- #
232
-
233
- class Launchable
234
-
235
- attr_accessor :url, :engineId
236
- end
237
-
238
-
239
- #
240
- # EXPRESSION (for the control iface)
241
- #
242
-
243
- class Expression
244
-
245
- attr_accessor :id, :applyTime, :state, :stateSince
246
- end
247
-
248
- end
249
-
@@ -1,21 +0,0 @@
1
- #
2
- # Testing OpenWFEru
3
- #
4
- # John Mettraux at openwfe.org
5
- #
6
- # Mon Oct 9 22:19:44 JST 2006
7
- #
8
-
9
- #require 'test/unit'
10
-
11
- require 'ft_2_concurrence'
12
- require 'feitest'
13
- require 'dollartest'
14
- require 'misctest'
15
- require 'ft_0'
16
- require 'ft_1_unset'
17
- require 'ft_3_equals'
18
- require 'ft_4_misc'
19
- require 'ft_6_lambda'
20
- require 'ft_7_losfor'
21
-