Sure. Thanks for the response. You could use the below process defnintion and EventListener class to try to reproduce this:
| <?xml version="1.0" encoding="UTF-8"?> | | <process name="MyWorkflow" xmlns="http://jbpm.org/4.0/jpdl"> | | <start g="11,265,80,40"> | <transition to="fork"/> | </start> | | <fork g="76,263,80,40" name="fork"> | <transition to="ValidateOne"/> | <transition to="ValidateTwo"/> | </fork> | | <state g="138,450,127,52" name="ValidateOne"> | <on event="timeout"> | <timer name="checkValidityForOne" duedate="3 minutes" repeat="2 minutes"/> | <event-listener class="some.class.CheckValidityOneEvent"> | <field name="idType"><string value="ID_ONE"/></field> | </event-listener> | </on> | <transition g="-72,-22" name="valid" to="complete"/> | <transition g="-72,-22" name="invalid" to="end"/> | </state> | | <state g="138,450,127,52" name="ValidateTwo"> | <on event="timeout"> | <timer name="checkValidityForTwo" duedate="4 minutes" repeat="5 minutes"/> | <event-listener class="some.class.CheckValidityTwoEvent"> | <field name="idType"><string value="ID_TWO"/></field> | </event-listener> | </on> | <transition g="-72,-22" name="valid" to="complete"/> | <transition g="-72,-22" name="invalid" to="end"/> | </state> | | <join g="706,212,48,48" multiplicity="2" name="complete"> | <transition to="end"/> | </join> | | <end g="779,213,48,48" name="end"/> | </process> | It just has a fork, two concurrent activities (events), and a join. My sample event listener class: | @SuppressWarnings("serial") | public class CheckValidityOneEvent implements EventListener { | private final Logger log = Logger.getLogger(this.getClass()); | | @Override | public void notify(EventListenerExecution execution) throws Exception { | try { | // business logic, check for condition | | // if condition met, signal execution by id | executionService.signalExecutionById(execution.getId(), "valid"); | | // otherwise, do nothing | } catch (Exception ex) { | // catch all exceptions and don't rethrow them. | log.error("Exception occured: " + ex.getMessage()); | } | } | } | So on each timeout, the timer will perform a check and transitions to valid only if the check is successful. Otherwise it does nothing. I won't throw any exceptions up the chain. I have my .bar and library jar deployed to jboss 5.1 GA. Let me know if you need anymore information. Thanks. View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4263552#4263552 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4263552 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user