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:
- UMOOutboundRouter, UMORouter
- Direct Known Subclasses:
- FilteringListMessageSplitter, FilteringXmlMessageSplitter
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.AbstractOutboundRouter |
dispatch, getEnableCorrelation, getEndpoints, getPropertyExtractor, getReplyTo, getTransactionConfig, isDynamicEndpoints, removeEndpoint, send, setEnableCorrelation, setEnableCorrelationAsString, setEndpoints, setMessageProperties, setPropertyExtractor, setPropertyExtractorAsString, setReplyTo, setTransactionConfig |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
multimatch
protected boolean multimatch
honorSynchronicity
protected boolean honorSynchronicity
AbstractMessageSplitter
public AbstractMessageSplitter()
route
public UMOMessage route(UMOMessage message,
UMOSession session,
boolean synchronous)
throws RoutingException
- Description copied from interface:
UMOOutboundRouter
- This method is responsible for routing the Message via the Session. 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 UMOOutboundRouter
- 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 eventsynchronous
- whether the invocation process should be synchronous or not
- 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
initialise
protected void initialise(UMOMessage message)
- This method can be implemented to split the message up before
getMessagePart(UMOMessage, UMOEndpoint)
method is called.
- Parameters:
message
- the message being routed
cleanup
protected void cleanup()
- This method is called after all parts of the original message have been processed;
typically this is the case after
getMessagePart(UMOMessage, UMOEndpoint)
returned null
.
isHonorSynchronicity
public boolean isHonorSynchronicity()
setHonorSynchronicity
public void setHonorSynchronicity(boolean honorSynchronicity)
- Sets the flag indicating whether the splitter honurs endpoint settings
- Parameters:
honorSynchronicity
- flag setting
getMessagePart
protected abstract UMOMessage getMessagePart(UMOMessage message,
UMOEndpoint endpoint)
- Retrieves a specific message part for the given endpoint. the message will
then be routed via the provider. NOTE:Implementations
must provide proper synchronization for shared state (payload, properties,
etc.)
- Parameters:
message
- the current message being processedendpoint
- the endpoint that will be used to route the resulting message
part
- Returns:
- the message part to dispatch
Copyright © 2003-2008 MuleSource, Inc.. All Rights Reserved.