You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2019/05/29 11:58:23 UTC

[camel] branch master updated: [CAMEL-13564] Make sure we can disable tracing and debugging

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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new d01bb31  [CAMEL-13564] Make sure we can disable tracing and debugging
d01bb31 is described below

commit d01bb31a3447619122e5de1d561b9d22e499ec20
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed May 29 13:39:15 2019 +0200

    [CAMEL-13564] Make sure we can disable tracing and debugging
---
 .../src/main/java/org/apache/camel/Channel.java    |  7 ------
 .../org/apache/camel/RuntimeConfiguration.java     | 16 +++++++++++++-
 .../camel/impl/engine/AbstractCamelContext.java    | 15 ++++++++++---
 .../camel/impl/engine/DefaultRouteContext.java     | 18 ++++++++++++++--
 .../camel/processor/channel/DefaultChannel.java    | 25 +++++++++++++++-------
 .../java/org/apache/camel/impl/DefaultModel.java   |  4 ++++
 6 files changed, 64 insertions(+), 21 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/Channel.java b/core/camel-api/src/main/java/org/apache/camel/Channel.java
index 0a73529..8fcdbbe 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Channel.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Channel.java
@@ -43,13 +43,6 @@ public interface Channel extends AsyncProcessor, Navigate<Processor> {
     Processor getOutput();
 
     /**
-     * Sets the wrapped output that at runtime should be delegated to.
-     *
-     * @param output the output to route the {@link Exchange} to
-     */
-    void setOutput(Processor output);
-
-    /**
      * Gets the next {@link Processor} to route to (not wrapped)
      *
      * @return  the next processor
diff --git a/core/camel-api/src/main/java/org/apache/camel/RuntimeConfiguration.java b/core/camel-api/src/main/java/org/apache/camel/RuntimeConfiguration.java
index 96d9c45..413a733 100644
--- a/core/camel-api/src/main/java/org/apache/camel/RuntimeConfiguration.java
+++ b/core/camel-api/src/main/java/org/apache/camel/RuntimeConfiguration.java
@@ -37,7 +37,7 @@ public interface RuntimeConfiguration {
     Boolean isStreamCaching();
 
     /**
-     * Sets whether tracing is enabled or not (default is disabled).
+     * Sets whether tracing is enabled or not (default is enabled).
      *
      * @param tracing whether to enable tracing.
      */
@@ -51,6 +51,20 @@ public interface RuntimeConfiguration {
     Boolean isTracing();
 
     /**
+     * Sets whether debugging is enabled or not (default is enabled).
+     *
+     * @param debugging whether to enable debugging.
+     */
+    void setDebugging(Boolean debugging);
+
+    /**
+     * Returns whether debugging enabled
+     *
+     * @return <tt>true</tt> if tracing is enabled
+     */
+    Boolean isDebugging();
+
+    /**
      * Sets whether message history is enabled or not (default is enabled).
      *
      * @param messageHistory whether message history is enabled
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index f9fa38d..dd71ffd 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -193,7 +193,8 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
     private final ThreadLocal<Boolean> isSetupRoutes = new ThreadLocal<>();
     private Initialization initialization = Initialization.Default;
     private Boolean autoStartup = Boolean.TRUE;
-    private Boolean trace = Boolean.FALSE;
+    private Boolean trace = Boolean.TRUE;
+    private Boolean debug = Boolean.TRUE;
     private Boolean messageHistory = Boolean.TRUE;
     private Boolean logMask = Boolean.FALSE;
     private Boolean logExhaustedMessageBody = Boolean.FALSE;
@@ -1832,14 +1833,22 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
         return trace;
     }
 
-    public Boolean isMessageHistory() {
-        return messageHistory;
+    public void setDebugging(Boolean debug) {
+        this.debug = debug;
+    }
+
+    public Boolean isDebugging() {
+        return debug;
     }
 
     public void setMessageHistory(Boolean messageHistory) {
         this.messageHistory = messageHistory;
     }
 
+    public Boolean isMessageHistory() {
+        return messageHistory;
+    }
+
     public void setLogMask(Boolean logMask) {
         this.logMask = logMask;
     }
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
index 74aea37..c42d7cf 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultRouteContext.java
@@ -48,8 +48,8 @@ import org.apache.camel.support.CamelContextHelper;
  * The context used to activate new routing rules
  */
 public class DefaultRouteContext implements RouteContext {
-    private final NamedNode route;
-    private final String routeId;
+    private NamedNode route;
+    private String routeId;
     private Route runtimeRoute;
     private Endpoint endpoint;
     private final List<Processor> eventDrivenProcessors = new ArrayList<>();
@@ -58,6 +58,7 @@ public class DefaultRouteContext implements RouteContext {
     private ManagementInterceptStrategy managementInterceptStrategy;
     private boolean routeAdded;
     private Boolean trace;
+    private Boolean debug;
     private Boolean messageHistory;
     private Boolean logMask;
     private Boolean logExhaustedMessageBody;
@@ -268,6 +269,19 @@ public class DefaultRouteContext implements RouteContext {
         }
     }
 
+    public void setDebugging(Boolean debugging) {
+        this.debug = debugging;
+    }
+
+    public Boolean isDebugging() {
+        if (debug != null) {
+            return debug;
+        } else {
+            // fallback to the option from camel context
+            return getCamelContext().isDebugging();
+        }
+    }
+
     public void setMessageHistory(Boolean messageHistory) {
         this.messageHistory = messageHistory;
     }
diff --git a/core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java b/core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
index d519a9b..bf5036e 100644
--- a/core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
+++ b/core/camel-base/src/main/java/org/apache/camel/processor/channel/DefaultChannel.java
@@ -33,6 +33,7 @@ import org.apache.camel.processor.WrapProcessor;
 import org.apache.camel.processor.errorhandler.RedeliveryErrorHandler;
 import org.apache.camel.processor.interceptor.BacklogDebugger;
 import org.apache.camel.processor.interceptor.BacklogTracer;
+import org.apache.camel.spi.CamelInternalProcessorAdvice;
 import org.apache.camel.spi.InterceptStrategy;
 import org.apache.camel.spi.ManagementInterceptStrategy;
 import org.apache.camel.spi.MessageHistoryFactory;
@@ -112,6 +113,10 @@ public class DefaultChannel extends CamelInternalProcessor implements Channel {
         return definition;
     }
 
+    public void setDefinition(NamedNode definition) {
+        this.definition = definition;
+    }
+
     public RouteContext getRouteContext() {
         return routeContext;
     }
@@ -181,16 +186,20 @@ public class DefaultChannel extends CamelInternalProcessor implements Channel {
             instrumentationProcessor = managed.createProcessor(targetOutputDef, nextProcessor);
         }
 
-        // then wrap the output with the backlog and tracer (backlog first,
-        // as we do not want regular tracer to trace the backlog)
-        BacklogTracer tracer = getOrCreateBacklogTracer();
-        camelContext.setExtension(BacklogTracer.class, tracer);
-        addAdvice(new BacklogTracerAdvice(tracer, targetOutputDef, route, first));
+        // then wrap the output with the tracer and debugger (debugger first,
+        // as we do not want regular tracer to trace the debugger)
+        if (routeContext.isTracing()) {
+            BacklogTracer tracer = getOrCreateBacklogTracer();
+            camelContext.setExtension(BacklogTracer.class, tracer);
+            addAdvice(new BacklogTracerAdvice(tracer, targetOutputDef, route, first));
+        }
 
         // add debugger as well so we have both tracing and debugging out of the box
-        BacklogDebugger debugger = getOrCreateBacklogDebugger();
-        camelContext.addService(debugger);
-        addAdvice(new BacklogDebuggerAdvice(debugger, nextProcessor, targetOutputDef));
+        if (routeContext.isDebugging()) {
+            BacklogDebugger debugger = getOrCreateBacklogDebugger();
+            camelContext.addService(debugger);
+            addAdvice(new BacklogDebuggerAdvice(debugger, nextProcessor, targetOutputDef));
+        }
 
         if (routeContext.isMessageHistory()) {
             // add message history advice
diff --git a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java
index a921e33..19454de 100644
--- a/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java
+++ b/core/camel-core/src/main/java/org/apache/camel/impl/DefaultModel.java
@@ -65,6 +65,10 @@ public class DefaultModel implements Model {
         this.camelContext = camelContext;
     }
 
+    public CamelContext getCamelContext() {
+        return camelContext;
+    }
+
     public void addRouteDefinitions(InputStream is) throws Exception {
         RoutesDefinition def = ModelHelper.loadRoutesDefinition(camelContext, is);
         if (def != null) {