org.mule.routing.inbound
Class CorrelationEventResequencer

java.lang.Object
  extended by org.mule.routing.AbstractRouter
      extended by org.mule.routing.inbound.SelectiveConsumer
          extended by org.mule.routing.inbound.AbstractEventAggregator
              extended by org.mule.routing.inbound.CorrelationEventResequencer
All Implemented Interfaces:
MuleContextAware, Disposable, Initialisable, InboundRouter, Router

public class CorrelationEventResequencer
extends AbstractEventAggregator

CorrelationEventResequencer is used to resequence events according to their dispatch sequence in the correlation group. When the MessageSplitter router splits an event it assigns a correlation sequence to the individual message parts so that another router such as the CorrelationEventResequencer can receive the parts and reorder or merge them.


Field Summary
protected  Comparator eventComparator
           
 
Fields inherited from class org.mule.routing.inbound.AbstractEventAggregator
eventCorrelator
 
Fields inherited from class org.mule.routing.inbound.SelectiveConsumer
logger
 
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
CorrelationEventResequencer()
           
 
Method Summary
protected  EventCorrelatorCallback getCorrelatorCallback()
           
 Comparator getEventComparator()
           
 void initialise()
          Method used to perform any initialisation work.
 MuleEvent[] process(MuleEvent event)
          A received MuleEvent is passed to this method for processing.
 void setEventComparator(Comparator eventComparator)
           
 
Methods inherited from class org.mule.routing.inbound.AbstractEventAggregator
getTimeout, isFailOnTimeout, setFailOnTimeout, setTimeout
 
Methods inherited from class org.mule.routing.inbound.SelectiveConsumer
getFilter, getMessageInfoMapping, isMatch, isTransformFirst, setFilter, setMessageInfoMapping, setTransformFirst
 
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

eventComparator

protected Comparator eventComparator
Constructor Detail

CorrelationEventResequencer

public CorrelationEventResequencer()
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 AbstractEventAggregator
Throws:
InitialisationException - if a fatal error occurs causing the Mule instance to shutdown
RecoverableException - if an error occurs that can be recovered from

getEventComparator

public Comparator getEventComparator()

setEventComparator

public void setEventComparator(Comparator eventComparator)

getCorrelatorCallback

protected EventCorrelatorCallback getCorrelatorCallback()
Specified by:
getCorrelatorCallback in class AbstractEventAggregator

process

public MuleEvent[] process(MuleEvent event)
                    throws MessagingException
Description copied from interface: InboundRouter
A received MuleEvent is passed to this method for processing. The router can control processing by either 1. passing back a null to indicate that the router has either discarded the event of the event has been stored for further processing. A reaosn for storing the event might be that other events in it's correlation group are expected to be received. 2. Pass back an array of one or more events to be processed by the service. Often 1 event is returned, i.e. in the case of event aggregation. The router may return an array of events if a set of events have been resequenced or multiple events have been generated from a single event.

Specified by:
process in interface InboundRouter
Overrides:
process in class AbstractEventAggregator
Parameters:
event - the event received by the inbound endpoint before it is passed to the service
Returns:
null to indicate the event has been stored/destroyed or an array of events to be processed by the service
Throws:
MessagingException - if an error occurs during processing of the event


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