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

Compare with Current View Page History

« Previous Version 14 Next »

Debugger

Available as of Camel 2.6

Camel Debugger is much related to Tracer, in fact they are sisters. Debugger is a enhanced tracer with 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.

About the Debugger

The Debugger allows tooling or the likes to attach breakpoints which is being invoked when Exchanges is being routed.

Default implementation

Camel provides a default implementation org.apache.camel.impl.DefaultDebugger which you can set on the CamelContext using the setDebugger method.
Likewise you can get hold of the Debugger using the getDebugger method on CamelContext.

The org.apache.camel.spi.Debugger has methods to attach and remove breakpoints. And to suspend/resume all breakpoints etc.
You can also attach a condition to the breakpoint so it only reacts if the condition matches.

Easily debugging Camel routes from camel-test

If you are developing unit tests using the camel-test component, then the Debugger comes out of the box.

Example

In this unit test

public class DebugTest extends CamelTestSupport

We want to debug the following route
TODO: e2

Which can easily done by overriding the debugBefore method as shown
TODO: e1

Then from your Java editor just add a breakpoint inside the debugBefore method. Then fire up the unit test and wait for the Java editor to hit the breakpoint. Then you can inspect the Exchange during debugging while it advances during routing. The ProcessorDefinition and the id and shortName parameters is all information which tells you where in the route the breakpoint was hit.

See Also

  • No labels