Either the root element of a Mule configuration, or a "top-level" element in a Spring configuration, that contains further Mule elements. This can hold any kind of documentation consistent with the overall XML format). It is intended to be "human readable" only and is not used by the system. Allow embedding of further spring documents. We support direct use of spring beans via this tag. We support direct use of property placeholders via this tag. A global property is a named string. It can be used inserted in most attribute values using the $\{...\} syntax. So the attribute value "$\{foo\}" would be replaced by the value associated with the property named "foo". Defaults and general settings for the entire Mule system. Register listeners for notifications and associate interfaces with particular events. A placeholder for arbitrary extensions as children of the mule element. Other transports and modules may 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 then each endpoint must name which connector is being used. Identifies the connector so that other elements can reference it. A placeholder for global endpoint elements. Global endpoints are named templates that allow us to define an endpoint once and refer to it in several places. Currently the same template is used for both inbound and outbound endpoints. Identifies the endpoint so that other elements can reference it. This name can also be referenced in 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 inbound endpoint in the registry, but is of relatively little use - it cannot be referred to from MuleClient, for example. For more useful aliases, use global endpoints. A placeholder for outbound endpoint elements. Outbound endpoints dispatch messages to the underlying transport. Identifies the outbound endpoint in the registry, but is of relatively little use - it cannot be referred to from MuleClient, for example. For more useful aliases, use global endpoints. 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 (which is somewhat incomplete at the moment?). 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, then 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 name of the property. This is used inside $\{...\}. The value of the property. This replaces each occurence of $\{...\}. If true, the input message will be passed through inbound routers, otherwise only the first matching router is used. A placeholder for catch-all strategy elements. A placeholder for inbound router elements. Inbound routers control how incoming messages are handled. A placeholder for filter elements. Filters are used to make decisions within the Mule framework. Identifies the filter so that other elements can reference it. Required if the filter is defined at the global level. Inverts the filter condition. 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. Outbound routers control how outgoing messages are delivered to the outbound endpoints. A placeholder for transaction manager elements. Transaction managers are used to co-ordinate 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, modifies the default-threading-profile values and is used by endpoints for dispatching if no more specific configuration is given. The default receiving threading profile, modifies the default-threading-profile values and is used by endpoints for receiving if no more specific configuration is given. The default component threading profile, modifies the default-threading-profile values and is used if no more specific configuration is given. If true then connections to endpoints will wait for a response. If true then connections to endpoints will wait for a response from the remote service. The default period (ms) to wait for a synchronous response. The default timeout for transactions, used if no more specific configuration is given. Associate an event with an interface. Listeners which implement the interface will receive instances of the event. Block the association of an event with a particular interface. This filters events after the association with a particular interface (and so takes precedence). Register 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 then programatic updates to the manager (ie via Java code) will affect all messages. Otherwise, some parts of the system may cache state for efficiency and so not generate newly enabled notifications. 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 to not deliver. The interface (class name) that will no longer receive an event. The interface that will no longer receive an 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 SEDA (Staged Event Drivern Architecture) model has separate threads and queues for each component. If true then this model element is an extension of a previous model element with the same name. The default model is a SEDA model. A placeholder for queue profile elements. A queue profile controls how messages are queued before being processed. 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 which 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 messge to the component. This element can be set on the model or component; the model value provides a default which 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 which individual component values can override. 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 (ie they choose 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 which 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 which 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. An implementation of the EntryPointResolver interface. Should the message be transformer before being delivered to the component? By default, messages are transformed. Should the resolver call void methods? By default, void methods are not considered as possible candidates for message delivery. Use 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 which 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. Deliver the message to a named method. This element can be set on the model or component; the model value provides a default which 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. Generate 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 which 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 exclude a named method from receiving the message. Deliver the message to a method which takes a single array as argument. This element can be set on the model or component; the model value provides a default which 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. Call a method without arguments (the message is not passed to the component). A possible method for delivery. The name of the method. A placeholder for a service element. Services combine message routing with a Java (typically) component. 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 consistent with the overall XML format). 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 elements within "outbound" describe how a services sends or dispatches messages. The elements within "async-reply" describe how asynchronous replies are handled. The initial state of the service. Usually a service is started automatically, but this attribute can block any initial startup ("stopped") or stop the service immediately after initial startup ("paused"). A placeholder for an exception strategy element. Exception strategies define how Mule should react to errors. Defines when a current transaction gets rolled-back depending on the name of the exception caught. Users can set a comma delimited list of wildcard patterns that wil be matched angainst the fully qualified classname of the current exception. Patterns defined for this element will leave the current transaction (if any) untouched and llow it to be committed. Defines when a current transaction gets rolled-back depending on the name of the exception caught. Users can set a comma delimited list of wildcard patterns that wil be matched angainst the fully qualified classname of the current exception. Patterns defined for this element will rollback the current transaction (if any). Determines whether ExceptionNotifications wil be fired from this strategy when an exception occurs. A comma-separate list of wildcard expressions that will be matched against the fully qualified cassname of the current exception received by the ExceptionStrategy. The timeout (ms) to wait for a reply. If the router times out before all expected events have been received should an exception be thrown or should the current events be returned for processing. The default is false. A placeholder for an async reply router element. Asynchronous replies are handled via this router. The standard SEDA service. A service describes how to receive messages, deliver them to a component, and handle the results (if any). The timeout used when taking messages from the SEDA queue. A user-implemeted service (typically used only in testing). The class to use for the service. A placeholder for component threading profile element. Threading profils define how thread pools interact with the component. A placeholder for component element. A component processes data. Typically it is a Java object. A simple 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 via a class. 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). Specify 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 via 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. This transfers a message from inbound to outbound endpoints. This name is provided for backwards compatability - it is equivalent to not specifying any component. This logs the message and returns the payload back as the result. This logs the message content (or content length if it is a large message). This will throw an exception if it receives a message. A placeholder for transaction elements. Transactions allow a series of operations to be grouped together. NONE - Never participate in a transaction; ALWAYS_BEGIN - Always start a new transaction when receiving an event. An exception will be thrown if a transaction already exists; BEGIN_OR_JOIN - If a transaction is already in progress when an event is received, join the transaction, otherwise start a new transaction; ALWAYS_JOIN - Always expects a transaction to be in progress when an event is received, if there is no transaction an exception is thrown; JOIN_IF_POSSIBLE - Will join the current transaction if one is available otherwise no transaction is created. Timeout for transaction (ms). Allow access to 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 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. Retrieve a named transaction manager factory from JNDI. The name of the manager factory to retrieve (eg java:/TransactionManager). A user-implemented transaction manager. The class to instantiate to create a transaction manager. An endpoint "template" which can be used to construct an inbound or outbound endpoint elsewhere in the configuration by referencing the 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 from the associated transport. Each transport implements its own inbound 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 outbound endpoint sends messages to the associated transport. Each transport implements its own outbound 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. A placeholder for security filter elements. Security filters can control access to the system, etc. A reference to a global endpoint. If this attribute is used then the endpoint 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 then the protocol must be specified as part of the URI. Alternatively, most transports provide alternative 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. If true the result from the component processing the incoming message will be returned as a response. If true the component will wait for a response to the outgoing message before replying to the incoming message. The timeout for the remoteSync wait (ms). 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 transformers which will be applied in order to the message before it is delivered to the component. A list of transformers which will be applied in order to the synchronous response before it is returned via the transport. 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. This allows the user to specify either a simple list of (normal) transformers or separate bracketed lists of normal and response transformers. A list of transformer elements that will be applied to the message before it is delivered to the component. Note that a list of transformers can also be specified directly (without the "transformers" element), but then it is not possible to also specify response transformers (using the "response-transformers" element). A list of transformer elements that will be applied to the response message returned from the component. A list of transformers - normal or response, depending on context. A filter that is defined elsewhere (at the global level, or as a Spring bean). The name of the filter to use. Invert the enclosed filter (so if it returns true for some message, this will return false, and vice-versa). Return true only if all the enclosed filters return true. Return true if any of the enclosed filters returns true. A filter that matches string messages against wildcards. It performs matches with "*", i.e. "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 in-built 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 exprsssion will be determined by the exprsssion langage being used. Must be set if the evaluator is set to custom. Also the custom evaluator must be registered with the ExpressionEvaluatorManager if it is to be used here. If the specified expression returns null should the filter return true or false. A filter that matches string messages against a regular expression. The Java regular expression engine (java.util.regex.Pattern) is used. The pattern to use when matching. A filter that matches properties on an event. This can be very useful as the event properties represent all the meta information about the event from the underlying transport, so for an event received over HTTP you can check for HTTP headers etc. The pattern should be expressed as a key/value pair, i.e. "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; you can set the caseSensitive property to override this. 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. An implementation of the Filter 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 that java types since there is less chance for ambiguity. A user-implemented transformer. An implementation of the Transformer interface. A transformer that can add or delete message properties. Delete a message property. Add 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. A transformer that has no effect. 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 (ie deserializing the object). A transformer that converts an object to a byte array (ie serializing the object). A transformer that converts a byte array to a string. A transformer that converts a string to a byte array. 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 evaluates one or more expressions on the current event. Each expression equates to a parameter in the return message. The return message for 2 or more expressions will be an Object[]. An optional expression means that if the expression evaluates to null, it will 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 ExpressionEvaluatrManager before thay can be used. Using the custom evaluator allows the developer to define their on in 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 wll need to be on your classpath before the evaluator can be used. The expression to evaluate. The syntax of this attribute will change 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. Users can plug in their own expression evaluators by registering them with the ExpressionEvaluatorManager. A Queue Profile is used to describe the properties of an internal Mule queue. Internal queues are used to queue events 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. This is 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. Alternatively (or in addition) it may 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 (eg Acegi, JAAS, PGP) provide more advanced functionality. Allow any implementation of UMOSecurityProvider to be used. Allow any implementation of UMOEncryptionStrategy to be used. 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 a particular security-related functionality. An encryption strategy provides support for a particular encryption algorithm. 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 itreations 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 on the component. 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. Detemines 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. This policy should, in general, not be used 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 thread making the execute request runs the task itself. This policy 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 via an endpoint. Provide default exception handling via an endpoint. A user-defined exception stratgey. A class that implements the ExceptionListener interface. In addition, if an outbound-endpoint element is specified, it is set as an "endpoint" bean property. 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 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 will default to using the {{mule.working.dir/objectstore}}. An id for this store, 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 1 second and several hours or days are possible, but should be chosen carefully according to the expected message rate to prevent OutOfMemory conditions. A Message info mapping element is used to map the attributes of the current message to known message elements in Mule; namely, Message ID, CrrelationID. This router always matches and just simple passes on the incoming message to the service component. This router is used implicitly when no inbound routers are configured. Ensures that only unique messages are received by a service. It does this by checking the unique ID of the incoming message. Note that The id used to 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. Please 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 extrating the ID from the message. For example, it would be possible to combine to headers as the id of the message to provide idempotency against: "$\{headers:foo,bar\}" or combine the message ide 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 this will default to 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 resequence them using the messages correlation sequence property. This aggregator 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. This router is used to configure 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". Configures a Collection Response Router. This will return a MuleMessageCollection message type that will contain all events received for a each correlation group. Allows for custom inbound routers to be configured. An implementation of InboundRouter (Java fully qualified class name) Configures a Single Response Router. This will return the first event 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 events received for the current correlation. Defines where the message should be routed to after the recipient of the message this service dispatches to has finished with it Filter used to filter message. Filters are applied before message transformations. A transformer canbe configured here to transform messages before they are filtered. This router always matches and simply sends or dispatches message via the endpoint that is configured. This router uses filters to determine whether the message matches a particular criteria and if so will route the message to the endpoint configured on the router The TemplateEndpointRouter allows endpoints to be altered at runtime based on properties set on the current event or fallback values set on the endpoint properties. Templated values are expressed using square braces around a property name, The Chaining router can be used to send the message through multiple endpoints using the result of the first invocation as the input for the next. The Exception Based router can be used to send a message over an endpoint by selecting the first endpoint that can connect to the transport. The Multicasting router can be used to send the same message over multiple endpoints. // TODO The Filtering List Message Splitter accepts a list of objects that is split each object being routed to different endpoints. This router allows you to split a single message into a number of fixed-length messages that will all be routed to the same endpoint. The Recipient list router can be used to send the same message to multiple endpoints over the same endpoint or to implement routing-slip behaviour where the next destination for the message is determined from message properties or the payload. // TODO // An implementation of OutboundRouter (Java fully qualified class name) This catch all strategy does nothing with the event and logs (using the _WARN_ log level) the fact that the event was not dispatched due to the fact there was no routing path defined. This catch all strategy is used to forward the event to an endpoint that is configured if no outbound routers match. Allows expressions to be configured to extract the message information. This allows configuraton of a custom implementation of MessageInfoMapping An implementation of the MessageInfoMapping interface. An implementation of the LifecycleAdapter interface. A factory which will be used by Mule to create new instances of this object Properties to be set on the created object Name of Spring bean to look upClass nameClass name A pooling profile is used to configure the pooling behaviour of Mule components. Each service sets its own pooling profile. The org.mule.config.PoolingProfile class contains all the necessary values to create a pool of component proxies. 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 (invoke Object.wait(long)) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule 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_BLOCK. A placeholder for agents. Not used in core, but common to several modules. 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). Configure 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. Configure a trust store. TLS/SSL connections are made to trusted systems - the public certificates of trusted systems are store in a keystore (called a trust store) and used to verify that the connection made to a remote system "really 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 protected the trust store. Configure the global Java protocol handler. WARNING - Untested. Set the java.protocol.handler.pkgs system property. A type that defines an Ant-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 (is there a better way?) 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 restrict 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 Set Mule properties. These are name/value pairs that can be set on components, services, etc, and which provide a generic way of configuring the system. In Mule v2 you typically shouldn't need to use generic properties like this, since almost all functionality is exposed via dedicated elements. However, they can be useful in configuring obscure or overlooked options and in configuring transports from the generic endpoint elements. Set 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. In Mule v2 you typically 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. Direct setting of a JNDI property. Direct setting of JNDI properties (this 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 (e.g. "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.