org.mule.routing.outbound
Class AbstractMessageSplitter
java.lang.Object
org.mule.routing.AbstractRouter
org.mule.routing.outbound.AbstractOutboundRouter
org.mule.routing.outbound.FilteringOutboundRouter
org.mule.routing.outbound.AbstractMessageSplitter
- All Implemented Interfaces:
- MuleContextAware, Disposable, Initialisable, OutboundRouter, Router
- Direct Known Subclasses:
- AbstractRoundRobinMessageSplitter
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.
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractMessageSplitter
public AbstractMessageSplitter()
route
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
- Overrides:
route
in class FilteringOutboundRouter
- Parameters:
message
- the message to send via one or more endpoints on this routersession
- the session used to actually send the event
- Returns:
- a result message if any from the invocation. If the synchronous flag
is false a null result will always be returned.
- Throws:
RoutingException
- See Also:
FilteringOutboundRouter
,
ExceptionBasedRouter
,
MulticastingRouter
getMessageParts
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.
- Parameters:
message
- the current message being processedendpoints
- A list of OutboundEndpoint
that will be used to dispatch each of the parts
- Returns:
- 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.