Debugger has been edited by willem jiang (May 24, 2008).

Change summary:

Updated the debuger option with the latest trunk code

(View changes)

Content:

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...

// lets run the camel route in debug mode
main = new Main();
main.enableDebugging();
main.setApplicationContextUri("org/apache/camel/spring/debug/applicationContext.xml");
main.start();

// now lets test we have a debugger available
debugger = main.getDebugger();

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

Reply via email to