Nav
You are viewing an older version of this section. Click here to navigate to the latest version.

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.

Child Elements of <idempotent-receiver-router…​>

Name Cardinality Description

abstract-object-store

0..1

A placeholder for an object store that can be used by routers to maintain state.

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.

Attributes of <idempotent-secure-hash-receiver-router…​>

Name Type Required Default Description

messageDigestAlgorithm

string

no

The secure hashing algorithm to use. If not set, the default is SHA-256.

Child Elements of <idempotent-secure-hash-receiver-router…​>

Name Cardinality Description

abstract-object-store

0..1

A placeholder for an object store that can be used by routers to maintain state.

Wire tap router

The WireTap inbound router allows you to route certain messages to a different endpoint as well as to the component.

Attributes of <wire-tap-router…​>

Name Type Required Default Description

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.

Forwarding router

Allows messages to be forwarded to the outbound routers without first being processed by a component.

Attributes of <forwarding-router…​>

Name Type Required Default Description

Child Elements of <forwarding-router…​>

Name Cardinality Description

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.

Attributes of <selective-consumer-router…​>

Name Type Required Default Description

Child Elements of <selective-consumer-router…​>

Name Cardinality Description

abstract-filter

0..1

A placeholder for filter elements, which control which messages are handled.

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.

Child Elements of <correlation-resequencer-router…​>

Name Cardinality Description

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.

Child Elements of <message-chunking-aggregator-router…​>

Name Cardinality Description

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.

Child Elements of <custom-correlation-aggregator-router…​>

Name Cardinality Description

spring:property

0..*

Spring-style property element for custom configuration.

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.

Child Elements of <collection-aggregator-router…​>

Name Cardinality Description

Custom inbound router

Allows for custom inbound routers to be configured.

Attributes of <custom-inbound-router…​>

Name Type Required Default Description

class

class name

yes

An implementation of InboundRouter (fully qualified Java class name)

Child Elements of <custom-inbound-router…​>

Name Cardinality Description

spring:property

0..*

Spring-style property elements so that custom configuration can be configured on the custom router.