ruote 2.1.7 released

21 views
Skip to first unread message

John Mettraux

unread,
Feb 15, 2010, 1:24:50 AM2/15/10
to openwferu-users
Hi,

I have just released ruote, ruote-dm and ruote-couch 2.1.7.

Here is the changelog for ruote itself :

---8<---
- now works on WinXP, Ruby 1.8.7p249
- reformed msgs ids and adapted Ruote::StorageHistory
- engine.register_participant(x, Ruote::StorageParticipant) now
returning a instance of the participant, for easy query
- StorageParticipant, added #query(criteria), thanks Torsten and Brett
- Ruote::Workitem #lookup('deep.field') and #set_field('deep.field') are back
- Ruote::Workitem added == and hash (list.uniq friendly), thanks Brett
- Engine#configure(key, value), thanks Torsten
- Ruote.to_tree (lightweight version of Ruote.process_definition)
- ParticipantList#names, thanks Kenneth
--->8---

Top of the list is "it runs on WinXP", it's covered in a special
email, so no details.

Here are some highlights :

=== engine.register_participant(x, Ruote::StorageParticipant) now
returning a instance of the participant

this lets you write

part = engine.register_participant :alpha, Ruote::StorageParticipant
# ...
puts "there are now #{part.size} workitems for participant alpha"

No need to grab an instance of StorageParticipant later.


=== StorageParticipant, added #query(criteria), thanks Torsten and Brett

The StorageParticipant gets a query() method for querying fields,
wfid, participant_name all at once :

http://github.com/jmettraux/ruote/blob/ruote2.1/test/functional/ft_20_storage_participant.rb#L157-193


=== Ruote.to_tree (lightweight version of Ruote.process_definition)

Last release (2.1.6) saw the addition of options for the
Engine#re_apply() method :

http://github.com/jmettraux/ruote/blob/ruote2.1/test/functional/ft_14_re_apply.rb

If you want to re_apply a segment of process (perhaps a stalled one),
given the fei (FlowExpressionId) of the point in the process instance,
you can do it with :

engine.re_apply(fei)

If you want to re_apply but a with a new payload for the workitem :

engine.re_apply(fei, :fields => { 'customer' => { 'name' => 'Alf',
'address' => 'saucer street' } })

if you want to re_apply but you want the segment to follow a different
process definition (in-flight modification), you can do :

engine.re_apply(fei, :tree => Ruote.to_tree {
sequence do
supplier
us
customer
end
})

This will, like in the other examples, cancel the stalled segment,
then restart it, but this time with the given (to_tree) process
definition [segment].


I'd like to thanks Torsten Schoenebaum, Kenneth Kalmer and Brett
Anthoine for their help and all of you for your continuous feedback,

--
John Mettraux - http://jmettraux.wordpress.com

Reply all
Reply to author
Forward
0 new messages