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.
I've followed so far the path of least resistence that happened to give me the most value right off the bat, the option c. In the Prova case, the user does not in fact write components--there is already one implemented, ProvaUMOImpl that serves all purposes. You just wire the components up and provide the backing rulebases as part of their configuration in Spring (Spring is very much a requirement now).
The current starup process for "Prova agents" is somewhat odd and we may need to adjust that. The Mule "start phase" calls back the start() method of the ProvaUMOImpl.java (implementing the Startable interface) that consults the rulebases for each respective agent (with the assumption that they should not proceed to sending out inter-agent messages--yet) with the exception of a special "Master" agent that is only consulted when the CONTEXT_STARTED event is detected (the Mule instance is fully started). At that time, the Master agent consults its own rulebase that is expected to send off "init" messages to any agents that wish to become proactive so that they may begin with their collaborative goals that involve inter-agent messaging.
The majority of the tests show how agents can execute fairly complex collaborative workflows (see excellent reference by Prof van der Aalst, http://www.workflowpatterns.com/patterns/index.php), including Simple Merge, Structured Loop, Multi Choice, Deferred Choice, Cancel Activity, Milestone, and Structured Discriminator.
In the Drools case, there is just one demonstration component and the idea is that some Java logic will be hand-coded to wrap each participating Drools rulebase. This part is not that clear to me yet how to make it more useful.