Mule provides a set of JBI components that allow Mule Endpoints (transports), components and transformers to be used in any JBI container.
Endpoints
Endpoints are used to send or receive data via a Mule [supported transports] such as Jms, Jdbc, Http, Soap, Xmpp, Ftp, Ejb, Rmi, Quartz, tcp, udp, and more.
There are 2 JBI components for using Mule endpoints:
- MuleReceiver - will receive data over any Mule transport and deliver them as JBI messages.
- MuleDispatcher - will send Jbi Normalised Messages over any Mule transport.
MuleReceiver
The component has a few properties that must be set. The most obvious one is the endpoint on which it will receive events. This endpoint is a Mule endpoint and is independent of the JBI container being used. The other required property is the name of the target service that this component will foward the event to.
| Property |
Type |
Description |
Required |
| endpoint |
java.lang.String |
A [Mule Endpoint URI] on which to receive events |
Yes |
| endpointProperties |
java.util.Map |
Any properties to set on the endpoint. These are any properties supported by the transport provider being used. |
No |
| muleEndpoint |
org.mule.impl.endpoint.MuleEndpoint |
This allows you to specify a Mule endpoint object instead of an EndpointURI string. This gives you greater flexibility to specify filters, transactions and transformers on the endpoint. |
No |
| targetService |
javax.xml.namespace.QName |
The target service to be invoked after this component |
Yes |
| targetServiceName |
java.lang.String |
A string representation of the 'targetService' QName in the form of [prefix]:[localName]:[namespace]. This can be set instead of the targetService property. |
No |
| workManager |
javax.resource.spi.work.WorkManager |
The manager that will manage threads for this component. You can configure all resource management configuration for Mule using the MuleConfigComponent (see below) |
No |
MuleDispatcher
Again the most obvious one is the endpoint on which it will dispatch events. This endpoint is a Mule endpoint and is independent of the JBI container being used.
| Property |
Type |
Description |
Required |
| endpoint |
java.lang.String |
A [Mule Endpoint URI] on which to dispatch events |
Yes |
| endpointProperties |
java.util.Map |
Any properties to set on the endpoint. These are any properties supported by the transport provider being used. |
No |
| muleEndpoint |
org.mule.impl.endpoint.MuleEndpoint |
This allows you to specify a Mule endpoint object instead of an EndpointURI string. This gives you greater flexibility to specify filters, transactions and transformers on the endpoint. |
No |
Components
//Todo
Transformers
The Mule transformer component allows any Mule transformer to run inside JBI. To configure it you must add an instance of the org.mule.providers.jbi.components.TransformerComponent. This expects to have a Mule transformer instance set on it that will be invoked when the component receives the message. The way in which the transformer is set varies from the Jbi container you are using. See Mule JBI Examples for details.