Debug

Spring Boot auto-configuration for the Camel Debugger.

This starter enables the Camel Debugger in your Spring Boot application, allowing you to set breakpoints and step through Camel routes during development. The debugger integrates with IDEs and tooling through JMX.

Maven coordinates

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-debug-starter</artifactId>
</dependency>

Spring Boot Auto-Configuration

The starter supports 15 options, which are listed below.

Name Description Default Type

camel.debug.body-include-files

Whether to include the message body of file based messages. The overhead is that the file content has to be read from the file.

true

Boolean

camel.debug.body-include-streams

Whether to include the message body of stream based messages. If enabled then beware the stream may not be re-readable later. See more about Stream Caching.

false

Boolean

camel.debug.body-max-chars

To limit the message body to a maximum size in the traced message. Use 0 or negative value to use unlimited size.

Integer

camel.debug.breakpoints

Allows to pre-configure breakpoints (node ids) to use with debugger on startup. Multiple ids can be separated by comma. Use special value all_routes to add a breakpoint for the first node for every route, in other words this makes it easy to debug from the beginning of every route without knowing the exact node ids.

String

camel.debug.enabled

Enables Debugger in your Camel application.

true

Boolean

camel.debug.fallback-timeout

Fallback Timeout in seconds (300 seconds as default) when block the message processing in Camel. A timeout used for waiting for a message to arrive at a given breakpoint.

300

Long

camel.debug.include-exception

Trace messages to include exception if the message failed

true

Boolean

camel.debug.include-exchange-properties

Whether to include the exchange properties in the traced message

true

Boolean

camel.debug.include-exchange-variables

Whether to include the exchange variables in the traced message

true

Boolean

camel.debug.jmx-connector-enabled

Whether to create JMX connector that allows tooling to control the Camel debugger. This is what the IDEA and VSCode tooling is using.

true

Boolean

camel.debug.jmx-connector-port

Port number to expose a JMX RMI connector for tooling that needs to control the debugger.

1099

Integer

camel.debug.logging-level

The debugger logging level to use when logging activity.

info

LoggingLevel

camel.debug.single-step-include-start-end

In single step mode, then when the exchange is created and completed, then simulate a breakpoint at start and end, that allows to suspend and watch the incoming/complete exchange at the route (you can see message body as response, failed exception etc).

false

Boolean

camel.debug.standby

To set the debugger in standby mode, where the debugger will be installed by not automatic enabled. The debugger can then later be enabled explicit from Java, JMX or tooling.

false

Boolean

camel.debug.wait-for-attach

Whether the debugger should suspend on startup, and wait for a remote debugger to attach. This is what the IDEA and VSCode tooling is using.

false

Boolean