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, SuspendableService

public class SedaConsumer
extends ServiceSupport
implements Consumer, Runnable, ShutdownAware, SuspendableService

A Consumer for the SEDA component.

In this implementation there is a little slack period when you suspend/stop the consumer, by which the consumer may pickup a newly arrived messages and process it. That period is up till 1 second.

Version:

Constructor Summary
SedaConsumer(SedaEndpoint endpoint, Processor processor)
           
 
Method Summary
 boolean deferShutdown(ShutdownRunningTask shutdownRunningTask)
          To defer shutdown during first phase of shutdown.
protected  void doResume()
          Implementations override this method to support customized suspend/resume.
protected  void doRun()
           
protected  void doShutdown()
          Implementations override this method to perform customized shutdown
protected  void doStart()
           
protected  void doStop()
           
protected  void doSuspend()
          Implementations override this method to support customized suspend/resume.
 Endpoint getEndpoint()
          Gets the endpoint this Consumer consumes from.
 ExceptionHandler getExceptionHandler()
           
 int getPendingExchangesSize()
          Gets the number of pending exchanges.
 Processor getProcessor()
           
 boolean isRunAllowed()
          Helper methods so the service knows if it should keep running.
 void prepareShutdown()
          Prepares the consumer for shutdown.
 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, getStatus, getVersion, 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.SuspendableService
isSuspended, resume, suspend
 
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

prepareShutdown

public void prepareShutdown()
Description copied from interface: ShutdownAware
Prepares the consumer for shutdown.

For example by graceful stopping any threads or the likes.

Specified by:
prepareShutdown in interface ShutdownAware

isRunAllowed

public boolean isRunAllowed()
Description copied from class: ServiceSupport
Helper methods so the service knows if it should keep running. Returns false if the service is being stopped or is stopped.

Overrides:
isRunAllowed in class ServiceSupport
Returns:
true if the service should continue to run.

run

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

doRun

protected void doRun()

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

doSuspend

protected void doSuspend()
                  throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized suspend/resume.

Overrides:
doSuspend in class ServiceSupport
Throws:
Exception

doResume

protected void doResume()
                 throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized suspend/resume.

Overrides:
doResume in class ServiceSupport
Throws:
Exception

doStop

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

doShutdown

protected void doShutdown()
                   throws Exception
Description copied from class: ServiceSupport
Implementations override this method to perform customized shutdown

Overrides:
doShutdown in class ServiceSupport
Throws:
Exception


Apache CAMEL