Inbound Router Configuration Reference
This page provides details on the elements you configure for inbound routers. This information is pulled directly from mule.xsd
and is cached. If the information appears to be out of date, refresh the page.
Idempotent receiver router
Ensures that only unique messages are received by a service by checking the unique ID of the incoming message. Note that the ID used can be generated from the message using an expression defined in the 'idExpression' attribute. By default, the expression used is '#[message:id]', which means the underlying endpoint must support unique message IDs for this to work. Otherwise, a UniqueIdNotSupportedException is thrown.
Attributes of <idempotent-receiver-router…>
Name | Type | Required | Default | Description |
---|---|---|---|---|
idExpression |
string |
no |
Defines one or more expressions to use when extracting the ID from the message. For example, it would be possible to combine to headers as the ID of the message to provide idempotency: '[headers:foo,bar]'. Or, you could combine the message ID with a header: '[message:id]-[header:foo]'. If this property is not set, '[message:id]' will be used by default. |
Idempotent secure hash receiver router
Ensures that only unique messages are received by a service by calculating the hash of the message itself using a message digest algorithm. This provides a value with an infinitesimally small chance of a collision. This can be used to filter message duplicates. Keep in mind that the hash is calculated over the entire byte array representing the message, so any leading or trailing spaces or extraneous bytes (like padding) can produce different hash values for the same semantic message content. Care should be taken to ensure that messages do not contain extraneous bytes. This class is useful when the message does not support unique identifiers.
Wire tap router
The WireTap inbound router allows you to route certain messages to a different endpoint as well as to the component.
Child Elements of <wire-tap-router…>
Name | Cardinality | Description |
---|---|---|
abstract-filter |
0..1 |
A placeholder for filter elements, which control which messages are handled. |
abstract-outbound-endpoint |
1..1 |
A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport. |
Selective consumer router
Applies one or more filters to the incoming message. If the filters match, the message is forwarded to the component. Otherwise, the message is forwarded to the catch-all strategy on the router. If no catch-all strategy is configured, the message is ignored and a warning is logged.
Correlation resequencer router
Holds back a group of messages and resequences them using each message’s correlation sequence property.
Attributes of <correlation-resequencer-router…>
Name | Type | Required | Default | Description |
---|---|---|---|---|
timeout |
integer |
no |
Defines a timeout in Milliseconds to wait for events to be aggregated. By default the router will throw an exeception if the router is waiting for a correlation group and times out before all group enties are received. |
|
failOnTimeout |
boolean |
no |
When false, incomplete aggregation groups will be forwarded to a component on timeout as a java.util.List. When true (default), a CorrelationTimeoutException is thrown and RoutingNotification.CORRELATION_TIMEOUT is fired. The component doesn’t receive any messages in this case. |
Message chunking aggregator router
Combines two or more messages into a single message by matching messages with a given Correlation ID. Correlation IDs are set on messages when they are dispatched by certain outbound routers, such as the Recipient List and Message Splitter routers. These messages can be aggregated back together again using this router.
Attributes of <message-chunking-aggregator-router…>
Name | Type | Required | Default | Description |
---|---|---|---|---|
timeout |
integer |
no |
Defines a timeout in Milliseconds to wait for events to be aggregated. By default the router will throw an exeception if the router is waiting for a correlation group and times out before all group enties are received. |
|
failOnTimeout |
boolean |
no |
When false, incomplete aggregation groups will be forwarded to a component on timeout as a java.util.List. When true (default), a CorrelationTimeoutException is thrown and RoutingNotification.CORRELATION_TIMEOUT is fired. The component doesn’t receive any messages in this case. |
Custom correlation aggregator router
Configures a custom message aggregator. Mule provides an abstract implementation that has a template method that performs the message aggregation. A common use of the aggregator router is to combine the results of multiple requests such as "ask this set of vendors for the best price of X".
Attributes of <custom-correlation-aggregator-router…>
Name | Type | Required | Default | Description |
---|---|---|---|---|
timeout |
integer |
no |
Defines a timeout in Milliseconds to wait for events to be aggregated. By default the router will throw an exeception if the router is waiting for a correlation group and times out before all group enties are received. |
|
failOnTimeout |
boolean |
no |
When false, incomplete aggregation groups will be forwarded to a component on timeout as a java.util.List. When true (default), a CorrelationTimeoutException is thrown and RoutingNotification.CORRELATION_TIMEOUT is fired. The component doesn’t receive any messages in this case. |
|
class |
class name |
yes |
Fully qualified class name of the custom correlation aggregator router to be used. |
Collection aggregator router
Configures a Collection Response Router. This will return a MuleMessageCollection message type that will contain all messages received for a each correlation group.
Attributes of <collection-aggregator-router…>
Name | Type | Required | Default | Description |
---|---|---|---|---|
timeout |
integer |
no |
Defines a timeout in Milliseconds to wait for events to be aggregated. By default the router will throw an exeception if the router is waiting for a correlation group and times out before all group enties are received. |
|
failOnTimeout |
boolean |
no |
When false, incomplete aggregation groups will be forwarded to a component on timeout as a java.util.List. When true (default), a CorrelationTimeoutException is thrown and RoutingNotification.CORRELATION_TIMEOUT is fired. The component doesn’t receive any messages in this case. |