This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch kamelet-debug
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 98c980a4a96e8459f7b467bf0f7a912dce40bfd2
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Nov 15 10:53:49 2023 +0100

    CAMEL-20112: camel-core/camel-jbang: Do not debug inside kamelets/rest-dsl 
as it should be like a black-box and focus only debugging on custom routes.
---
 .../org/apache/camel/impl/engine/DefaultChannel.java  | 19 ++++++++++++-------
 .../apache/camel/impl/console/DebugDevConsole.java    | 13 +++++++++++++
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultChannel.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultChannel.java
index cd593716a05..02c6efefe2a 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultChannel.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultChannel.java
@@ -186,14 +186,19 @@ public class DefaultChannel extends 
CamelInternalProcessor implements Channel {
                 if (!camelContext.hasService(debugger)) {
                     camelContext.addService(debugger);
                 }
-                backlogDebuggerSetupInitialBreakpoints(definition, 
routeDefinition, first, debugger, targetOutputDef);
-                if (first && debugger.isSingleStepIncludeStartEnd()) {
-                    // add breakpoint on route input instead of first node
-                    addAdvice(new BacklogDebuggerAdvice(debugger, 
nextProcessor, routeDefinition.getInput()));
-                    // debugger captures message history, and we need to 
capture history of incoming
-                    addAdvice(new 
MessageHistoryAdvice(camelContext.getMessageHistoryFactory(), 
routeDefinition.getInput()));
+                // skip debugging inside rest-dsl (just a tiny facade) or 
kamelets / route-templates
+                boolean skip = routeDefinition.isCreatedFromRest() || 
routeDefinition.isCreatedFromTemplate();
+                if (!skip) {
+                    backlogDebuggerSetupInitialBreakpoints(definition, 
routeDefinition, first, debugger, targetOutputDef);
+                    if (first && debugger.isSingleStepIncludeStartEnd()) {
+                        // add breakpoint on route input instead of first node
+                        addAdvice(new BacklogDebuggerAdvice(debugger, 
nextProcessor, routeDefinition.getInput()));
+                        // debugger captures message history, and we need to 
capture history of incoming
+                        addAdvice(
+                                new 
MessageHistoryAdvice(camelContext.getMessageHistoryFactory(), 
routeDefinition.getInput()));
+                    }
+                    addAdvice(new BacklogDebuggerAdvice(debugger, 
nextProcessor, targetOutputDef));
                 }
-                addAdvice(new BacklogDebuggerAdvice(debugger, nextProcessor, 
targetOutputDef));
             }
         }
 
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
index f096eaf4ca1..0604f121a3e 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/DebugDevConsole.java
@@ -24,11 +24,13 @@ import java.util.Map;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePropertyKey;
 import org.apache.camel.MessageHistory;
+import org.apache.camel.NamedRoute;
 import org.apache.camel.Route;
 import org.apache.camel.spi.BacklogDebugger;
 import org.apache.camel.spi.BacklogTracerEventMessage;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.annotations.DevConsole;
+import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.console.AbstractDevConsole;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -217,6 +219,17 @@ public class DebugDevConsole extends AbstractDevConsole {
 
         for (MessageHistory h : list) {
             JsonObject jo = new JsonObject();
+
+            if (h.getNode() != null) {
+                NamedRoute nr = CamelContextHelper.getRoute(h.getNode());
+                if (nr != null) {
+                    // skip debugging inside rest-dsl (just a tiny facade) or 
kamelets / route-templates
+                    boolean skip = nr.isCreatedFromRest() || 
nr.isCreatedFromTemplate();
+                    if (skip) {
+                        continue;
+                    }
+                }
+            }
             if (h.getRouteId() != null) {
                 jo.put("routeId", h.getRouteId());
             }

Reply via email to