Chapter 4. Using VS Code Debug Adapter for Apache Camel extension
The VS Code extensions for Apache Camel are listed as development support. For more information about scope of development support, see Development Support Scope of Coverage for Red Hat Build of Apache Camel.
This is the Visual Studio Code extension that adds Camel Debugger power by attaching to a running Camel route written in Java, Yaml or XML DSL.
4.1. Features of Debug Adapter
The VS Code Debug Adapter for Apache Camel extension supports the following features:
- Camel Main mode for XML only.
- The use of Camel debugger by attaching it to a running Camel route written in Java, Yaml or XML using the JMX url.
- The local use of Camel debugger by attaching it to a running Camel route written in Java, Yaml or XML using the PID.
- You can use it for a single Camel context.
- Add or remove the breakpoints.
- The conditional breakpoints with simple language.
- Inspecting the variable values on suspended breakpoints.
- Resume a single route instance and resume all route instances.
- Stepping when the route definition is in the same file.
- Allow to update variables in scope Debugger, in the message body, in a message header of type String, and an exchange property of type String
Supports the command
Run Camel Application with JBang and Debug
.This command allows a one-click start and Camel debug in simple cases. This command is available through:
- Command Palette. It requires a valid Camel file opened in the current editor.
-
Contextual menu in File explorer. It is visible to all
*.xml
,*.java
,*.yaml
and*.yml
. -
Codelens at the top of a Camel file (the heuristic for the codelens is checking that there is a from and a to or a log on
java
,xml
, andyaml
files).
Supports the command
Run Camel application with JBang
.- It requires a valid Camel file defined in Yaml DSL (.yaml|.yml) opened in editor.
- Configuration snippets for Camel debugger launch configuration
- Configuration snippets to launch a Camel application ready to accept a Camel debugger connection using JBang, or Maven with Camel maven plugin
4.2. Requirements
Following points must be considered when using the VS Code Debug Adapter for Apache Camel extension:
-
Java Runtime Environment 17 or later with
com.sun.tools.attach.VirtualMachine
(available in most JVMs such as Hotspot and OpenJDK) must be installed. The Camel instance to debug must follow these requirements:
- Camel 3.16 or later
- Have camel-debug on the classpath.
- Have JMX enabled.
For some features, The JBang must be available on a system commandline.
4.3. Installing VS Code Debug Adapter for Apache Camel
You can download the VS Code Debug Adapter for Apache Camel extension from the VS Code Extension Marketplace and the Open VSX Registry. You can also install the Debug Adapter for Apache Camel extension directly in the Microsoft VS Code.
Procedure
- Open the VS Code editor.
- In the VS Code editor, select View > Extensions.
- In the search bar, type Camel Debug. Select the Debug Adapter for Apache Camel option from the search results and then click Install.
This installs the Debug Adapter for Apache Camel in the VS Code editor.
4.4. Using Debug Adapter
Following procedure explains how to debug a camel application using the debug adapter.
Procedure
-
Ensure that the
jbang
binary is available on the system commandline. - Open a Camel route which can be started with Camel CLI.
-
Call the command Palette using the keys
Ctrl + Shift + P
, and select the Run Camel Application with JBang and Debug command or click on the codelens Camel Debug with JBang that appears on top of the file. - Wait until the route is started and debugger is connected.
- Put a breakpoint on the Camel route.
- Debug.
Additional resources