# Element Summary

Element | Description | Class
--- | --- | ---
async-bridge | The async bridge pattern is used to bridge an In-Out exchange with two In-Only (or Robust-In-Only) exchanges. This pattern is the opposite of the {@link Pipeline}. The AsyncBridge uses a correlation identifier to be able to correlate the received In-Out exchange, the In-Only sent as the request and the In-Only received as the response. Defaults values are provided to configure those correlation ids. The default behavior is to use the exchange id of the incoming In-Out exchange as the correlation id and set it on the request exchange. The same property with the same value should be present on the response exchange in order for the AsyncBridge to work. ServiceMix components usually take care of propagating such properties, but failing to propagate it will result in errors. | org.apache.servicemix.eip.patterns.AsyncBridge
component | An EIP component | org.apache.servicemix.eip.EIPComponent
content-based-router | ContentBasedRouter can be used for all kind of content-based routing. This component implements the Content-Based Router pattern. | org.apache.servicemix.eip.patterns.ContentBasedRouter
content-enricher | Implementation of the Content-Enricher Pattern. | org.apache.servicemix.eip.patterns.ContentEnricher
default-comparator | Compares {@link MessageExchange} sequence elements based on sequence numbers defined by their in-{@link javax.jbi.messaging.NormalizedMessage}s. This comparator works on sequence numbers of type {@link Long}. Sequence numbers must be stored as {@link javax.jbi.messaging.NormalizedMessage} properties. The property name under which the sequence number is stored is configured via this comparator's `sequenceNumberKey` property. | org.apache.servicemix.eip.support.resequence.DefaultComparator
exchange-target | An ExchangeTarget may be used to specify the target of an exchange, while retaining all the JBI features (interface based routing, service name based routing or endpoint routing). | org.apache.servicemix.eip.support.ExchangeTarget
message-filter | MessageFilter allows filtering incoming JBI exchanges. This component implements the Message Filter pattern. | org.apache.servicemix.eip.patterns.MessageFilter
namespace-context | A simple namespace context. | org.apache.servicemix.eip.support.NamespaceContextImpl
pipeline | The Pipeline component is a bridge between an In-Only (or Robust-In-Only) MEP and an In-Out MEP. When the Pipeline receives an In-Only MEP, it will send the input in an In-Out MEP to the tranformer destination and forward the response in an In-Only MEP to the target destination. In addition, this component is fully asynchronous and uses an exchange store to provide full HA and recovery for clustered / persistent flows. | org.apache.servicemix.eip.patterns.Pipeline
recipient-list-aggregator | An aggregator specifically written to aggregate messages that have been sent using a StaticRecipientList pattern. | org.apache.servicemix.eip.patterns.RecipientListAggregator
resequencer | This pattern implements the Resequencer EIP pattern. The aim of this pattern is to put back into correct order a flow of out-of-sequence messages. | org.apache.servicemix.eip.patterns.Resequencer
routing-rule | The RoutingRule interface is used by content based routers. If the rule predicate matches the MessageExchange, the target defined on the rule will be used as the destination for the given MessageExchange. | org.apache.servicemix.eip.support.RoutingRule
split-aggregator | Aggregator can be used to wait and combine several messages. This component implements the Aggregator pattern. This aggregator collect messages with a count, index and correlationId properties. These properties are automatically set by splitters. A timeout may be specified so that the aggregator will not keep data forever if a message is missing. | org.apache.servicemix.eip.patterns.SplitAggregator
static-recipient-list | The StaticRecipientList component will forward an input In-Only or Robust-In-Only exchange to a list of known recipients. This component implements the Recipient List pattern, with the limitation that the recipient list is static. | org.apache.servicemix.eip.patterns.StaticRecipientList
static-routing-slip | A RoutingSlip component can be used to route an incoming In-Out exchange through a series of target services. This endpoint implements the Routing Slip pattern, with the limitation that the routing table is static. This endpoint only uses In-Out MEPs and errors or faults sent by targets are reported back to the consumer, thus interrupting the routing process. In addition, this endpoint is fully asynchronous and uses an exchange store to provide full HA and recovery for clustered / persistent flows. | org.apache.servicemix.eip.patterns.StaticRoutingSlip
switch-predicate | Switch (on/off) predicate based on a property that can come from a system property, a property from a property file (specified as Spring resource), or a property from the exchange. The property is interpreted as a boolean value. | org.apache.servicemix.eip.support.SwitchPredicate
wire-tap | A WireTap component can be used to forward a copy of the input message to a listener. This component implements the WireTap pattern. It can handle all 4 standard MEPs, but will only send an In-Only MEP to the listener. In addition, this component is fully asynchronous and uses an exchange store to provide full HA and recovery for clustered / persistent flows. | org.apache.servicemix.eip.patterns.WireTap
xpath-predicate | A predicate that verify if the xpath expression evaluated on the content of the input message is true or not. | org.apache.servicemix.eip.support.XPathPredicate
xpath-splitter | The XPathSplitter component implements the Splitter pattern using an xpath expression to split the incoming xml. | org.apache.servicemix.eip.patterns.XPathSplitter

