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

Outbound Router Configuration Reference

This page provides details on the elements you configure for outbound routers. This information is pulled directly from the schema files and is cached. If the information appears to be out of date, refresh the page.

Pass through router

This router always matches and simply sends or dispatches message via the endpoint that is configured.

Attributes of <pass-through-router…​>

Name Type Required Default Description

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

Child Elements of <pass-through-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..1

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Filtering router

Uses filters to determine whether the message matches a particular criteria and if so will route the message to the endpoint configured on the router.

Attributes of <filtering-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

Child Elements of <filtering-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..1

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Chaining router

Sends the message through multiple endpoints using the result of the first invocation as the input for the next.

Attributes of <chaining-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

Child Elements of <chaining-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Exception based router

Sends a message over an endpoint by selecting the first endpoint that can connect to the transport. Endpoints are listed statically in the router configuration.

Attributes of <exception-based-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

Child Elements of <exception-based-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Multicasting router

Sends the same message over multiple endpoints.

Attributes of <multicasting-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

Child Elements of <multicasting-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Endpoint selector router

Selects the outgoing endpoint based on an expression evaluator ("header:endpoint" by default). It will first try to match the endpoint by name and then by address. The endpoints to use can be set on the router itself or be global endpoint definitions.

Attributes of <endpoint-selector-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

default

string

no

The name of the default endpoint to use if the expression returns null. This can be used as an 'else' condition to route messages that don’t contain the expected routing information.

evaluator

standardExpressionEvaluators

yes

The expression evaluator to use. Expression evaluators must be registered with the ExpressionEvaluatorManager before they can be used. Using the custom evaluator allows you to define your own evaluator with the 'custom-evaluator' attribute. Note that some evaluators such as xpath, groovy, and bean are loaded from other Mule modules (XML and Scripting, respectively). These modules must be on your classpath before the evaluator can be used.

expression

string

yes

The expression to evaluate. The syntax of this attribute changes depending on the evaluator being used.

custom-evaluator

name (no spaces)

no

The name of the custom evaluator to use. This attribute is only used when the 'evaluator' attribute is set to "custom". You can plug in your own expression evaluators by registering them with the ExpressionEvaluatorManager.

Child Elements of <endpoint-selector-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

List message splitter router

The Filtering List Message Splitter accepts a list of objects that is split each object being routed to different endpoints.

Attributes of <list-message-splitter-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

deterministic

boolean

no

If 'disableRoundRobin' is false and this option is true (the default) then the first message part will be routed to the first endpoint, the second part to the second endpoint, etc, with the nth part going to the (n modulo number of endpoints) endpoint. If false then the messages will be distributed equally amongst all endpoints.

disableRoundRobin

boolean

no

If filters are being used on endpoints then round robin behaviour is probably not desirable. This flag switches round robin behaviour off, it is on by default.

failIfNoMatch

boolean

no

If 'disableRoundRobin' is true, there may be situations where the current split message does not match any endpoints. this flag controls whether an exception should be thrown when a match is not found.

Child Elements of <list-message-splitter-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Expression splitter router

Splits the message based on an expression. The expression must return one or more message parts in order to be effective.

Attributes of <expression-splitter-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

deterministic

boolean

no

If 'disableRoundRobin' is false and this option is true (the default) then the first message part will be routed to the first endpoint, the second part to the second endpoint, etc, with the nth part going to the (n modulo number of endpoints) endpoint. If false then the messages will be distributed equally amongst all endpoints.

disableRoundRobin

boolean

no

If filters are being used on endpoints then round robin behaviour is probably not desirable. This flag switches round robin behaviour off, it is on by default.

failIfNoMatch

boolean

no

If 'disableRoundRobin' is true, there may be situations where the current split message does not match any endpoints. this flag controls whether an exception should be thrown when a match is not found.

evaluator

standardExpressionEvaluators

yes

The expression evaluator to use. Expression evaluators must be registered with the ExpressionEvaluatorManager before they can be used. Using the custom evaluator allows you to define your own evaluator with the 'custom-evaluator' attribute. Note that some evaluators such as xpath, groovy, and bean are loaded from other Mule modules (XML and Scripting, respectively). These modules must be on your classpath before the evaluator can be used.

expression

string

yes

The expression to evaluate. The syntax of this attribute changes depending on the evaluator being used.

custom-evaluator

name (no spaces)

no

The name of the custom evaluator to use. This attribute is only used when the 'evaluator' attribute is set to "custom". You can plug in your own expression evaluators by registering them with the ExpressionEvaluatorManager.

Child Elements of <expression-splitter-router…​>

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Message chunking router

Allows you to split a single message into a number of fixed-length messages that will all be routed to the same endpoint.

