Either the root element of a Mule configuration, or a "top-level" element in a Spring configuration that contains further Mule elements.
Holds any kind of documentation that accompanies this configuration file. It is intended to be "human readable" only and is not used by the system.
Allows the embedding of any Spring elements.
Allows Spring beans to be defined alongside Mule elements.
Allows Spring property placeholders to be configured directly in the Mule configuration file.
Allows to reference Spring beans alongside Mule elements.
A global property is a named string. It can be inserted in most attribute values using standard (ant-style) Spring placeholders.
Specifies defaults and general settings for the Mule instance.
Registers listeners for notifications and associates interfaces with particular events.
A placeholder for arbitrary extensions as children of the 'mule' element. Other transports and modules can extend this if they need to add global elements to the configuration (but consider the more specific elements like abstract-connector first).
A placeholder for connector elements. Connector elements allow properties to be configured across all endpoints that use the same transport. If multiple connectors are defined for the same transport, each endpoint must name which connector is being used.
Identifies the connector so that other elements can reference it.
A placeholder for agent elements. Are used to run processes as part of the server instance.
Identifies the agent in the registry.
A placeholder for global endpoint elements. Global endpoints are named templates that allow you to define an endpoint once and refer to it in several places. The same template can be used for both inbound and outbound endpoints.
Identifies the endpoint so that other elements can reference it. This name can also be referenced in the MuleClient.
A placeholder for inbound endpoint elements. Inbound endpoints receive messages from the underlying transport. The message payload is then delivered to the component for processing.
Identifies the endpoint in the registry. There is no need to set the 'name' attribute on inbound or outbound endpoints, only on global endpoints.
A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport.
Identifies the endpoint in the registry. There is not need to set the 'name' attribute on inbound or outbound endpoints, only on global endpoints.
A placeholder for message processor elements.
A message processor
An outbound endpoint
A reference to a message processor defined elsewhere.
The name of the message processor to use.
Identifies the message processor in the registry.
This can hold any kind of documentation related to the compsite message processor. It is intended to be "human readable" only and
is not used by the system.
Identifies the message processor in the registry.
Processes the nested list of message processors asynchronously using a thread pool
Optional name that will be used to name the threads used by this flow.
Processes the nest list of message processors asychronously using a thread pool
A placeholder for message source elements.
An inbound endpoint that forms part of the composite message source.
A placeholder for transformer elements. Transformers convert message payloads.
Identifies the transformer so that other elements can reference it. Required if the transformer is defined at the global level.
The class of the message generated by the transformer. This is used if transformers are auto-selected and to validate that the transformer returns the correct type. Note that if you need to specify an array type you need postfix the class name with '[]'. For example, if you want return a an Orange[], you set the return class to 'org.mule.tck.testmodels.fruit.Orange[]'.
Many transformers only accept certain classes. Such transformers are never called with inappropriate input (whatever the value of this attribute). If a transformer forms part of a chain and cannot accept the current message class, this flag controls whether the remaining part of the chain is evaluated. If true, the next transformer is called. If false the chain ends, keeping the result generated up to that point.
The mime type of the transformer's output
String encoding used for transformer output.
The name of the property. This is used inside Spring placeholders.
The value of the property. This replaces each occurence of a Spring placeholder.
A placeholder for catch-all strategy elements.
A placeholder for inbound router elements, which control how incoming messages are handled.
A placeholder for filter elements, which control which messages are handled.
Identifies the filter so that other elements can reference it. Required if the filter is defined at the global level.
If true, the output message will be sent to all routers. Otherwise, only the first matching router is used.
A placeholder for outbound router elements, which control how outgoing messages are delivered to the outbound endpoints.
A placeholder for transaction manager elements, which are used to coordinate transactions.
The default threading profile, used by components and by endpoints for dispatching and receiving if no more specific configuration is given.
The default dispatching threading profile, which modifies the default-threading-profile values and is used by endpoints for dispatching messages. This can also be configured on connectors, in which case the connector configuration is used instead of this default.
The default receiving threading profile, which modifies the default-threading-profile values and is used by endpoints for receiving messages. This can also be configured on connectors, in which case the connector configuration is used instead of this default.
The default service threading profile, which modifies the default-threading-profile and is used by services for processing messages. This can also be configured on models or services, in which case these configurations will be used instead of this default.
The default retry policy, used by connectors and endpoints. This can also be configured on connectors, in which case the connector configuration is used instead of this default.
The default period (ms) to wait for a synchronous response.
The default timeout (ms) for transactions. This can also be configured on transactions, in which case the transaction configuration is used instead of this default.
(As of Mule 2.2.2) The time in milliseconds to wait for any in-progress messages to finish processing before Mule shuts down. After this threshold has been reached, Mule starts interrupting threads, and messages can be lost. If you have a very large number of services in the same Mule instance, if you have components that take more than a couple seconds to process, or if you are using large payloads and/or slower transports, you should increase this value to allow more time for graceful shutdown. The value you specify is applied to services and separately to dispatchers, so the default value of 5000 milliseconds specifies that Mule has ten seconds to process and dispatch messages gracefully after shutdown is initiated.
Associates an event with an interface. Listeners that implement the interface will receive instances of the event.
Blocks the association of an event with a particular interface. This filters events after the association with a particular interface (and so takes precedence).
Registers a bean as a listener with the notification system. Events are dispatched by reflection - the listener will receive all events associated with any interfaces it implements. The relationship between interfaces and events is configured by the notification and disable-notification elements.
The bean that will receive notifications.
An optional string that is compared with the event resource identifier. Only events with matching identifiers will be sent. If no value is given, all events are sent.
If the notification manager is dynamic, listeners can be registered dynamically at runtime via the MuleContext, and the configured notification can be changed. Otherwise, some parts of Mule will cache notification configuration for efficiency and will not generate events for newly enabled notifications or listeners. The default value is false.
The class associated with a notification event that will be delivered to the interface. This can be used instead of the 'event' attribute to specify a custom class.
The notification event to deliver.
The interface (class name) that will receive the notification event.
The interface that will receive the notification event.
The class associated with an event that will no longer be delivered to any interface. This can be used instead of the 'event' attribute to specify a custom class.
The event you no longer want to deliver.
The interface (class name) that will no longer receive the event.
The interface that will no longer receive the event.
A placeholder for model elements. A model provides basic settings and processing for all the services it contains.
The name used to identify this model.
A staged event-driven architecture (SEDA) model has separate threads and queues for each service.
If true, this model element is an extension of a previous model element with the same name.
The container for a set of services, providing basic settings and processing for all the services it contains.
A placeholder for a queue profile, which controls how messages are queued.
A placeholder for entry point resolver set elements. These combine a group of entry point resolvers, trying them in turn until one succeeds.
An extensible set of entry point resolvers (which determine how a message is passed to a component in Java) that already contains resolvers to implement the standard logic. This is already provided by default and is only needed explicitly if it will be extended with other entry point resolvers. This element can be set on the model or component; the model value provides a default that individual component values can override.
An extensible set of entry point resolvers. These determine how a message is passed to a component in Java. Each entry point resolver is tried in turn until one succeeds in delivering the message to the component. This element can be set on the model or component; the model value provides a default that individual component values can override.
A custom entry point resolver set. This allows user-supplied code to determine how a message is passed to a component in Java. This element can be set on the model or component; the model value provides a default that individual component values can override.
Spring-style property element for custom configuration.
An implementation of the EntryPointResolverSet interface.
A placeholder for an entry point resolver element. Entry point resolvers define how payloads are delivered to Java code by choosing the method to call.
An entry point resolver for components that implement the Callable interface. This passes a MuleEventContext to the component. This element can be set on the model or component; the model value provides a default that individual component values can override. This element can also be used directly or as part of a set of resolvers; the resolvers in a set are used in turn until one is successful.
A custom entry point resolver. This allows user-supplied code to determine how a message is passed to a component in Java. This element can be set on the model or component; the model value provides a default that individual component values can override. This element can also be used directly or as part of a set of resolvers; the resolvers in a set are used in turn until one is successful.
Spring-style property element for custom configuration.
An implementation of the EntryPointResolver interface.
Whether the resolver should call void methods. By default, void methods are not considered as possible candidates for message delivery.
Uses a message property to select the component method to be called. This element can be set on the model or component; the model value provides a default that individual component values can override. This element can also be used directly or as part of a set of resolvers; the resolvers in a set are used in turn until one is successful.
The name of the message property used to select a method on the component.
Delivers the message to a named method. This element can be set on the model or component; the model value provides a default that individual component values can override. This element can also be used directly or as part of a set of resolvers; the resolvers in a set are used in turn until one is successful.
Generates a list of candidate methods from the component via reflections. This element can be set on the model or component; the model value provides a default that individual component values can override. This element can also be used directly or as part of a set of resolvers; the resolvers in a set are used in turn until one is successful.
If specified, methods in the Java Object interface are not included in the list of possible methods that can receive the message.
Explicitly excludes a named method from receiving the message.
Delivers the message to a method that takes a single array as argument. This element can be set on the model or component; the model value provides a default that individual component values can override. This element can also be used directly or as part of a set of resolvers; the resolvers in a set are used in turn until one is successful.
Calls a method without arguments (the message is not passed to the component).
If no method names are configured, attempts to discover the method to invoke based on the inbound message type.
A possible method for delivery.
The name of the method.
A placeholder for a service element. Services combine message routing with a component (typically a POJO).
The name used to identify this service.
Base support for a model-based wrapper around the POJO service (SEDA, Streaming, etc.)
This can hold any kind of documentation related to the service. It is intended to be "human readable" only and is not used by the system.
The elements within 'inbound' describe how a service receives messages.
The service component that is invoked when incoming messages are received. If this element is not present, the service simply bridges the inbound and outbound using a pass-through component.
The elements within 'outbound' describe how a service sends or dispatches messages.
The elements within 'async-reply' describe how asynchronous replies are handled.
The message info mapper used to extract key bits of the message
information, such as Message ID or Correlation ID. these
properties
are used by some routers and this mapping information tells Mule
where to get the information from in the current message.
The initial state of the service. Usually a service is started automatically ("started"), but this attribute can be used to disable initial startup ("stopped") or start the service in a paused state ("paused").
A placeholder for an exception strategy element. Exception strategies define how Mule should react to errors.
Defines when a current transaction gets committed based on the name of the exception caught. You can set a comma-separated list of wildcard patterns that will be matched against the fully qualified classname of the current exception. Patterns defined for this element will leave the current transaction (if any) untouched and allow it to be committed.
Defines when a current transaction gets rolled back based on the name of the exception caught. You can set a comma-separated list of wildcard patterns that will be matched against the fully qualified classname of the current exception. Patterns defined for this element will roll back the current transaction (if any).
Determines whether ExceptionNotifications will be fired from this strategy when an exception occurs. Default is true.
A comma-separated list of wildcard expressions that will be matched against the fully qualified classname of the current exception received by the ExceptionStrategy.
A placeholder for a retry policy element. Retry policies define how Mule should retry a failed message send/dispatch/request.
A placeholder for a retry notifier element. The RetryNotifier interface is a callback that allows actions to be performed after each retry. For example, when retrying connections, Mule will fire server notification events on success or failure.
The timeout (ms) to wait for a reply.
If the router times out before all expected events have been received, specifies whether an exception should be thrown (true) or the current events should be returned for processing (false). The default is true.
A placeholder for an async reply router element. Asynchronous replies are handled via this router.
Describes how to receive messages, deliver them to a component, and handle the results (if any).
The timeout used when taking messages from the service queue.
A user-implemented service (typically used only in testing).
Spring-style property element for custom configuration.
The class to use for the service.
A placeholder for the service threading profile element. Threading profiles define how thread pools are used by a service.
A placeholder for a flow construct element.
The name used to identify this flow construct.
Determines if the flow construct is abstract (ie a parent that will be inherited in concrete constructs).
Determines if the flow construct inherits part of its configuration from a parent construct.
Base support for a flow construct.
This can hold any kind of documentation related to the flow construct. It is intended to be "human readable" only and is not used by the system.
A flexible flow.
A flexible flow..
This can hold any kind of documentation related to the flow construct. It is intended to be "human readable" only and is not used by the system.
The source of new messages for this flow
The inbound endpoint for this flow
An outbound endpoint
The name used to identify this flow construct.
Allows a 'flow' to be referenced such that the message processing will continue in the referenced flow before returning. Message processing in the referenced 'flow' will occur within the context of the referenced flow and will therefore use it's exception strategy etc.
A simple request-response service, with no outbound router.
Defines the type of simple service.
Pass the inbound messages unaltered to the component.
Expose a JAX-WS annoted component as a web service. The CXF module is required to have this working.
Expose a JAX-RS annoted component as a web service. The Jersey module is required to have this working.
A simple request-response service, with no outbound router.
The endpoint on which messages are received.
The component that is invoked when incoming messages are received.
The address on which this simple service is listening.
The endpoint on which this simple service is listening.
A list of the transformers that will be applied (in order) to the message before it is delivered to the component.
A list of the transformers that will be applied (in order) to the synchronous response before it is returned via the transport.
The component that is invoked when incoming messages are received.
Specifies a component class. This is a shortcut that is equivalent to providing a 'prototype-object' element.
A bridge with a single inbound endpoint and a single outbound endpoint.
A bridge with a single inbound endpoint and a single outbound endpoint.
The endpoint on which messages are received.
The endpoint to which messages are sent.
The address on which this bridge is listening.
The endpoint on which this bridge is listening.
The address to which messages are sent.
The endpoint to which messages are sent.
A list of the transformers that will be applied (in order) to the message before it is delivered to the destination endpoint.
A list of the transformers that will be applied (in order) to the synchronous response (if any) of the destination endpoint.
Defines if the bridge will consume its inbound messages and dispatch its outbound ones within a transaction.
Attempt will be made to automatically select the most appropriate transaction manager (including XA): for more control, use child endpoints.
A validator with a single request-response inbound endpoint and a single outbound endpoint.
A validator with a single request-response inbound endpoint and a single outbound endpoint.
The endpoint on which messages are received.
The filter to use to validate incoming message: accepted messages are considered valid.
The endpoint to which messages are sent.
The address on which this bridge is listening.
The endpoint on which this bridge is listening.
The filter to use to validate incoming message: accepted messages are considered valid.
The address to which messages are sent.
The endpoint to which messages are sent.
An expression used to build the content of the response in case a valid message has been received.
An expression used to build the content of the response in case an invalid message has been received.
An expression used to build the content of the response in case an error occurs during the outbound dispatch.
The outbound endpoint's exchange pattern must be request-response if errorExpression is used.
A placeholder for a component element. A component is invoked when inbound messages are received by the service.
Interceptors that can be used to intercept component invocation.
A simple POJO (Plain Old Java Object) component that will be invoked by Mule when a message is received. The class or object instance to be used can be specified using a child object factory element, or via the 'class' attribute. If the 'class' attribute is used, an object factory cannot be configured as well. Using the 'class' attribute is equivilant to using the propotype object factory ('prototype-object' child element).
Entry point resolvers that are used to determine how a message is passed to a component.
Object factory used to obtain the object instance that will be used for the component implementation. The object factory is responsible for object creation and may implement different patterns, such as singleton or prototype, or look up an instance from other object containers.
A binding associates a Mule endpoint with an injected Java interface. This is like using Spring to inject a bean, but instead of calling a method on the bean, a message is sent to an endpoint.
Specifies a component class. This is a shortcut that is equivalent to providing a 'prototype-object' element.
A pooled POJO (Plain Old Java Object) component that will be invoked by Mule when a message is received. The instance can be specified via a factory or a class.
Characteristics of the object pool.
The interface to be injected. A proxy will be created that implements this interface by calling out to the endpoint.
The method on the interface that should be used. This can be omitted if the interface has a single method.
Logs the message and returns the payload as the result.
Logs the message content (or content length if it is a large message).
Throws an exception if it receives a message.
A service that will return static data as a result. The data returned can be read from a file or can be embedded directly in the XML.
Defines the data to return from the service once it has been invoked. The return data can be located in a file, which you specify using the {{file}} attribute (specify a resource on the classpath or on disk), or the return data can be embedded directly in the XML.
The location of a file to load. The file can point to a resource on the classpath or on disk.
A placeholder for transaction elements. Transactions allow a series of operations to be grouped together.
A placeholder for XA transaction elements. XA transactions allow a series of operations to be grouped together spanning different transports, such as JMS and JDBC.
A placeholder for multi-transaction elements.
Multi-transactions allow a series of operations to be grouped together spanning different
transports, e.g. JMS and JDBC, but without the overhead of XA. The trade-off is that XA
reliability guarantees aren't available, and services must be ready to handle duplicates.
This is very similar to a 1.5 PC concept. EE-only feature.
The type of action the transaction should take, one of the following:
NONE - Never participate in a transaction.
ALWAYS_BEGIN - Always start a new transaction when receiving a message. An exception will be thrown if a transaction already exists.
BEGIN_OR_JOIN - If a transaction is already in progress when a message is received, join the transaction if possible. Otherwise, start a new transaction.
ALWAYS_JOIN - Always expects a transaction to be in progress when a message is received. If there is no transaction, an exception is thrown.
JOIN_IF_POSSIBLE - Join the current transaction if one is available. Otherwise, no transaction is created.
Timeout for the transaction (ms).
A user-defined or otherwise unsupported third-party transactions.
A class that implements the TransactionFactory interface that will be instantiated and used to generate a transaction. This attribute and the 'factory-ref' attribute are mutually exclusive; one of the two is required.
A bean that implements the TransactionFactory interface that will be used to generate a transaction. This attribute and the 'factory-class' attribute are mutually exclusive; one of the two is required.
An XA transaction.
If this is set to "true", Mule interacts with transactions begun outside of Mule. E.g. if an external transaction is active, then BEGIN_OR_JOIN wil join it, and ALWAYS_BEGIN will cause an exception to be thrown.
An optional name for the transaction manager. The default value is "transactionManager".
The WebSphere transaction manager.
The JBoss transaction manager.
The JNDI environment.
The WebLogic transaction manager.
The JRun transaction manager.
The Resin transaction manager.
Retrieves a named transaction manager factory from JNDI.
The name of the manager factory to retrieve (such as java:/TransactionManager).
A user-implemented transaction manager.
Spring-style property element for custom configuration.
The class to instantiate to create a transaction manager.
A global endpoint, which acts as a template that can be used to construct an inbound or outbound endpoint elsewhere in the configuration by referencing the global endpoint name. Each transport implements its own endpoint element, with a more friendly syntax, but this generic element can be used with any transport by supplying the correct address URI. For example, "vm://foo" describes a VM transport endpoint.
An inbound endpoint receives messages via the associated transport. As with global endpoints, each transport implements its own inbound endpoint element.
An outbound endpoint sends messages via the associated transport. As with global endpoints, each transport implements its own outbound endpoint element.
A placeholder for security filter elements, which control access to the system.
Allows developers to configure custom security filters
A reference to a global endpoint, which is used as a template to construct this endpoint. A template fixes the address (protocol, path, host, etc.), and may specify initial values for various properties, but further properties can be defined locally (as long as they do not change the address in any way).
The generic address for this endpoint. If this attribute is used, the protocol must be specified as part of the URI. Alternatively, most transports provide their own attributes for specifying the address (path, host, etc.). Note that the address attribute cannot be combined with 'ref' or with the transport-provided alternative attributes.
The timeout for a response if making a synchronous endpoint call
String encoding used for messages.
The name of the connector associated with this endpoint. This must be specified if more than one connector is defined for this transport.
A list of the transformers that will be applied (in order) to the message before it is delivered to the component.
A list of the transformers that will be applied (in order) to the synchronous response before it is returned via the transport.
Don't use the default inbound/outbound/response transformer which corresponds to this endpoint's transport, if any.
The destination address for a reply message.
The reference name of a global endpoint to use. If this EndpointRef will be associated to a message such as a Reply-To address, this endpoint ref has to be available on the remote Mule instance that reads the Reply-To address.
A filter that is defined elsewhere (at the global level, or as a Spring bean).
The name of the filter to use.
Inverts the enclosed filter. For example, if the filter would normally return true for a specific message, it will now return false, and vice versa.
Returns true only if all the enclosed filters return true.
Returns true if any of the enclosed filters returns true.
A filter that matches string messages against wildcards. It performs matches with "*", for example, "jms.events.*" would catch "jms.events.customer" and "jms.events.receipts". This filter accepts a comma-separated list of patterns, so more than one filter pattern can be matched for a given argument: "jms.events.*, jms.actions.*" will match "jms.events.system" and "jms.actions" but not "jms.queue".
A filter that can evaluate a range of expressions. It supports some base expression types such as header, payload (payload type), regex, and wildcard.
The expression evaluator to use. The expression filter supports some types such as header, payload, exception, wildcard, and regex, that are built-in filters not registered with the ExpressionEvaluatorManager. All others are registered with the ExpressionEvaluatorManager. Where XPath, bean, and ONGL are used, the expression should be a boolean expression.
The expression that will be evaluated. This should always be a boolean expression. The syntax of the expression will be determined by the expression language being used.
Must be set if the evaluator is set to custom. The custom evaluator must be registered with the ExpressionEvaluatorManager if it is to be used here.
Whether the filter should return true if the specified expression returns null.
A filter that matches string messages against a regular expression. The Java regular expression engine (java.util.regex.Pattern) is used.
The property name and optionally a value to use when matching. If the expression is just a property name, the filter will check that the property exists. Users can also use '=' and '!=' to determine a specific value for a property.
A filter that matches properties on a message. This can be very useful, as the message properties represent all the meta information about the message from the underlying transport, so for a message received over HTTP, you can check for HTTP headers and so forth. The pattern should be expressed as a key/value pair, such as "propertyName=value". If you want to compare more than one property, you can use the logic filters for And, Or, and Not expressions. By default, the comparison is case sensitive, which you can override with the 'caseSensitive' property.
Property scope to lookup the value from (default: outbound)
If false, the comparison ignores case.
A filter that matches the type of an exception.
A filter that matches the type of the payload.
The expected class used in the comparison.
A user-implemented filter.
Spring-style property element for custom configuration.
An implementation of the Filter interface.
A placeholder for interceptor stack elements.
The name used to identify this interceptor stack.
A placeholder for an interceptor element.
A reference to a stack of intereceptors defined globally.
The name of the interceptor stack to use.
The timer interceptor (ported from 1.x).
The logging interceptor (ported from 1.x).
A user-implemented interceptor.
Spring-style property element for custom configuration.
An implementation of the Interceptor interface.
A filter that provides password-based encyption.
The name of the encryption strategy to use. This should be configured using the 'password-encryption-strategy' element, inside a 'security-manager' element at the top level.
A reference to a transformer defined elsewhere.
The name of the transformer to use.
A transformer that uses the transform discovery mechanism to convert the message payload. This transformer works much better when transforming custom object types rather than Java types, because there is less chance for ambiguity.
A user-implemented transformer.
Spring-style property element for custom configuration.
An implementation of the Transformer interface.
A transformer that can add, delete or rename message properties.
Delete message properties matching a regular expression or wildcard.
Add a message property.
Rename a message property.
Add a set of message properties.
If false, a property is not added if the message already contains a property with that name.
Property scope to/from which properties are added/removed. The scope determines the lifespan of the properties.
A transformer that base64 encodes a string or byte array message.
A transformer that base64 decodes a message to give an array of bytes.
A transformer that encodes a string using XML entities.
A transformer that decodes a string containing XML entities.
A transformer that compresses a byte array using gzip.
A transformer that uncompresses a byte array using gzip.
A transformer that converts a byte array to a string of hexadecimal digits.
A transformer that converts a string of hexadecimal digits to a byte array.
A transformer that converts a byte array to an object (either deserializing or converting to a string).
A transformer that serializes all objects except strings (which are converted using getBytes()).
A transformer that gives a human-readable description of various types (useful for debugging).
A transformer that converts a byte array to an object (deserializing the object).
A transformer that converts an object to a byte array (serializing the object).
A transformer that converts a byte array to a string.
A transformer that converts a string to a byte array.
Creates and object of type @return-class and populates values of a {{java.util.Map}} as bean properties on the object.
The bean class name can also be passed in as a property on the Map (which gets removed once read). The {{MapToBean.CLASS_PROPERTY}} 'className' should be set as a fully qualified class name string.
Conversts a simple bean object to a Map. every property on the bean will become an entry in the result {{java.util.Map}}. Note that only exposed bean properties with getter and setter methods will be added to the map.
A transformer that appends a string to a string payload.
The string to append.
A transformer that encrypts a message.
A transformer that decrypts a message.
The name of the encryption strategy to use. This should be configured using the password-encryption-strategy element, inside a security-manager element at the top level.
A transformer that uses expressions to configure a simple bean object. The user can specify a bean class or factory to create and one or more expressions that are used to configure properties on the bean.
The name of the bean property
If the expression evaluates to null, whether to continue to the next expression without error.
The bean class to create
A Bean factory to use when creating the bean object. The factory must implement {{org.mule.api.object.ObjectFactory}}.
A transformer that evaluates one or more expressions on the current message. Each expression equates to a parameter in the return message. The return message for two or more expressions will be an Object[].
A list of expressions, each of which is evaluated and equates to an element in the result message. If just one 'return-argument' is configured, the result will be the evaluation of that expression rather than an object array.
If the expression evaluates to null, specifies whether to continue to the next expression without error.
If all expressions return null on this transformer, this flag will cause the source payload to be returned without modification.
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.
The expression to evaluate. The syntax of this attribute changes depending on the evaluator being used.
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.
Specifies the properties of an internal Mule queue. Internal queues are used to queue messages for each component managed by Mule.
Defines the maximum number of messages that can be queued.
Whether Mule messages are persisted to a store. Primarily, this is used for persisting queued messages to disk so that the internal state of the server is mirrored on disk in case the server fails and needs to be restarted. Default is false.
A security manager is a container for security providers. More than one security manager may be configured; each contains providers from a particular module and has that module type. This element is abstract - a security-related module or transport will provide a suitable implementation.
An empty holder that can be extended by modules that want to provide security managers. Typically it will contain elements called 'module:type-security-provider', which extend securityProviderType where "module" might be "acegi" and "type" might de "delegate", for example. It can also contain encryption strategies, which should follow a similar scheme and extend encryptionStrategyType.
The default security manager.
The default security manager (type 'mule:defaultSecurityManagerType') provides basic support for security functions. Other modules (Acegi, JAAS, PGP) provide more advanced functionality.
A custom implementation of SecurityProvider.
A custom implementation of EncryptionStrategy.
Provides secret key-based encryption using JCE.
Provides password-based encryption using JCE. Users must specify a password and optionally a salt and iteration count as well. The default algorithm is PBEWithMD5AndDES, but users can specify any valid algorithm supported by JCE.
A security provider is a source of specific security-related functionality.
An encryption strategy provides support for a specific encryption algorithm.
Spring-style property element for custom configuration.
The name of the security provider to use.
A reference to the encryption strategy (which may be a Spring bean that implements the EncryptionStrategy interface).
The password to use.
The salt to use (this helps prevent dictionary attacks).
The number of iterations to use.
The key to use. This and the 'keyFactory-ref' attribute are mutually exclusive.
The name of the key factory to use. This should implement the ObjectFactory interface and return a byte array. This and the 'key' attribute are mutually exclusive.
The threading profile to use for the service.
The maximum number of threads that will be used.
The maximum number of idle or inactive threads that can be in the pool before they are destroyed.
Determines how long an inactive thread is kept in the pool before being discarded.
When the maximum pool size or queue size is bounded, this value determines how to handle incoming tasks. Possible values are: WAIT (wait until a thread becomes available; don't use this value if the minimum number of threads is zero, in which case a thread may never become available), DISCARD (throw away the current request and return), DISCARD_OLDEST (throw away the oldest request and return), ABORT (throw a RuntimeException), and RUN (the default; the thread making the execute request runs the task itself, which helps guard against lockup).
How long to wait in milliseconds when the pool exhausted action is WAIT. If the value is negative, it will wait indefinitely.
Whether threading should be used (default is true).
Determines how many requests are queued when the pool is at maximum usage capacity and the pool exhausted action is WAIT. The buffer is used as an overflow.
Provide default exception handling for a service via an endpoint.
A user-defined exception strategy.
Spring-style property element for custom configuration.
A class that implements the ExceptionListener interface. In addition, if an 'outbound-endpoint' element is specified, it is set as an "endpoint" bean property.
An exception strategy the routes exceptions through routers
A user-defined connector.
A class that implements the Connector interface.
A placeholder for an object store that can be used by routers to maintain state.
An optionally bounded in-memory store for message IDs with periodic expiry of old entries. The bounded size is a soft limit and is only enforced periodically by the expiry process. This means that the store may temporarily exceed its maximum size between expiry runs but will eventually shrink to its configured size.
A simple object store that stores String objects by key to a text file. This store is only suitable for storing simple key value pair strings. This store is backed by an in-memory store and supports the ability to expire and apply TTL to objects in the store.
The file location (directory) where the object store will be saved. If this value is not set, Mule defaults to using 'mule.working.dir/objectstore'.
An ID for this store that can be used for logging and identification purposes.
The maximum number of entries that this store keeps around. Specify '-1' if the store is supposed to be "unbounded".
The time-to-live for each message ID, specified in seconds, or '-1' for entries that should never expire. DO NOT combine this with an unbounded store!
The interval for periodic bounded size enforcement and entry expiration, specified in seconds. Arbitrary positive values between one second and several hours or days are possible, but should be chosen carefully according to the expected message rate to prevent OutOfMemory conditions.
A placeholder for intercepting router elements.
A message processor that uses a filter to determine whether to process an event.
Used to filter events.
Identifies the processor so that other elements can reference it. Required if the processor is defined at the global level.
Events that are not accepted by the filter are sent to this (optional) named message processor.
Whether to throw an exception if a message is not accepted
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.
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.
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.
The secure hashing algorithm to use. If not set, the default is SHA-256.
The WireTap inbound router allows you to route certain messages to a different endpoint as well as to the component.
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.
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.
Holds back a group of messages and resequences them using each message's correlation sequence property.
Configures a Collection Response Router. This will return a MuleMessageCollection message type that will contain all messages received for a each correlation group.
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.
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".
Spring-style property element for custom configuration.
Fully qualified class name of the custom correlation aggregator router to be used.
The simple splitter splits incoming message into parts using the configured expression passing on each part in turn to the next message processor
The collection splitter accepts a collection of objects and splits the collection invoking the next message processor with each item in the collection in sequence.
The collection splitter accepts a collection of objects and splits the collection invoking the next message processor with each item in the collection in sequence.
The message chunk size (in bytes) that the current message will be split into. Note that this is mutually exclusive to the 'numberOfMessages' property.
Configures a custom message splitter. Mule provides an abstract implementation that has a template method that performs the message aggregation.
Spring-style property element for custom configuration.
Fully qualified class name of the custom correlation aggregator router to be used.
The condition to use to decide if the message processor can be used. Can't be used if an expression attribute has been defined on the when element.
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.
The expression to evaluate. The syntax of this attribute changes depending on the evaluator being used.
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.
A placeholder for intercepting router elements.
Sends the message to the first endpoint whose condition has been satisfied. If no conditions were satisfied, sends to the configured default endpoint if configured, or throws an exception if not configured.
Sends the same message to multiple message processors or outbound endpoints.
Sends a message to a list of message processors until one processes it successfully
Send each message received to the next message processor in the circular list of targets
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)
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.
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.
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.
The secure hashing algorithm to use. If not set, the default is SHA-256.
The WireTap inbound router allows you to route certain messages to a different endpoint as well as to the component.
Allows messages to be forwarded to the outbound routers without first being processed by a component.
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.
Holds back a group of messages and resequences them using each message's correlation sequence property.
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.
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".
Spring-style property element for custom configuration.
Fully qualified class name of the custom correlation aggregator router to be used.
Configures a Collection Response Router. This will return a MuleMessageCollection message type that will contain all messages received for a each correlation group.
Allows for custom inbound routers to be configured.
Spring-style property elements so that custom configuration can be configured on the custom router.
An implementation of InboundRouter (fully qualified Java class name)
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.
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.
Configures a Single Response Router. This will return the first message it receives on a reply endpoint and will discard the rest.
Configures a Collection Response Router. This will return a MuleMessageCollection message type that will contain all messages received for the current correlation.
The endpoint used to receive the response(s) on.
Spring-style property elements so that custom configuration can be configured on the custom router.
A fully qualified Java class name of the router to use. The router should either extend {{org.mule.routing.response.AbstractResponseRouter}} or {{org.mule.routing.response.AbstractResponseAggregator}}.
Defines where the message should be routed after the recipient of the message to which this service dispatches has finished with it.
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.
Filters the messages to be processed by this router.
@Deprecated since 2.2. Configure the filter on the endpoint instead of the router.
Filters are applied before message transformations. A transformer can be configured here to transform messages before they are filtered.
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.
A list of the transformers that will be applied to the message in order before it is delivered to the component.
Determines if placeholders with expressions can be used with the form [ ] in endpoint uri's.
This router always matches and simply sends or dispatches message via the endpoint that is configured.
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.
Sends the message through multiple endpoints using the result of the first invocation as the input for the next.
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.
Sends a message over an endpoint by selecting the first endpoint that can connect to the transport. Endpoints/recipients are extracted from the message using an expression.
Sends the same message over multiple endpoints.
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.
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.
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.
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.
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.
The Filtering List Message Splitter accepts a list of objects that is split each object being routed to different endpoints.
Splits the message based on an expression. The expression must return one or more message parts in order to be effective.
Allows you to split a single message into a number of fixed-length messages that will all be routed to the same endpoint.
The message chunk size (in bytes) that the current message will be split into. Note that this is mutually exclusive to the 'numberOfMessages' property.
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.
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.
Static list of recipients that the outgoing message is sent to. The default delimiter is ','.
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.
The delimiter to use when splitting a String list of recipients. the default is ','. This property is only used with the 'recipientsProperty'.
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.
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)
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.
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.
Allows you to configure a custom outbound router by specifying the custom router class and by using Spring properties.
Spring-style property elements so that custom configuration can be configured on the
custom router.
An implementation of OutboundRouter (fully qualified Java class name)
Does nothing with the message but simply logs (using the WARN log level) the fact that the message was not dispatched because no routing path was defined.
Spring-style property element for custom configuration.
Fully qualified class name of the custom catch-all strategy to be used.
Forwards the message to the specified endpoint if no outbound routers match.
Spring-style property element for custom configuration.
Fully qualified class name of the custom forwarding catch-all strategy to be used.
Maps the attributes of the current message to known message elements in Mule, namely Message ID and CorrrelationID.
Allows expressions to be configured to extract the message information.
Allows configuraton of a custom implementation of MessageInfoMapping.
Spring-style property element for custom configuration.
An implementation of the MessageInfoMapping interface.
Allows a lifecycle adaptor factory to be implemented, which allows an alternative custom lifecycle adaptor to be used if required instead of the default implementation that propagates the Mule lifecycle to component implementations.
Spring-style property element for custom configuration.
An implementation of the LifecycleAdapter interface.
An object factory is used to obtain object instances. The object factory is responsible for object creation and can implement different patterns, such a singleton or prototype, or lookup an instance from other object containers.
Properties to be set on the created object.
Object factory used to obtain Spring bean instances. This object factory does not create any instances but rather looks them up from Spring.
Name of Spring bean to look up.
Object factory that creates and always returns a singleton object instance.
Class name
Object factory that creates and returns a new 'prototype' object instance every time it is called.
Class name
A pooling profile is used to configure the pooling behaviour of Mule components. Each component can have its own pooling profile.
Controls the maximum number of Mule components that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted.
Controls the maximum number of Mule components that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of Mule components that may be idle at one time.
Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any components into the pool on startup), INITIALISE_ONE (will load one initial component into the pool on startup), or INITIALISE_ALL (will load all components in the pool on startup)
Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: "WHEN_EXHAUSTED_FAIL", which will throw a NoSuchElementException, "WHEN_EXHAUSTED_WAIT", which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely.
Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT.
Configure client key stores. TLS/SSL connections are made on behalf of an entity, which can be anonymous or identified by a certificate. This interface specifies how a keystore can be used to provide the certificates (and associated private keys) necessary for identification. This is also used as the trust store if no other trust store is specified and the explicitTrustStoreOnly parameter in the server trust store configuration is false. WARNING - due to restrictions in library implementations the values specified here typically apply to all connectors using this transport.
The location (which will be resolved relative to the current classpath and file system, if possible) of the keystore that contains public certificates and private keys for identification.
The password used to protect the keystore.
The type of keystore used (a Java class name).
Configures key stores. TLS/SSL connections are made on behalf of an entity, which can be anonymous or identified by a certificate. This interface specifies how a keystore can be used to provide the certificates (and associated private keys) necessary for identification.
The location (which will be resolved relative to the current classpath and file system, if possible) of the keystore that contains public certificates and private keys for identification.
The type of keystore used (a Java class name).
The password used to protect the private key.
The password used to protect the keystore.
The algorithm used by the key store.
Configures a trust store. TLS/SSL connections are made to trusted systems. The public certificates of trusted systems are stored in a keystore (called a trust store) and used to verify that the connection made to a remote system is the expected identity.
The location (which will be resolved relative to the current classpath and file system, if possible) of the keystore that contains public certificates of trusted servers.
The password used to protect the trust store.
Configures a direct trust store. TLS/SSL connections are made to trusted systems. The public certificates of trusted systems are stored in a keystore (called a trust store) and used to verify that the connection made to a remote system is the expected identity.
The algorithm used by the trust store.
Reference to a TrustManagerFactory configured as a Spring bean.
Specifies whether the key store data should not be used when a trust store is otherwise undefined.
If a server socket is constructed directly, this attribute is used to determine whether client authentication is required. This does not apply to client connections.
Configures the global Java protocol handler. WARNING - Untested.
Sets the java.protocol.handler.pkgs system property.
A type that defines a Mule-style property placeholder.
A custom xsd:NMTOKEN-like type that also allows for Ant-style property placeholders and a leading "[".
A custom xsd:string-like type that cannot be empty.
A custom xsd:NMTOKEN type that also allows for Ant-style property placeholders.
A custom xsd:int type that also allows for Ant-style property placeholders and restricts the int value to a valid port number.
A custom xsd:int type that also allows for Ant-style property placeholders.
A custom xsd:long type that also allows for Ant-style property placeholders.
A custom xsd:boolean type that also allows for Ant-style property placeholders.
A map of Mule properties.
Sets a Mule property. This is a name/value pair that can be set on components, services, etc., and which provide a generic way of configuring the system. Typically, you shouldn't need to use a generic property like this, since almost all functionality is exposed via dedicated elements. However, it can be useful in configuring obscure or overlooked options and in configuring transports from the generic endpoint elements.
The threading profile to use when a connector receives messages.
The threading profile to use when a connector dispatches messages.
Retry policy that defines how Mule should retry if a receive/request/dispatch operation fails.
Service overrides allow the connector to be further configured/customized by allowing parts of the transport implementation to be overridden, for example, the message receiver or dispatcher implementation, or the message adaptor that is used.
Whether to create multiple concurrent receivers for this connector. This property is used by transports that support transactions, specifically receivers that extend the TransactedPollingMessageReceiver, and provides better throughput.
If createMultipleTransactedReceivers is set to true, the number of concurrent receivers that will be launched.
Enables dynamic notifications for notifications fired by this connector. This allows listeners to be registered dynamically at runtime via the MuleContext, and the configured notification can be changed. This overrides the default value defined in the 'configuration' element.
Causes Mule to validate connections before use. Note that this is only a configuration hint,
transport implementations may or may not make an extra effort to validate the connection. Default is true.
Allows Spring beans to be defined as a dispatcher pool factory
Direct setting of a JNDI property.
Direct setting of JNDI properties (allows access to the full Spring map entry).
Set the complete context directly, via a bean reference.
The initial context factory to use. The value of the property should be the fully qualified class name of the factory class that will create an initial context.
The service provider to use. The value of the property should contain a URL string (such as "ldap://somehost:389").
The list of package prefixes to use when loading in URL context factories. The value of the property should be a colon-separated list of package prefixes for the class name of the factory class that will create a URL context factory.
The mime type, e.g. text/plain or application/json