Add support for FAULT propagation between JMS reference and service bindings in a SwitchYard application.
Currently the fault flag in a message is not carried over the JMS binding, since JMS has no inherent concept of a fault. And one option to achieve this would be to set a JMS message property when the service provider (JMS service binding) fails, check for this property in a custom message composer for the service consumer (JMS reference binding) and mark the Camel Message as a fault (via setFault()).
However, users might argue that the application should not deal with specific message types, it rather should operate only on the Message interface; And the Message interface does not include a setFault() method. To carry on the fault flag over JMS could be a functionality that should sit in a layer between JMS and the application, instead of being implemented in each and every application.
Here is an example scenario: We have two SY applications (two switchyard.xml). Each of them has only one Camel XML route as implementation. They are connected via JMS binding, i.e.:
ReferenceB encounters a SOAPFault. This fault is properly progagated back to ServiceB (the Exchange state is always FAULT). However, when the message enters ReferenceA after being transferred over JMS, the fault state is lost. The Exchange is in state OK, even though the message contains the SOAPFault.