Class AbstractMessageSplitter

  extended by org.mule.routing.AbstractRouter
      extended by org.mule.routing.outbound.AbstractOutboundRouter
          extended by org.mule.routing.outbound.FilteringOutboundRouter
              extended by org.mule.routing.outbound.AbstractMessageSplitter
All Implemented Interfaces:
MuleContextAware, Disposable, Initialisable, OutboundRouter, Router
Direct Known Subclasses:

public abstract class AbstractMessageSplitter
extends FilteringOutboundRouter

AbstractMessageSplitter is an outbound Message Splitter used to split the contents of a received message into sub parts that can be processed by other components. Each Part is fired as a separate event to each endpoint on the router. The endpoints can have filters on them to receive only certain message parts.

Field Summary
Fields inherited from class org.mule.routing.outbound.FilteringOutboundRouter
Fields inherited from class org.mule.routing.outbound.AbstractOutboundRouter
ENABLE_CORRELATION_ALWAYS, ENABLE_CORRELATION_IF_NOT_SET, ENABLE_CORRELATION_NEVER, enableCorrelation, endpoints, logger, messageInfoMapping, replyTo, resultsHandler, transactionConfig
Fields inherited from class org.mule.routing.AbstractRouter
Fields inherited from interface org.mule.api.lifecycle.Initialisable
Fields inherited from interface org.mule.api.lifecycle.Disposable
Constructor Summary
Method Summary
protected abstract  SplitMessage getMessageParts(MuleMessage message, List endpoints)
          Implementing classes should create a SplitMessage instance and for each part can associate an endpoint.
 MuleMessage route(MuleMessage message, MuleSession session)
          This method is responsible for routing the Message via the MuleSession.
Methods inherited from class org.mule.routing.outbound.FilteringOutboundRouter
addEndpoint, getEndpoint, getFilter, getTransformers, initialise, isMatch, isRequiresNewMessage, isUseTemplates, setFilter, setTransformers, setUseTemplates
Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter
createTransactionTemplate, dispatch, getEnableCorrelation, getEndpoint, getEndpoints, getMessageInfoMapping, getReplyTo, getResultsHandler, getTransactionConfig, isDynamicEndpoints, removeEndpoint, send, setEnableCorrelation, setEnableCorrelationAsString, setEndpoints, setMessageInfoMapping, setMessageProperties, setReplyTo, setResultsHandler, setTransactionConfig
Methods inherited from class org.mule.routing.AbstractRouter
dispose, getMuleContext, getRouterStatistics, setMuleContext, setRouterStatistics
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.mule.api.routing.Router
getRouterStatistics, setRouterStatistics
Methods inherited from interface org.mule.api.lifecycle.Disposable

Constructor Detail


public AbstractMessageSplitter()
Method Detail


public MuleMessage route(MuleMessage message,
                         MuleSession session)
                  throws RoutingException
Description copied from interface: OutboundRouter
This method is responsible for routing the Message via the MuleSession. The logic for this method will change for each type of router depending on expected behaviour. For example, a MulticastingRouter might just iterate through the list of assoaciated endpoints sending the message. Another type of router such as the ExceptionBasedRouter will hit the first endpoint, if it fails try the second, and so on. Most router implementations will extends the FilteringOutboundRouter which implements all the common logic need for a router.

Specified by:
route in interface OutboundRouter
route in class FilteringOutboundRouter
message - the message to send via one or more endpoints on this router
session - the session used to actually send the event
a result message if any from the invocation. If the synchronous flag is false a null result will always be returned.
See Also:
FilteringOutboundRouter, ExceptionBasedRouter, MulticastingRouter


protected abstract SplitMessage getMessageParts(MuleMessage message,
                                                List endpoints)
Implementing classes should create a SplitMessage instance and for each part can associate an endpoint. Note that No state should be stored on the router itself. The SplitMessage provides the parts and endpoint mapping info in order for the correct dispatching to occur.

If users do not want to associate a message part with an endpoint, but just dispatch parts over the endpoints in a round-robin way, they should use the AbstractRoundRobinMessageSplitter instead.

message - the current message being processed
endpoints - A list of OutboundEndpoint that will be used to dispatch each of the parts
a SplitMessage instance that contains the message parts and the endpoint to associate with the message part.
See Also:
SplitMessage, AbstractRoundRobinMessageSplitter

Copyright © 2003-2009 MuleSource, Inc.. All Rights Reserved.