org.apache.camel.component.seda
Class SedaConsumer

java.lang.Object
  extended by org.apache.camel.impl.ServiceSupport
      extended by org.apache.camel.component.seda.SedaConsumer
All Implemented Interfaces:
Runnable, Consumer, Service, ShutdownableService, ShutdownAware

public class SedaConsumer
extends ServiceSupport
implements Consumer, Runnable, ShutdownAware

A Consumer for the SEDA component.

Version:
$Revision: 997593 $

Constructor Summary
SedaConsumer(SedaEndpoint endpoint, Processor processor)
           
 
Method Summary
 boolean deferShutdown(ShutdownRunningTask shutdownRunningTask)
          To defer shutdown during first phase of shutdown.
protected  void doStart()
           
protected  void doStop()
           
 Endpoint getEndpoint()
          Gets the endpoint this Consumer consumes from.
 ExceptionHandler getExceptionHandler()
           
 int getPendingExchangesSize()
          Gets the number of pending exchanges.
 Processor getProcessor()
           
 void run()
           
protected  void sendToConsumers(Exchange exchange)
          Send the given Exchange to the consumer(s).
 void setExceptionHandler(ExceptionHandler exceptionHandler)
           
 String toString()
           
 
Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, removeChildService, resume, shutdown, start, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.camel.Service
start, stop
 

Constructor Detail

SedaConsumer

public SedaConsumer(SedaEndpoint endpoint,
                    Processor processor)
Method Detail

toString

public String toString()
Overrides:
toString in class Object

getEndpoint

public Endpoint getEndpoint()
Description copied from interface: Consumer
Gets the endpoint this Consumer consumes from.

Specified by:
getEndpoint in interface Consumer
Returns:
the endpoint

getExceptionHandler

public ExceptionHandler getExceptionHandler()

setExceptionHandler

public void setExceptionHandler(ExceptionHandler exceptionHandler)

getProcessor

public Processor getProcessor()

deferShutdown

public boolean deferShutdown(ShutdownRunningTask shutdownRunningTask)
Description copied from interface: ShutdownAware
To defer shutdown during first phase of shutdown. This allows any pending exchanges to be completed and therefore ensure a graceful shutdown without loosing messages. At the very end when there are no more inflight and pending messages the consumer could then safely be shutdown.

This is needed by SedaConsumer.

Specified by:
deferShutdown in interface ShutdownAware
Parameters:
shutdownRunningTask - the configured option for how to act when shutting down running tasks.
Returns:
true to defer shutdown to very last.

getPendingExchangesSize

public int getPendingExchangesSize()
Description copied from interface: ShutdownAware
Gets the number of pending exchanges.

Some consumers has internal queues with Exchange which are pending. For example the SedaConsumer.

Return zero to indicate no pending exchanges and therefore ready to shutdown.

Specified by:
getPendingExchangesSize in interface ShutdownAware
Returns:
number of pending exchanges

run

public void run()
Specified by:
run in interface Runnable

sendToConsumers

protected void sendToConsumers(Exchange exchange)
                        throws Exception
Send the given Exchange to the consumer(s).

If multiple consumers then they will each receive a copy of the Exchange. A multicast processor will send the exchange in parallel to the multiple consumers.

If there is only a single consumer then its dispatched directly to it using same thread.

Parameters:
exchange - the exchange
Throws:
Exception - can be thrown if processing of the exchange failed

doStart

protected void doStart()
                throws Exception
Specified by:
doStart in class ServiceSupport
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Specified by:
doStop in class ServiceSupport
Throws:
Exception


Apache CAMEL