The JMS binding in SwitchYard provides support for asynchronous communication with messaging providers. It supports both sides - service and reference. The JMS binding is built on top of camel-jms and supports most of options for this endpoint. Please reffer camel documentation for detailed description of them.
Known Limitation
https://issues.jboss.org/browse/SWITCHYARD-1285 - Declarative transaction management by the Transaction Policy doesn't work with camel-jms properly. We are investigating how can we solve it, but you may want to use JCA gateway instead for now.
Generic options
Following options can be apile to <binding.jms> definition:
Binding Services with JMS
Here's an example of what a jms service binding looks like:
<sca:composite name="camel-binding" targetNamespace="urn:switchyard-quickstart:camel-binding:0.1.0">
<sca:service name="GreetingService" promote="GreetingService">
<camel:binding.jms>
<camel:queue>INCOMING_GREETS</camel:queue>
<camel:connectionFactory>#connectionFactory</camel:connectionFactory>
<camel:username>esb</camel:username>
<camel:password>rox</camel:password>
<camel:selector>RECEIVER='ESB' AND SENDER='ERP'<camel:selector>
</camel:binding.jms>
</sca:service>
</sca:composite>
Binding References with JMS
<sca:composite name="camel-binding" targetNamespace="urn:switchyard-quickstart:camel-binding:0.1.0">
<sca:reference name="GreetingService" promote="camel-binding/GreetingService" multiplicity="1..1">
<camel:binding.jms>
<camel:topic>GREETINGS_NOTIFICATION</camel:topic>
<camel:connectionFactory>#connectionFactory</camel:connectionFactory>
<camel:priority>8</camel:priority>
<camel:binding.jms>
</sca:reference>
</sca:composite>