org.mule.routing.outbound
Class FilteringOutboundRouter

java.lang.Object
  extended by org.mule.routing.AbstractRouter
      extended by org.mule.routing.outbound.AbstractOutboundRouter
          extended by org.mule.routing.outbound.FilteringOutboundRouter
All Implemented Interfaces:
MuleContextAware, Disposable, Initialisable, OutboundRouter, Router
Direct Known Subclasses:
AbstractMessageSplitter, AbstractRecipientList, ChainingRouter, EndpointSelector, ExceptionBasedRouter, MessageChunkingRouter, MulticastingRouter, OutboundPassThroughRouter, SxcFilteringOutboundRouter, TemplateEndpointRouter

public class FilteringOutboundRouter
extends AbstractOutboundRouter

FilteringRouter is a router that accepts events based on a filter set.


Field Summary
protected  ExpressionManager expressionManager
           
 
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
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
FilteringOutboundRouter()
           
 
Method Summary
 void addEndpoint(OutboundEndpoint endpoint)
          Adds an endpoint to this router
 OutboundEndpoint getEndpoint(int index, MuleMessage message)
          Will Return the endpont at the given index and will resolve any template tags on the Endpoint URI if necessary
 Filter getFilter()
           
 List getTransformers()
           
 void initialise()
          Method used to perform any initialisation work.
 boolean isMatch(MuleMessage message)
          Determines if the event should be processed by this router.
 boolean isRequiresNewMessage()
          Determines is this router requires a new message copy.
 boolean isUseTemplates()
           
 MuleMessage route(MuleMessage message, MuleSession session)
          This method is responsible for routing the Message via the MuleSession.
 void setFilter(Filter filter)
           
 void setTransformers(List transformers)
           
 void setUseTemplates(boolean useTemplates)
           
 
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
dispose
 

Field Detail

expressionManager

protected ExpressionManager expressionManager
Constructor Detail

FilteringOutboundRouter

public FilteringOutboundRouter()
Method Detail

initialise

public void initialise()
                throws InitialisationException
Description copied from interface: Initialisable
Method used to perform any initialisation work. If a fatal error occurs during initialisation an InitialisationException should be thrown, causing the Mule instance to shutdown. If the error is recoverable, say by retrying to connect, a RecoverableException should be thrown. There is no guarantee that by throwing a Recoverable exception that the Mule instance will not shut down.

Specified by:
initialise in interface Initialisable
Overrides:
initialise in class AbstractRouter
Throws:
InitialisationException - if a fatal error occurs causing the Mule instance to shutdown
RecoverableException - if an error occurs that can be recovered from

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.

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

getFilter

public Filter getFilter()

setFilter

public void setFilter(Filter filter)

isMatch

public boolean isMatch(MuleMessage message)
                throws RoutingException
Description copied from interface: OutboundRouter
Determines if the event should be processed by this router. Routers can be selectively invoked by configuring a filter on them. Usually the filter is applied to the message when calling this method. All core Mule outbound routers extend the FilteringOutboundRouter router that handles this method automatically.

Parameters:
message - the current message to evaluate
Returns:
true if the event should be processed by this router
Throws:
RoutingException
See Also:
SelectiveConsumer

getTransformers

public List getTransformers()

setTransformers

public void setTransformers(List transformers)

addEndpoint

public void addEndpoint(OutboundEndpoint endpoint)
Description copied from interface: OutboundRouter
Adds an endpoint to this router

Specified by:
addEndpoint in interface OutboundRouter
Overrides:
addEndpoint in class AbstractOutboundRouter
Parameters:
endpoint - the endpoint to add to the router

getEndpoint

public OutboundEndpoint getEndpoint(int index,
                                    MuleMessage message)
                             throws CouldNotRouteOutboundMessageException
Will Return the endpont at the given index and will resolve any template tags on the Endpoint URI if necessary

Parameters:
index - the index of the endpoint to get
message - the current message. This is required if template matching is being used
Returns:
the endpoint at the index, with any template tags resolved
Throws:
CouldNotRouteOutboundMessageException - if the template causs the endpoint to become illegal or malformed

isUseTemplates

public boolean isUseTemplates()

setUseTemplates

public void setUseTemplates(boolean useTemplates)

isRequiresNewMessage

public boolean isRequiresNewMessage()
Description copied from interface: OutboundRouter
Determines is this router requires a new message copy.

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


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