You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Debugger

Camel supports a debugger framework so that tooling can be developed to easily monitor Camel routes, trace messages and set breakpoints at points in a route etc.

The Debugger is an InterceptStrategy which can be applied to a DefaultCamelContext or SpringCamelContext to ensure that there is a DebugInterceptor created for every node in the DSL.

You can grab the debugger from the CamelContext via the Debugger.getInstance() method or via the Main.getDebugger() method - which returns null if it is not enabled.

To enable debugging from the main run

java org.apache.camel.spring.Main -x

or

java org.apache.camel.spring.Main -debug

and the debugger will be active.

Programmatically using the debugger

You can use the Spring org.apache.camel.spring.Main class directly to invoke your Camel routes using a spring XML file using debug as the following test case...

Error formatting macro: snippet: java.lang.NullPointerException

About the Debugger

The Debugger has access to every single DebugInterceptor for each node in the Camel EIP route. You can look up the individual interceptor by the Node ID where you can access

  • the Breakpoint object
  • the list of Exchanges sent to this node
  • the Predicate used to determine if messages are logged to the list

Accessing the Route Definitions

You can easily access all of the available route definitions from the Main instance via the getRouteDefinitions() method.

List<RouteType> routes = main.getRouteDefinitions();

you can then navigate the route and see its inputs and outputs etc

See Also

See Tracer

  • No labels