Show Table of Contents
6.2. Configuring Policy
The Policy definition is comprised of two aspects:
- Policy that the service provider requires
- Policy support that the service consumer provides
You can define the policy that a service requires by annotating the service's configuration in the SwitchYard application descriptor. You can also define how a service is consumed through a gateway binding, which effectively determines how the policy requirements are satisfied or provided. The SwitchYard runtime takes care of determining whether the consumer satisfies the policy requirements by evaluating the configuration of the application and the runtime state of the messages exchanged between the consumer and provider. Here is an example configuration:
<composite name="policy-transaction">
<service name="WorkService" promote="WorkService">
<camel:binding.camel configURI="jms://policyQSTransacted?connectionFactory=%23JmsXA&transactionManager=%23jtaTransactionManager&transacted=true"/>
<camel:binding.camel configURI="jms://policyQSNonTransacted?connectionFactory=#ConnectionFactory"/>
</service>
<component name="WorkService">
<implementation.bean class="org.switchyard.quickstarts.demo.policy.transaction.WorkServiceBean" requires="managedTransaction.Global"/>
<service name="WorkService" requires="propagatesTransaction">
<interface.java interface="org.switchyard.quickstarts.demo.policy.transaction.WorkService"/>
</service>
<reference name="TaskAService" requires="propagatesTransaction">
<interface.java interface="org.switchyard.quickstarts.demo.policy.transaction.TaskAService"/>
</reference>
</component>
</composite>

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.