Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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.

Field Summary

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, 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
`AbstractMessageSplitter()`

Method Summary
`protected abstract SplitMessage` | `getMessageParts(MuleMessage message, List endpoints)` Implementing classes should create a `SplitMessage` instance and for each part can associate an endpoint.
`MuleMessage` | `route(MuleMessage message, MuleSession session)` This method is responsible for routing the Message via the MuleSession.

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 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`

Constructor Detail

### AbstractMessageSplitter

    public AbstractMessageSplitter()

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`

### 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 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`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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