# Element Detail

## Element: async-bridge

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
requestCorrId | xs:string | The expression used to compute the correlation id used to correlate the response and the request. The default behavior is to use the exchange id of the incoming In-Out exchange as the correlation id.
responseCorrId | xs:string | The expression used to compute the correlation id from the response exchange. The value computed by this expression must match the one from the {@link #setRequestCorrId} expression. The default value is null, but if no specific expression is configured, an expression will be created which will extract the response correlation id from the {@link #setResponseCorrIdProperty(String)} property on the exchange.
responseCorrIdProperty | xs:string | Name of the property used by default to compute the correlation id on the response exchange.
service | xs:QName | Get the service qualified name of the endpoint.
timeout | xs:long | The timeout property controls the amount of time that the async bridge will wait for the response after having sent the request. The default value is 0 which means that no timeout apply. If set to a non zero value, a timer will be started when after the request is sent. When the timer expires, the In-Out exchange will be sent back with an error status and a {@link java.util.concurrent.TimeoutException} as the cause of the error. The value represents the number of milliseconds to wait.
useRobustInOnly | xs:boolean | Boolean flag to control if In-Only or Robust-In-Only exchange should be used when sending the request. The default value is `false` which means that an In-Only exchange will be used. When using a Robust-In-Only exchange and when a fault is received, this fault will be sent back to the consumer on the In-Out exchange and the response exchange (if any) would be discarded. For both In-Only and Robust-In-Only, if the request exchange comes back with an Error status, this error will be conveyed back to the consumer in the same way.

Element | Type | Description
--- | --- | ---
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The target which will be used to send an In-Only or Robust-In-Only exchange to. When receiving an In-Out exchange, the async bridge will create an In-Only request and send it to the specified target. It then expects another In-Only exchange to come back as the response, which will be set as the Out message on the In-Out exchange. This property is mandatory and must be set to a valid target.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: component

Element | Type | Description
--- | --- | ---
endpoints | (async-bridge | content-based-router | content-enricher | message-filter | pipeline | recipient-list-aggregator | resequencer | split-aggregator | static-recipient-list | static-routing-slip | wire-tap | xpath-splitter)* | A list of endpoints to activate on this component.
executorFactory | <spring:bean/> | The executor factory to use to create the executor. If none is provided, one will be retrieved from the JBI container when the component is deployed into ServiceMix 3.x, or a default implementation will be used.

## Element: content-based-router

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | Get the endpoint implementation.
forwardOperation | xs:boolean | Forward the operation qname when sending the exchange to the target.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
rules | (routing-rule)* | The list of routing rules.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: content-enricher

Attribute | Type | Description
--- | --- | ---
copyAttachments | xs:boolean | If this is set to `true`, message attachments from the incoming exchange and the enricher exchange will be copied to the outgoing message exchange. The default value is `false` (do not copy message atachments).
copyProperties | xs:boolean | If this is set to `true`, message properties from the incoming exchange and the enricher exchange will be copied to the outgoing message exchange. The default value is `false` (do not copy message properties).
endpoint | xs:string | Get the endpoint implementation.
enricherElementName | xs:QName | returns the QName of the resulting root node
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
requestElementName | xs:QName | Returns the QName of the element which contains the 'IN Message' within the response message
resultElementName | xs:QName | Returns the QName of the element which contains the message which was produced by the enricherTarget within the response message
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
enricherTarget | exchange-target | The target that will receive a copy of the input message and return an addtitional content.
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The target where the enriched exchanges are sent.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: default-comparator

Attribute | Type | Description
--- | --- | ---
sequenceNumberKey | xs:string | The property name on the input message containing the sequence number

## Element: exchange-target

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | The endpoint name of the target.
interface | xs:QName | The interface QName implemented by the target
operation | xs:QName | The operation QName that will be set on the exchange
service | xs:QName | The service QName of the target
uri | xs:string | An URI identifying the target

## Element: message-filter

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
reportErrors | xs:boolean | Indicates if faults and errors from recipients should be sent back to the consumer. In such a case, only the first fault or error received will be reported. Note that if the consumer is synchronous, it will be blocked until all recipients successfully acked the exchange, or a fault or error is reported, and the exchange will be kept in the store for recovery.
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
filter | switch-predicate | xpath-predicate | The filter to use on incoming messages
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The main target destination which will receive the exchange
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: namespace-context

Element | Type | Description
--- | --- | ---
namespaces | <spring:bean/> | Keep the getter/setter to keep xbean annotation

## Element: pipeline

Attribute | Type | Description
--- | --- | ---
copyAttachments | xs:boolean | Should message attachments be copied ?
copyProperties | xs:boolean | Should message properties be copied ?
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
sendFaultsToTarget | xs:boolean | When the faultsTarget is not specified, faults may be sent to the target endpoint if this flag is set to `true`
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
faultsTarget | exchange-target | The address of the endpoint to send faults to
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The address of the target endpoint
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
transformer | exchange-target | The adress of the in-out endpoint acting as a transformer
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: recipient-list-aggregator

Attribute | Type | Description
--- | --- | ---
aggregateElementName | xs:QName | The qualified name that will be used as the root xml element when building the aggregate. Messages contents will be appended to this root element as direct children or inside an element dependending on the `messageElementName` property.
copyAttachments | xs:boolean | Copy all attachments from the incoming messages to the aggregated message. Default value is `true`.
copyProperties | xs:boolean | Copy all properties from the incoming messages to the aggregated message. Default value is `true`.
corrId | xs:string | An expression used to compute the correlation ids of incoming messages to find related messages. The default value is to retrieve the same property as the splitter.
count | xs:string | An expression used to compute the total number of message that the aggregate will contain. The default value is to retrieve the same property as the splitter. This property is evaluated on each incoming message and must always have the same value for all messages in the same aggregate.
countAttribute | xs:string | The name of the xml attribute attached to the root element that will contain the number of messages in this aggregate.
endpoint | xs:string | Get the endpoint implementation.
index | xs:string | An expression used to compute the index of this message in the aggregate. For a given message, the index must be unique within the aggregate and must range between `0` and `count - 1` included.
indexAttribute | xs:string | The name of the xml attribute attached to the message element that will contain the index of messages in this aggregate.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
messageElementName | xs:QName | The qualified name of the xml element used to embed each message when building the aggregated message. If `null`, messages contents will be appended directly as children of the root element.
reportClosedAggregatesAsErrors | xs:boolean | Sets whether the aggregator should report errors on incoming exchanges received after a given aggregate has been closed. The default value is `false`, meaning that such exchanges will be silently sent back with a DONE status and discarded with respect to the aggregation process.
reportErrors | xs:boolean | Sets whether the aggregator should report errors happening when sending the aggregate on all exchanges that compose the aggregate. The default value is `false`, meaning that if any error occur, this error will be lost. Note that if this flag is set to `true`, all exchanges received as part of a given aggregate will be hold until the aggregate is sent and the DONE / ERROR status is received back.
reportTimeoutAsErrors | xs:boolean | Sets whether the aggregator should reports errors on incoming exchanges already received when a timeout occurs. The default value is `false`, meaning that such exchanges will be silently sent back a DONE status.
rescheduleTimeouts | xs:boolean | Boolean flag controlling if aggregate timeouts are rescheduled each time a new message is added to the aggregate. If `false`, the timeout will expire when the specified amount of time elapsed after the first message is received for this aggregate. If `true`, the timeout will expire when the specified amount of time elapsed after the last message is received. The default value is `false`.
service | xs:QName | Get the service qualified name of the endpoint.
synchronous | xs:boolean | Boolean flag that Controls whether the aggregate (when ready) will be sent synchronously or not. On ServiceMix 3.x, this can have an effect upon the flow and transaction semantics. The default value is `false`.
timeout | xs:long | The maximum amount of time (in milliseconds) that can elapse between messages for a single aggregate. The default value is `0` which means that the timeout is not used at all.

Element | Type | Description
--- | --- | ---
closedAggregatesStoreFactory | <spring:bean/> | Access the currently configured {@link StoreFactory} for storing closed aggregations
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The exchange target that will be used to send the aggregate to.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: resequencer

Attribute | Type | Description
--- | --- | ---
capacity | xs:integer | The capacity of this resequencer. The capacity determines the maximum number of message that will be kept in memory to put the messages back in sequence. This determine how far two messages can be in the list of messages while still being put back in sequence.
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
service | xs:QName | Get the service qualified name of the endpoint.
timeout | xs:long | Set the timeout of this resequencer. This specifies the maximum number of milliseconds that can elapse between two out-of-sync messages.

Element | Type | Description
--- | --- | ---
comparator | default-comparator | The comparator used to determine the sequence order of elements.
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target |
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: routing-rule

Element | Type | Description
--- | --- | ---
predicate | switch-predicate | xpath-predicate | The predicate associated to this routing rule.
target | exchange-target | The target to send the routed exchange to if the predicate matches.

## Element: split-aggregator

Attribute | Type | Description
--- | --- | ---
aggregateElementName | xs:QName | The qualified name that will be used as the root xml element when building the aggregate. Messages contents will be appended to this root element as direct children or inside an element dependending on the `messageElementName` property.
copyAttachments | xs:boolean | Copy all attachments from the incoming messages to the aggregated message. Default value is `true`.
copyProperties | xs:boolean | Copy all properties from the incoming messages to the aggregated message. Default value is `true`.
corrId | xs:string | An expression used to compute the correlation ids of incoming messages to find related messages. The default value is to retrieve the same property as the splitter.
count | xs:string | An expression used to compute the total number of message that the aggregate will contain. The default value is to retrieve the same property as the splitter. This property is evaluated on each incoming message and must always have the same value for all messages in the same aggregate.
countAttribute | xs:string | The name of the xml attribute attached to the root element that will contain the number of messages in this aggregate.
endpoint | xs:string | Get the endpoint implementation.
index | xs:string | An expression used to compute the index of this message in the aggregate. For a given message, the index must be unique within the aggregate and must range between `0` and `count - 1` included.
indexAttribute | xs:string | The name of the xml attribute attached to the message element that will contain the index of messages in this aggregate.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
messageElementName | xs:QName | The qualified name of the xml element used to embed each message when building the aggregated message. If `null`, messages contents will be appended directly as children of the root element.
reportClosedAggregatesAsErrors | xs:boolean | Sets whether the aggregator should report errors on incoming exchanges received after a given aggregate has been closed. The default value is `false`, meaning that such exchanges will be silently sent back with a DONE status and discarded with respect to the aggregation process.
reportErrors | xs:boolean | Sets whether the aggregator should report errors happening when sending the aggregate on all exchanges that compose the aggregate. The default value is `false`, meaning that if any error occur, this error will be lost. Note that if this flag is set to `true`, all exchanges received as part of a given aggregate will be hold until the aggregate is sent and the DONE / ERROR status is received back.
reportTimeoutAsErrors | xs:boolean | Sets whether the aggregator should reports errors on incoming exchanges already received when a timeout occurs. The default value is `false`, meaning that such exchanges will be silently sent back a DONE status.
rescheduleTimeouts | xs:boolean | Boolean flag controlling if aggregate timeouts are rescheduled each time a new message is added to the aggregate. If `false`, the timeout will expire when the specified amount of time elapsed after the first message is received for this aggregate. If `true`, the timeout will expire when the specified amount of time elapsed after the last message is received. The default value is `false`.
service | xs:QName | Get the service qualified name of the endpoint.
synchronous | xs:boolean | Boolean flag that Controls whether the aggregate (when ready) will be sent synchronously or not. On ServiceMix 3.x, this can have an effect upon the flow and transaction semantics. The default value is `false`.
timeout | xs:long | The maximum amount of time (in milliseconds) that can elapse between messages for a single aggregate. The default value is `0` which means that the timeout is not used at all.

Element | Type | Description
--- | --- | ---
closedAggregatesStoreFactory | <spring:bean/> | Access the currently configured {@link StoreFactory} for storing closed aggregations
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The exchange target that will be used to send the aggregate to.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: static-recipient-list

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
reportErrors | xs:boolean | Indicates if faults and errors from recipients should be sent back to the consumer. In such a case, only the first fault or error received will be reported. Note that if the consumer is synchronous, it will be blocked until all recipients successfully acked the exchange, or a fault or error is reported, and the exchange will be kept in the store for recovery.
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
recipients | (exchange-target)* | A list of recipients that will each receive a copy of the input message.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: static-routing-slip

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
targets | (exchange-target)* | List of target endpoints used in the RoutingSlip
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: switch-predicate

Attribute | Type | Description
--- | --- | ---
fromExchange | xs:boolean | Boolean flag indicating that the value is retrieved from the exchange properties.
on | xs:boolean | Default value of this predicate
propertyName | xs:string | The name of the property to retrieve

Element | Type | Description
--- | --- | ---
propertyResource | <spring:bean/> | A spring resource to load a set of properties from.

## Element: wire-tap

Attribute | Type | Description
--- | --- | ---
copyProperties | xs:boolean | If copyProperties is `true`, properties on the in message will be copied to the out / fault message before it is sent.
endpoint | xs:string | Get the endpoint implementation.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
service | xs:QName | Get the service qualified name of the endpoint.

Element | Type | Description
--- | --- | ---
faultListener | exchange-target | The listener destination for fault messages
inListener | exchange-target | The listener destination for in messages
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
outListener | exchange-target | The listener destination for out messages
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The main target destination which will receive the exchange
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.

## Element: xpath-predicate

Attribute | Type | Description
--- | --- | ---
XPath | xs:string | The xpath expression used to evaluate the predicate.
useMessageContent | xs:boolean | Ensure re-readability of the content if the expression also needs to access the content.
xpath | xs:string |

Element | Type | Description
--- | --- | ---
factory | <spring:bean/> | The XPath factory. If no factory is explicitely configured, a defaut one will be created using `XPathFactory.newInstance()`.
functionResolver | <spring:bean/> | The function resolver.
namespaceContext | namespace-context | The namespace context to use when evaluating the xpath expression
transformer | <spring:bean/> |
variableResolver | <spring:bean/> | The variable resolver. The default one will enable the use of properties on the message, exchange, as well as making system properties and environment properties available.

## Element: xpath-splitter

Attribute | Type | Description
--- | --- | ---
endpoint | xs:string | Get the endpoint implementation.
forwardAttachments | xs:boolean | Indicates if incoming attachments should be forwarded with the new exchanges.
forwardProperties | xs:boolean | Indicates if properties on the incoming message should be forwarded.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
reportErrors | xs:boolean | Indicates if faults and errors from splitted parts should be sent back to the consumer. In such a case, only the first fault or error received will be reported. Note that if the consumer is synchronous, it will be blocked until all parts have been successfully acked, or a fault or error is reported, and the exchange will be kept in the store for recovery.
service | xs:QName | Get the service qualified name of the endpoint.
synchronous | xs:boolean | Specifies wether exchanges for all parts are sent synchronously or not.
xpath | xs:string | The xpath expression used to split the input message.

Element | Type | Description
--- | --- | ---
factory | <spring:bean/> | The XPath factory. If no factory is explicitely configured, a defaut one will be created using `XPathFactory.newInstance()`.
functionResolver | <spring:bean/> | The function resolver.
lockManager | <spring:bean/> | The lock manager to use for this endpoint. If none is explicitely specified a default implementation will be provided.
namespaceContext | namespace-context | The namespace context to use when evaluating the xpath expression
store | <spring:bean/> | Configure the store to use. If none is explicitely configured, the storeFactory will be used to create one.
storeFactory | <spring:bean/> | The store factory to use when creating a store. If no factory is explicitely defined, an in-memory only factory will be created.
target | exchange-target | The address of the target endpoint.
timerManager | <spring:bean/> | The timer manager to use for this endpoint. If none is explicitely configured, a default implementation will be provided.
variableResolver | <spring:bean/> | The variable resolver. The default one will enable the use of properties on the message, exchange, as well as making system properties and environment properties available.
wsdlExchangeTarget | exchange-target | An exchange target pointing to a JBI endpoint that will be used to load the WSDL describing this endpoint. This can be used when the endpoint proxies another endpoint so that the same WSDL definition will be exposed."
wsdlResource | <spring:bean/> | When specified, this spring resource will be used to load the WSDL that will be exposed as a description for this endpoint. This property can be used to explicitely define the WSDL to be exposed by this endpoint. This property takes precedence over the wsdlExchangeTarget property.