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()); }
