org.mule.routing.outbound
Class AbstractMessageSplitter

java.lang.Object
  extended by org.mule.processor.AbstractMuleObjectOwner<MessageProcessor>
      extended by org.mule.processor.AbstractMessageProcessorOwner
          extended by org.mule.routing.outbound.AbstractOutboundRouter
              extended by org.mule.routing.outbound.FilteringOutboundRouter
                  extended by org.mule.routing.outbound.AbstractMessageSplitter
All Implemented Interfaces:
AnnotatedObject, FlowConstructAware, MuleContextAware, Disposable, Initialisable, Lifecycle, Startable, Stoppable, MessageProcessor, MessageProcessorContainer, MessageRouter, Matchable, MatchableMessageProcessor, MatchableMessageRouter, OutboundRouter, RouterStatisticsRecorder, TransformingMatchable
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 targets can have filters on them to receive only certain message parts.


Field Summary
 
Fields inherited from class org.mule.routing.outbound.FilteringOutboundRouter
expressionManager
 
Fields inherited from class org.mule.routing.outbound.AbstractOutboundRouter
enableCorrelation, initialised, logger, replyTo, resultsHandler, routes, started, transactionConfig
 
Fields inherited from class org.mule.processor.AbstractMuleObjectOwner
flowConstruct, muleContext
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Startable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Stoppable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Fields inherited from interface org.mule.api.AnnotatedObject
PROPERTY_NAME
 
Constructor Summary
AbstractMessageSplitter()
           
 
Method Summary
protected abstract  SplitMessage getMessageParts(MuleMessage message, List<MessageProcessor> endpoints)
          Implementing classes should create a SplitMessage instance and for each part can associate an endpoint.
 MuleEvent route(MuleEvent event)
           
 
Methods inherited from class org.mule.routing.outbound.FilteringOutboundRouter
addRoute, getFilter, getRoute, getTransformers, initialise, isMatch, isTransformBeforeMatch, isUseTemplates, setFilter, setTransformers, setUseTemplates
 
Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter
cloneMessage, cloneMessage, createEventToRoute, dispose, getEnableCorrelation, getMuleContext, getOwnedMessageProcessors, getReplyTo, getResultsHandler, getRoute, getRouterStatistics, getRoutes, getTransactionConfig, isDynamicRoutes, process, propagateMagicProperties, removeRoute, sendRequest, sendRequestEvent, setEnableCorrelation, setEnableCorrelationAsString, setMessageProcessors, setMessageProperties, setReplyTo, setResultsHandler, setRouterStatistics, setRoutes, setTransactionConfig, start, stop
 
Methods inherited from class org.mule.processor.AbstractMessageProcessorOwner
addMessageProcessorPathElements, getAnnotation, getAnnotations, getOwnedObjects, setAnnotations
 
Methods inherited from class org.mule.processor.AbstractMuleObjectOwner
getFlowConstruct, setFlowConstruct, setMuleContext
 
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.context.MuleContextAware
setMuleContext
 
Methods inherited from interface org.mule.api.construct.FlowConstructAware
setFlowConstruct
 

Constructor Detail

AbstractMessageSplitter

public AbstractMessageSplitter()
Method Detail

route

public MuleEvent route(MuleEvent event)
                throws RoutingException
Overrides:
route in class FilteringOutboundRouter
Throws:
RoutingException

getMessageParts

protected abstract SplitMessage getMessageParts(MuleMessage message,
                                                List<MessageProcessor> 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 targets in a round-robin way, they should use the AbstractRoundRobinMessageSplitter instead.

Parameters:
message - the current message being processed
endpoints - 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-2014 MuleSoft, Inc.. All Rights Reserved.