Please front the signals/messages jBPM implementation with standard JMS interfaces. This will decouple the BPMN signal/message elements from the jBPM implementation.
BPMN signal/message specifications and JMS specifications are almost a perfect match. BPMN Signals behave like JMS Topic Messages and BPMN Messages behave like JMS Queue Messages.
The benefits are:
- users can plug in their own JMS provider and integrate jBPM with enterprise messaging
- clean separation of concerns
- easy testing
Additional benefits when using standard off-the-shelf JMS providers:
- asynchronous JMS behavior will prevent deadlocks
- JMS messages can participate in database transactions so we get reliable guaranteed behavior