Attributes of <message-chunking-router…​>

Name Type Required Default Description

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

messageSize

integer

no

The message chunk size (in bytes) that the current message will be split into. Note that this is mutually exclusive to the 'numberOfMessages' property.

numberOfMessages

integer

no

The number of message peices to break the current message into. This property is less useful than the 'message' size property since, usually messages are constricted by size. Note that this is mutually exclusive to the 'messageSize' property.

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

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Static recipient list router

Sends the same message to multiple endpoints over the same endpoint, or implements routing-slip behavior where the next destination for the message is determined from message properties or the payload. It uses a static list of recipient endpoints.

Attributes of <static-recipient-list-router…​>

Name Type Required Default Description

recipientsProperty

string

no

Defines a property name on the current message where a list of endpoint names (or URIs) can be obtained. This property can return a java.util.List of values or a delimited java.lang.String. If the 'recipientsProperty' returns a string then the 'recipientsDelimiter' property is used to split the string. If the entries in the String or List define endpoint names, these will be looked up at runtime. If the entries define endpoint URIs these endpoints will be created at runtime.

recipientsDelimiter

string

no

The delimiter to use when splitting a String list of recipients. the default is ','. This property is only used with the 'recipientsProperty'.

synchronous

boolean

no

This flag controls whether the message will be sent to the recipients synchronously. Unlike other routers th recipient list router doesn’t have pre-configured endpoints so the synchronicity of the endpoint cannot be honoured.

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

Child Elements of <static-recipient-list-router…​>

Name Cardinality Description

recipients

0..1

Static list of recipients that the outgoing message is sent to. The default delimiter is ','.

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

Expression recipient list router

Sends the same message to multiple endpoints over the same endpoint, or implements routing-slip behavior where the next destination for the message is determined from message properties or the payload. The recipients can be extracted from the message using an expression, or you can specify a static list of recipient endpoints. (As of version 2.1)

Attributes of <expression-recipient-list-router…​>

Name Type Required Default Description

synchronous

boolean

no

This flag controls whether the message will be sent to the recipients synchronously. Unlike other routers th recipient list router doesn’t have pre-configured endpoints so the synchronicity of the endpoint cannot be honoured.

useTemplates

boolean

no

true

Determines if placeholders with expressions can be used with the form [ ] in endpoint uri’s.

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

evaluator

standardExpressionEvaluators

yes

The expression evaluator to use. Expression evaluators must be registered with the ExpressionEvaluatorManager before they can be used. Using the custom evaluator allows you to define your own evaluator with the 'custom-evaluator' attribute. Note that some evaluators such as xpath, groovy, and bean are loaded from other Mule modules (XML and Scripting, respectively). These modules must be on your classpath before the evaluator can be used.

expression

string

yes

The expression to evaluate. The syntax of this attribute changes depending on the evaluator being used.

custom-evaluator

name (no spaces)

no

The name of the custom evaluator to use. This attribute is only used when the 'evaluator' attribute is set to "custom". You can plug in your own expression evaluators by registering them with the ExpressionEvaluatorManager.

Child Elements of <expression-recipient-list-router…​>

Name Cardinality Description

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.

recipients

0..1

A static list of endpoint names or URIs that will be used as recipients of the current message. If the expression on this router returns a list of endpoint names, the endpoints here will be checked as well as any global endpoints.

Custom outbound router

Allows you to configure a custom outbound router by specifying the custom router class and by using Spring properties.

Attributes of <custom-outbound-router…​>

Name Type Required Default Description

class

class name

yes

An implementation of OutboundRouter (fully qualified Java class name)

transformer-refs

list of names

no

A list of the transformers that will be applied to the message in order before it is delivered to the component.

enableCorrelation

enumeration

no

IF_NOT_SET

Specifies whether Mule should give outgoing messages a correlation ID. The default behavior is to give messages a correlation ID only if they don’t already have one, so that existing correlation IDs are maintained.

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

Name Cardinality Description

abstract-outbound-endpoint

0..*

A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.

spring:property

0..*

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

abstract-filter

0..1

Filters the messages to be processed by this router. @Deprecated since 2.2. Configure the filter on the endpoint instead of the router. A placeholder for filter elements, which control which messages are handled.

abstract-transformer

0..*

Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered. A placeholder for transformer elements. Transformers convert message payloads.

reply-to

0..1

Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.

abstract-transaction

0..1

Defines an overall transaction that will be used for all endpoints on this router. This is only useful when you want to define an outbound only transaction that will commit all of the transactions defined on the outbound endpoints for this router. Note that you must still define a transaction on each of the endpoints that should take part in the transaction. These transactions should always be configured to JOIN the existing transaction. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.