This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new e8566492b31 CAMEL-20758: camel-spring-boot - Debugger is created twice
(#1145)
e8566492b31 is described below
commit e8566492b3131e3c6a4bd8891ba28bf37381bd53
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun May 12 20:19:25 2024 +0200
CAMEL-20758: camel-spring-boot - Debugger is created twice (#1145)
---
.../camel-debug-starter/src/main/docs/debug.json | 114 ++++++++++++++++++---
.../boot/debug/CamelDebugAutoConfiguration.java | 5 +
.../debug/CamelDebugConfigurationProperties.java | 0
...rk.boot.autoconfigure.AutoConfiguration.imports | 18 ++++
.../src/main/docs/spring-boot.json | 94 -----------------
...rk.boot.autoconfigure.AutoConfiguration.imports | 1 -
6 files changed, 123 insertions(+), 109 deletions(-)
diff --git a/components-starter/camel-debug-starter/src/main/docs/debug.json
b/components-starter/camel-debug-starter/src/main/docs/debug.json
index f0caf83295a..8a6dfa969ed 100644
--- a/components-starter/camel-debug-starter/src/main/docs/debug.json
+++ b/components-starter/camel-debug-starter/src/main/docs/debug.json
@@ -1,15 +1,101 @@
{
- "other": {
- "kind": "other",
- "name": "debug",
- "title": "Debug",
- "description": "Enables Camel Route Debugging",
- "deprecated": false,
- "firstVersion": "3.15.0",
- "label": "tooling",
- "supportLevel": "Stable",
- "groupId": "org.apache.camel.springboot",
- "artifactId": "camel-debug-starter",
- "version": "4.7.0-SNAPSHOT"
- }
-}
+ "groups": [
+ {
+ "name": "camel.debug",
+ "type":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties"
+ }
+ ],
+ "properties": [
+ {
+ "name": "camel.debug.body-include-files",
+ "type": "java.lang.Boolean",
+ "description": "Whether to include the message body of file based
messages. The overhead is that the file content has to be read from the file.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.debug.body-include-streams",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.debug.body-max-chars",
+ "type": "java.lang.Integer",
+ "description": "To limit the message body to a maximum size in the
traced message. Use 0 or negative value to use unlimited size.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": 0
+ },
+ {
+ "name": "camel.debug.breakpoints",
+ "type": "java.lang.String",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties"
+ },
+ {
+ "name": "camel.debug.enabled",
+ "type": "java.lang.Boolean",
+ "description": "Enables Debugger in your Camel application.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.debug.fallback-timeout",
+ "type": "java.lang.Long",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": 300
+ },
+ {
+ "name": "camel.debug.include-exception",
+ "type": "java.lang.Boolean",
+ "description": "Trace messages to include exception if the message
failed",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.debug.include-exchange-properties",
+ "type": "java.lang.Boolean",
+ "description": "Whether to include the exchange properties in the traced
message",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.debug.include-exchange-variables",
+ "type": "java.lang.Boolean",
+ "description": "Whether to include the exchange variables in the traced
message",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": true
+ },
+ {
+ "name": "camel.debug.logging-level",
+ "type": "org.apache.camel.LoggingLevel",
+ "description": "The debugger logging level to use when logging
activity.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties"
+ },
+ {
+ "name": "camel.debug.single-step-include-start-end",
+ "type": "java.lang.Boolean",
+ "description": "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).",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.debug.standby",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": false
+ },
+ {
+ "name": "camel.debug.wait-for-attach",
+ "type": "java.lang.Boolean",
+ "description": "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.",
+ "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
+ "defaultValue": false
+ }
+ ],
+ "hints": []
+}
\ No newline at end of file
diff --git
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugAutoConfiguration.java
b/components-starter/camel-debug-starter/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugAutoConfiguration.java
similarity index 94%
rename from
core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugAutoConfiguration.java
rename to
components-starter/camel-debug-starter/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugAutoConfiguration.java
index 0cb39dfc17e..87d001aae49 100644
---
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugAutoConfiguration.java
+++
b/components-starter/camel-debug-starter/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugAutoConfiguration.java
@@ -17,6 +17,7 @@
package org.apache.camel.spring.boot.debug;
import org.apache.camel.CamelContext;
+import org.apache.camel.component.debug.JmxConnectorService;
import org.apache.camel.impl.debugger.DefaultBacklogDebugger;
import org.apache.camel.spi.BacklogDebugger;
import org.apache.camel.spring.boot.CamelAutoConfiguration;
@@ -36,6 +37,7 @@ public class CamelDebugAutoConfiguration {
@Bean
public BacklogDebugger backlogDebugger(CamelContext camelContext,
CamelDebugConfigurationProperties config)
throws Exception {
+
if (!config.isEnabled() && !config.isStandby()) {
return null;
}
@@ -77,6 +79,9 @@ public class CamelDebugAutoConfiguration {
}
});
+ // to make debugging possible for tooling we need to make it possible
to do remote JMX connection
+ camelContext.addService(new JmxConnectorService());
+
camelContext.addService(debugger);
return debugger;
diff --git
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugConfigurationProperties.java
b/components-starter/camel-debug-starter/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugConfigurationProperties.java
similarity index 100%
rename from
core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugConfigurationProperties.java
rename to
components-starter/camel-debug-starter/src/main/java/org/apache/camel/spring/boot/debug/CamelDebugConfigurationProperties.java
diff --git
a/components-starter/camel-debug-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
b/components-starter/camel-debug-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 00000000000..efb491ebc7d
--- /dev/null
+++
b/components-starter/camel-debug-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,18 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+org.apache.camel.spring.boot.debug.CamelDebugAutoConfiguration
diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.json
b/core/camel-spring-boot/src/main/docs/spring-boot.json
index c069d4d09d9..1d80c91afb2 100644
--- a/core/camel-spring-boot/src/main/docs/spring-boot.json
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.json
@@ -78,11 +78,6 @@
"sourceType":
"org.apache.camel.spring.boot.DataFormatConfigurationProperties",
"sourceMethod": "getCustomizer()"
},
- {
- "name": "camel.debug",
- "type":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties"
- },
{
"name": "camel.health",
"type":
"org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties",
@@ -448,95 +443,6 @@
"sourceType":
"org.apache.camel.spring.boot.DataFormatConfigurationProperties",
"defaultValue": true
},
- {
- "name": "camel.debug.body-include-files",
- "type": "java.lang.Boolean",
- "description": "Whether to include the message body of file based
messages. The overhead is that the file content has to be read from the file.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": true
- },
- {
- "name": "camel.debug.body-include-streams",
- "type": "java.lang.Boolean",
- "description": "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.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": false
- },
- {
- "name": "camel.debug.body-max-chars",
- "type": "java.lang.Integer",
- "description": "To limit the message body to a maximum size in the
traced message. Use 0 or negative value to use unlimited size.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": 0
- },
- {
- "name": "camel.debug.breakpoints",
- "type": "java.lang.String",
- "description": "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.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties"
- },
- {
- "name": "camel.debug.enabled",
- "type": "java.lang.Boolean",
- "description": "Enables Debugger in your Camel application.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": false
- },
- {
- "name": "camel.debug.fallback-timeout",
- "type": "java.lang.Long",
- "description": "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.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": 300
- },
- {
- "name": "camel.debug.include-exception",
- "type": "java.lang.Boolean",
- "description": "Trace messages to include exception if the message
failed",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": true
- },
- {
- "name": "camel.debug.include-exchange-properties",
- "type": "java.lang.Boolean",
- "description": "Whether to include the exchange properties in the traced
message",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": true
- },
- {
- "name": "camel.debug.include-exchange-variables",
- "type": "java.lang.Boolean",
- "description": "Whether to include the exchange variables in the traced
message",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": true
- },
- {
- "name": "camel.debug.logging-level",
- "type": "org.apache.camel.LoggingLevel",
- "description": "The debugger logging level to use when logging
activity.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties"
- },
- {
- "name": "camel.debug.single-step-include-start-end",
- "type": "java.lang.Boolean",
- "description": "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).",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": false
- },
- {
- "name": "camel.debug.standby",
- "type": "java.lang.Boolean",
- "description": "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.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": false
- },
- {
- "name": "camel.debug.wait-for-attach",
- "type": "java.lang.Boolean",
- "description": "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.",
- "sourceType":
"org.apache.camel.spring.boot.debug.CamelDebugConfigurationProperties",
- "defaultValue": false
- },
{
"name": "camel.health.async-camel-health-check",
"type": "java.lang.Boolean",
diff --git
a/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
b/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 98002faf2f0..30f28a88919 100644
---
a/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++
b/core/camel-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -29,7 +29,6 @@
org.apache.camel.spring.boot.cloud.CamelCloudServiceDiscoveryAutoConfiguration
org.apache.camel.spring.boot.cloud.CamelCloudServiceFilterAutoConfiguration
org.apache.camel.spring.boot.cloud.CamelCloudServiceChooserAutoConfiguration
org.apache.camel.spring.boot.cluster.ClusteredRouteControllerAutoConfiguration
-org.apache.camel.spring.boot.debug.CamelDebugAutoConfiguration
org.apache.camel.spring.boot.properties.PropertiesComponentAutoConfiguration
org.apache.camel.spring.boot.routecontroller.SupervisingRouteControllerAutoConfiguration
org.apache.camel.spring.boot.security.CamelSSLAutoConfiguration