org.apache.camel.processor.interceptor
Class TraceInterceptor

java.lang.Object
  extended by org.apache.camel.support.ServiceSupport
      extended by org.apache.camel.processor.DelegateAsyncProcessor
          extended by org.apache.camel.processor.interceptor.TraceInterceptor
All Implemented Interfaces:
AsyncProcessor, DelegateProcessor, Navigate<Processor>, Processor, Service, ShutdownableService, ExchangeFormatter, StatefulService, SuspendableService

public class TraceInterceptor
extends DelegateAsyncProcessor
implements ExchangeFormatter

An interceptor for debugging and tracing routes

Version:

Field Summary
 
Fields inherited from class org.apache.camel.processor.DelegateAsyncProcessor
processor
 
Fields inherited from class org.apache.camel.support.ServiceSupport
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
 
Constructor Summary
TraceInterceptor(ProcessorDefinition<?> node, Processor target, TraceFormatter formatter, Tracer tracer)
           
 
Method Summary
protected  void doStart()
          Implementations override this method to support customized start/stop.
protected  void doStop()
          Implementations override this method to support customized start/stop.
 String format(Exchange exchange)
          Generates a string representation of the exchange
 TraceFormatter getFormatter()
           
 CamelLogProcessor getLogger()
           
 ProcessorDefinition<?> getNode()
           
 Tracer getTracer()
           
protected  void logException(Exchange exchange, Throwable throwable)
           
protected  void logExchange(Exchange exchange)
           
 boolean process(Exchange exchange, AsyncCallback callback)
          Processes the message exchange.
 void setRouteContext(RouteContext routeContext)
           
 void setTraceHandler(TraceEventHandler traceHandler)
          Deprecated. 
protected  boolean shouldLogException(Exchange exchange)
          Returns true if the given exchange should be logged when an exception was thrown
protected  boolean shouldLogExchange(Exchange exchange)
          Returns true if the given exchange should be logged in the trace list
protected  boolean shouldLogNode(ProcessorDefinition<?> node)
          Returns true if the given node should be logged in the trace list
 boolean shouldTraceOutExchanges()
          Returns whether exchanges coming out of processors should be traced
 String toString()
           
protected  void traceExchange(Exchange exchange)
           
protected  Object traceExchangeIn(Exchange exchange)
           
protected  void traceExchangeOut(Exchange exchange, Object traceState)
           
protected  void traceIntercept(InterceptDefinition intercept, TracedRouteNodes traced, Exchange exchange)
           
 
Methods inherited from class org.apache.camel.processor.DelegateAsyncProcessor
getProcessor, hasNext, next, process, processNext, setProcessor, setProcessor
 
Methods inherited from class org.apache.camel.support.ServiceSupport
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TraceInterceptor

public TraceInterceptor(ProcessorDefinition<?> node,
                        Processor target,
                        TraceFormatter formatter,
                        Tracer tracer)
Method Detail

toString

public String toString()
Overrides:
toString in class DelegateAsyncProcessor

setRouteContext

public void setRouteContext(RouteContext routeContext)

process

public boolean process(Exchange exchange,
                       AsyncCallback callback)
Description copied from interface: AsyncProcessor
Processes the message exchange. Similar to Processor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.

If there was a failure processing then the caused Exception would be set on the Exchange.

Specified by:
process in interface AsyncProcessor
Overrides:
process in class DelegateAsyncProcessor
Parameters:
exchange - the message exchange
callback - the AsyncCallback will be invoked when the processing of the exchange is completed. If the exchange is completed synchronously, then the callback is also invoked synchronously. The callback should therefore be careful of starting recursive loop.
Returns:
(doneSync) true to continue execute synchronously, false to continue being executed asynchronously
See Also:
AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback)

traceIntercept

protected void traceIntercept(InterceptDefinition intercept,
                              TracedRouteNodes traced,
                              Exchange exchange)
                       throws Exception
Throws:
Exception

format

public String format(Exchange exchange)
Description copied from interface: ExchangeFormatter
Generates a string representation of the exchange

Specified by:
format in interface ExchangeFormatter
Parameters:
exchange - the exchange
Returns:
a string representation of the exchange

getNode

public ProcessorDefinition<?> getNode()

getLogger

public CamelLogProcessor getLogger()

getFormatter

public TraceFormatter getFormatter()

getTracer

public Tracer getTracer()

logExchange

protected void logExchange(Exchange exchange)

traceExchange

protected void traceExchange(Exchange exchange)
                      throws Exception
Throws:
Exception

traceExchangeIn

protected Object traceExchangeIn(Exchange exchange)
                          throws Exception
Throws:
Exception

traceExchangeOut

protected void traceExchangeOut(Exchange exchange,
                                Object traceState)
                         throws Exception
Throws:
Exception

logException

protected void logException(Exchange exchange,
                            Throwable throwable)

shouldLogExchange

protected boolean shouldLogExchange(Exchange exchange)
Returns true if the given exchange should be logged in the trace list


shouldLogException

protected boolean shouldLogException(Exchange exchange)
Returns true if the given exchange should be logged when an exception was thrown


shouldTraceOutExchanges

public boolean shouldTraceOutExchanges()
Returns whether exchanges coming out of processors should be traced


shouldLogNode

protected boolean shouldLogNode(ProcessorDefinition<?> node)
Returns true if the given node should be logged in the trace list


doStart

protected void doStart()
                throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: See ServiceSupport.doStop() for more details.

Overrides:
doStart in class DelegateAsyncProcessor
Throws:
Exception
See Also:
ServiceSupport.doStop()

doStop

protected void doStop()
               throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: Camel will invoke this ServiceSupport.doStop() method when the service is being stopped. This method will also be invoked if the service is still in uninitialized state (eg has not been started). The method is always called to allow the service to do custom logic when the service is being stopped, such as when CamelContext is shutting down.

Overrides:
doStop in class DelegateAsyncProcessor
Throws:
Exception
See Also:
ServiceSupport.doStart()

setTraceHandler

@Deprecated
public void setTraceHandler(TraceEventHandler traceHandler)
Deprecated. 



Apache CAMEL