org.mule.routing.outbound
Class AbstractRecipientList

java.lang.Object
  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.AbstractRecipientList
All Implemented Interfaces:
MuleContextAware, Disposable, Initialisable, OutboundRouter, Router
Direct Known Subclasses:
ExpressionRecipientList, StaticRecipientList

public abstract class AbstractRecipientList
extends FilteringOutboundRouter

AbstractRecipientList is used to dispatch a single event to multiple recipients over the same transport. The recipient endpoints can be configured statically or can be obtained from the message payload.


Field Summary
protected  Log logger
          logger used by this class
 
Fields inherited from class org.mule.routing.outbound.FilteringOutboundRouter
expressionManager
 
Fields inherited from class org.mule.routing.outbound.AbstractOutboundRouter
ENABLE_CORRELATION_ALWAYS, ENABLE_CORRELATION_IF_NOT_SET, ENABLE_CORRELATION_NEVER, enableCorrelation, endpoints, messageInfoMapping, replyTo, resultsHandler, transactionConfig
 
Fields inherited from class org.mule.routing.AbstractRouter
muleContext
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
AbstractRecipientList()
           
 
Method Summary
protected  OutboundEndpoint getRecipientEndpoint(MuleMessage message, Object recipient)
           
protected  OutboundEndpoint getRecipientEndpointFromString(MuleMessage message, String recipient)
           
protected  OutboundEndpoint getRecipientEndpointFromUri(EndpointURI uri)
           
protected abstract  List getRecipients(MuleMessage message)
           
 Boolean getSynchronous()
           
 boolean isDynamicEndpoints()
          Determines whether this router supports dynamic endpoint.
 MuleMessage route(MuleMessage message, MuleSession session)
          This method is responsible for routing the Message via the MuleSession.
 void setSynchronous(Boolean synchronous)
           
 
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, 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
dispose
 

Field Detail

logger

protected final Log logger
logger used by this class

Constructor Detail

AbstractRecipientList

public AbstractRecipientList()
Method Detail

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 router
session - 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

getRecipientEndpoint

protected OutboundEndpoint getRecipientEndpoint(MuleMessage message,
                                                Object recipient)
                                         throws RoutingException
Throws:
RoutingException

getRecipientEndpointFromUri

protected OutboundEndpoint getRecipientEndpointFromUri(EndpointURI uri)
                                                throws MuleException
Throws:
MuleException

getRecipientEndpointFromString

protected OutboundEndpoint getRecipientEndpointFromString(MuleMessage message,
                                                          String recipient)
                                                   throws MuleException
Throws:
MuleException

getSynchronous

public Boolean getSynchronous()

setSynchronous

public void setSynchronous(Boolean synchronous)

isDynamicEndpoints

public boolean isDynamicEndpoints()
Description copied from interface: OutboundRouter
Determines whether this router supports dynamic endpoint. i.e. endpoints that are not configured at design time. Endpoints might be pulled from the message or payload.

Specified by:
isDynamicEndpoints in interface OutboundRouter
Overrides:
isDynamicEndpoints in class AbstractOutboundRouter
Returns:

getRecipients

protected abstract List getRecipients(MuleMessage message)
                               throws CouldNotRouteOutboundMessageException
Throws:
CouldNotRouteOutboundMessageException


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