org.apache.camel.spi
Interface InterceptStrategy

All Known Implementing Classes:
Debug, Delayer, HandleFault, InstrumentationInterceptStrategy, StreamCaching, Tracer

public interface InterceptStrategy

The purpose of this interface is to allow an implementation to wrap processors in a route with interceptors. For example, a possible usecase is to gather performance statistics at the processor's level.

Its strongly adviced to use an AsyncProcessor as the returned wrapped Processor which ensures the interceptor works well with the asynchronous routing engine. You can use the DelegateAsyncProcessor to easily return an AsyncProcessor and override the AsyncProcessor.process(org.apache.camel.Exchange, org.apache.camel.AsyncCallback) to implement your interceptor logic. And just invoke the super method to continue routing.

Version:
$Revision: 19887 $

Method Summary
 Processor wrapProcessorInInterceptors(CamelContext context, ProcessorDefinition<?> definition, Processor target, Processor nextTarget)
          This method is invoked by ProcessorDefinition.wrapProcessor(RouteContext, Processor) to give the implementor an opportunity to wrap the target processor in a route.
 

Method Detail

wrapProcessorInInterceptors

Processor wrapProcessorInInterceptors(CamelContext context,
                                      ProcessorDefinition<?> definition,
                                      Processor target,
                                      Processor nextTarget)
                                      throws Exception
This method is invoked by ProcessorDefinition.wrapProcessor(RouteContext, Processor) to give the implementor an opportunity to wrap the target processor in a route.

Important: See the class javadoc for advice on letting interceptor be compatible with the asynchronous routing engine.

Parameters:
context - Camel context
definition - the model this interceptor represents
target - the processor to be wrapped
nextTarget - the next processor to be routed to
Returns:
processor wrapped with an interceptor or not wrapped.
Throws:
Exception - can be thrown


Apache CAMEL