Prova rewrite is progressing further with partitioned reactions and ESB messaging re-implementation. The updated Mule Prova Agents project now has all previous tests working against new Prova. Apart from small differences in Prova syntax, the most significant difference for ESB messaging is that Prova agents send and receive ProvaListImpl objects instead of now obsolete RMessage. Check it out here: https://mandarax.svn.sourceforge.net/svnroot/mandarax/mule-prova-agents2.... All tests beginning with the word Prova (for example, ProvaPetriDeferredChoiceTest) are using the Prova rewrite code.
I have updated the Mule Prova Agents project at https://mandarax.svn.sourceforge.net/svnroot/mandarax/mule-prova-agents2... and all tests run fine now. The project uses the latest build of Prova, Mule 2.1.2 and Drools 5.0.0.M5.
There are at least three ways Prova or Drools could be brought into the Mule world:
a) Mule transports,
b) Mule agents,
c) Mule components.
Concurrency and messaging and rules in combination is a fairly grey area and the old Prova attempted to propose a solution. The new redesign should feel more consistent and useful. All details will be on http://prova.ws/confluence site but here is a short outline. Prova agents execute protocols and send and receive messages asynchronously.
More updates to messaging in the "new" Prova.
1. Added the spawn predicate that runs Java calls as tasks on the task thread pool. The result is shipped back as a message.
2. Added rcvMult reactions that are kept after a matching message arrives. This is comparable with the "every" construct in the Esper event processing language.
3. Any conversations with conversation XID are now always pinned to the same thread so that message ordering is preserved in any given conversation at all times.