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

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

commit 84ed9a9e2a6687ed5aa1fbbce4eb15b07b7d9b16
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Feb 9 07:48:02 2023 +0100

    CAMEL-19026: camel-main - Add camel.main.backlogTracingStandby option.
---
 .../main/java/org/apache/camel/CamelContext.java   | 12 ++++++++++
 .../apache/camel/impl/debugger/BacklogTracer.java  | 23 ++++++++++++++++++-
 .../camel/impl/engine/AbstractCamelContext.java    | 19 ++++++++++++++++
 .../apache/camel/impl/engine/DefaultChannel.java   |  4 +++-
 .../camel/impl/ExtendedCamelContextConfigurer.java |  6 +++++
 .../camel/impl/lw/LightweightCamelContext.java     | 10 +++++++++
 .../impl/lw/LightweightRuntimeCamelContext.java    | 10 +++++++++
 .../MainConfigurationPropertiesConfigurer.java     |  6 +++++
 .../camel-main-configuration-metadata.json         |  1 +
 core/camel-main/src/main/docs/main.adoc            |  3 ++-
 .../camel/main/DefaultConfigurationConfigurer.java |  1 +
 .../camel/main/DefaultConfigurationProperties.java | 26 ++++++++++++++++++++++
 .../mbean/ManagedBacklogTracerMBean.java           |  3 +++
 .../management/mbean/ManagedBacklogTracer.java     |  5 +++++
 14 files changed, 126 insertions(+), 3 deletions(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java 
b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
index 90aff10ee92..bfe62772a47 100644
--- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java
@@ -1215,6 +1215,18 @@ public interface CamelContext extends 
CamelContextLifecycle, RuntimeConfiguratio
      */
     boolean isTracingStandby();
 
+    /**
+     * Whether to set backlog tracing on standby. If on standby then the 
backlog tracer is installed and made available.
+     * Then the backlog tracer can be enabled later at runtime via JMX or via 
Java API.
+     */
+    void setBacklogTracingStandby(boolean backlogTracingStandby);
+
+    /**
+     * Whether to set backlog tracing on standby. If on standby then the 
backlog tracer is installed and made available.
+     * Then the backlog tracer can be enabled later at runtime via JMX or via 
Java API.
+     */
+    boolean isBacklogTracingStandby();
+
     /**
      * Gets the current {@link UuidGenerator}
      *
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
index c9bf71433de..ffcc9dad4f2 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/debugger/BacklogTracer.java
@@ -47,8 +47,9 @@ public final class BacklogTracer extends ServiceSupport {
     private final CamelContext camelContext;
     private final Language simple;
     private boolean enabled;
+    private boolean standby;
     private final AtomicLong traceCounter = new AtomicLong();
-    // use a queue with a upper limit to avoid storing too many messages
+    // use a queue with an upper limit to avoid storing too many messages
     private final Queue<BacklogTracerEventMessage> queue = new 
LinkedBlockingQueue<>(MAX_BACKLOG_SIZE);
     // how many of the last messages to keep in the backlog at total
     private int backlogSize = 1000;
@@ -149,6 +150,26 @@ public final class BacklogTracer extends ServiceSupport {
         this.enabled = enabled;
     }
 
+    /**
+     * Whether the tracer is standby.
+     *
+     * If a tracer is in standby then the tracer is activated during startup 
and are ready to be enabled manually via
+     * JMX or calling the enabled method.
+     */
+    public boolean isStandby() {
+        return standby;
+    }
+
+    /**
+     * Whether the tracer is standby.
+     *
+     * If a tracer is in standby then the tracer is activated during startup 
and are ready to be enabled manually via
+     * JMX or calling the enabled method.
+     */
+    public void setStandby(boolean standby) {
+        this.standby = standby;
+    }
+
     public int getBacklogSize() {
         return backlogSize;
     }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 031302fa49a..a0d9501fb82 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -261,6 +261,7 @@ public abstract class AbstractCamelContext extends 
BaseService
     private Initialization initialization = Initialization.Default;
     private Boolean autoStartup = Boolean.TRUE;
     private Boolean backlogTrace = Boolean.FALSE;
+    private Boolean backlogTraceStandby = Boolean.FALSE;
     private Boolean trace = Boolean.FALSE;
     private Boolean traceStandby = Boolean.FALSE;
     private String tracePattern;
@@ -2325,6 +2326,14 @@ public abstract class AbstractCamelContext extends 
BaseService
         this.backlogTrace = backlogTrace;
     }
 
+    public Boolean getBacklogTraceStandby() {
+        return backlogTraceStandby;
+    }
+
+    public void setBacklogTraceStandby(Boolean backlogTraceStandby) {
+        this.backlogTraceStandby = backlogTraceStandby;
+    }
+
     @Override
     public void setDebugging(Boolean debug) {
         this.debug = debug;
@@ -4889,6 +4898,16 @@ public abstract class AbstractCamelContext extends 
BaseService
         return traceStandby != null && traceStandby;
     }
 
+    @Override
+    public void setBacklogTracingStandby(boolean backlogTracingStandby) {
+        this.backlogTraceStandby = backlogTracingStandby;
+    }
+
+    @Override
+    public boolean isBacklogTracingStandby() {
+        return backlogTraceStandby != null && backlogTraceStandby;
+    }
+
     @Override
     public UuidGenerator getUuidGenerator() {
         if (uuidGenerator == null) {
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 6b5503177e7..b7298e274d0 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
@@ -193,7 +193,7 @@ public class DefaultChannel extends CamelInternalProcessor 
implements Channel {
             }
         }
 
-        if (route.isBacklogTracing()) {
+        if (camelContext.isBacklogTracingStandby() || 
route.isBacklogTracing()) {
             // add jmx backlog tracer
             BacklogTracer backlogTracer = 
getOrCreateBacklogTracer(camelContext);
             addAdvice(new BacklogTracerAdvice(backlogTracer, targetOutputDef, 
routeDefinition, first));
@@ -280,6 +280,8 @@ public class DefaultChannel extends CamelInternalProcessor 
implements Channel {
         }
         if (tracer == null) {
             tracer = BacklogTracer.createTracer(camelContext);
+            tracer.setEnabled(camelContext.isBacklogTracing() != null && 
camelContext.isBacklogTracing());
+            tracer.setStandby(camelContext.isBacklogTracingStandby());
             camelContext.setExtension(BacklogTracer.class, tracer);
         }
         return tracer;
diff --git 
a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
 
b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
index 66046dfa7b7..19f5559c032 100644
--- 
a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
+++ 
b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
@@ -35,6 +35,8 @@ public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.com
         case "AutowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, java.lang.Boolean.class, 
value)); return true;
         case "backlogtracing":
         case "BacklogTracing": target.setBacklogTracing(property(camelContext, 
java.lang.Boolean.class, value)); return true;
+        case "backlogtracingstandby":
+        case "BacklogTracingStandby": 
target.setBacklogTracingStandby(property(camelContext, boolean.class, value)); 
return true;
         case "basepackagescan":
         case "BasePackageScan": 
target.setBasePackageScan(property(camelContext, java.lang.String.class, 
value)); return true;
         case "beanintrospection":
@@ -246,6 +248,8 @@ public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.com
         case "AutowiredEnabled": return java.lang.Boolean.class;
         case "backlogtracing":
         case "BacklogTracing": return java.lang.Boolean.class;
+        case "backlogtracingstandby":
+        case "BacklogTracingStandby": return boolean.class;
         case "basepackagescan":
         case "BasePackageScan": return java.lang.String.class;
         case "beanintrospection":
@@ -458,6 +462,8 @@ public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.com
         case "AutowiredEnabled": return target.isAutowiredEnabled();
         case "backlogtracing":
         case "BacklogTracing": return target.isBacklogTracing();
+        case "backlogtracingstandby":
+        case "BacklogTracingStandby": return target.isBacklogTracingStandby();
         case "basepackagescan":
         case "BasePackageScan": return target.getBasePackageScan();
         case "beanintrospection":
diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
index 7fc6ace53ac..bf3776ab6e3 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContext.java
@@ -896,6 +896,16 @@ public class LightweightCamelContext implements 
ExtendedCamelContext, CatalogCam
         return delegate.isTracingStandby();
     }
 
+    @Override
+    public void setBacklogTracingStandby(boolean backlogTracingStandby) {
+        delegate.setBacklogTracingStandby(backlogTracingStandby);
+    }
+
+    @Override
+    public boolean isBacklogTracingStandby() {
+        return delegate.isBacklogTracingStandby();
+    }
+
     @Override
     public UuidGenerator getUuidGenerator() {
         return delegate.getUuidGenerator();
diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
index 122a6237168..c8781b608c0 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightRuntimeCamelContext.java
@@ -1179,6 +1179,16 @@ public class LightweightRuntimeCamelContext implements 
ExtendedCamelContext, Cat
         return false;
     }
 
+    @Override
+    public void setBacklogTracingStandby(boolean backlogTracingStandby) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public boolean isBacklogTracingStandby() {
+        return false;
+    }
+
     //
     // ExtendedCamelContext
     //
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
index 6c80c9ec9df..a29498b6ce3 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
@@ -39,6 +39,8 @@ public class MainConfigurationPropertiesConfigurer extends 
org.apache.camel.supp
         case "AutowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, boolean.class, value)); 
return true;
         case "backlogtracing":
         case "BacklogTracing": target.setBacklogTracing(property(camelContext, 
boolean.class, value)); return true;
+        case "backlogtracingstandby":
+        case "BacklogTracingStandby": 
target.setBacklogTracingStandby(property(camelContext, boolean.class, value)); 
return true;
         case "basepackagescan":
         case "BasePackageScan": 
target.setBasePackageScan(property(camelContext, java.lang.String.class, 
value)); return true;
         case "basepackagescanenabled":
@@ -278,6 +280,8 @@ public class MainConfigurationPropertiesConfigurer extends 
org.apache.camel.supp
         case "AutowiredEnabled": return boolean.class;
         case "backlogtracing":
         case "BacklogTracing": return boolean.class;
+        case "backlogtracingstandby":
+        case "BacklogTracingStandby": return boolean.class;
         case "basepackagescan":
         case "BasePackageScan": return java.lang.String.class;
         case "basepackagescanenabled":
@@ -518,6 +522,8 @@ public class MainConfigurationPropertiesConfigurer extends 
org.apache.camel.supp
         case "AutowiredEnabled": return target.isAutowiredEnabled();
         case "backlogtracing":
         case "BacklogTracing": return target.isBacklogTracing();
+        case "backlogtracingstandby":
+        case "BacklogTracingStandby": return target.isBacklogTracingStandby();
         case "basepackagescan":
         case "BasePackageScan": return target.getBasePackageScan();
         case "basepackagescanenabled":
diff --git 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
index c614a5232d4..70d4bde8a88 100644
--- 
a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
+++ 
b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
@@ -21,6 +21,7 @@
     { "name": "camel.main.autoStartup", "description": "Sets whether the 
object should automatically start when Camel starts. Important: Currently only 
routes can be disabled, as CamelContext's are always started. Note: When 
setting auto startup false on CamelContext then that takes precedence and no 
routes are started. You would need to start CamelContext explicit using the 
org.apache.camel.CamelContext.start() method, to start the context, and then 
you would need to start the routes ma [...]
     { "name": "camel.main.autowiredEnabled", "description": "Whether 
autowiring is enabled. This is used for automatic autowiring options (the 
option must be marked as autowired) by looking up in the registry to find if 
there is a single instance of matching type, which then gets configured on the 
component. This can be used for automatic configuring JDBC data sources, JMS 
connection factories, AWS Clients, etc. Default is true.", "sourceType": 
"org.apache.camel.main.DefaultConfiguration [...]
     { "name": "camel.main.backlogTracing", "description": "Sets whether 
backlog tracing is enabled or not. Default is false.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": "false" },
+    { "name": "camel.main.backlogTracingStandby", "description": "Whether to 
set backlog tracing on standby. If on standby then the backlog tracer is 
installed and made available. Then the backlog tracer can be enabled later at 
runtime via JMX or via Java API. Default is false.", "sourceType": 
"org.apache.camel.main.DefaultConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": "false" },
     { "name": "camel.main.basePackageScan", "description": "Package name to 
use as base (offset) for classpath scanning of RouteBuilder , and 
org.apache.camel.TypeConverter classes. If you are using Spring Boot then it is 
instead recommended to use Spring Boots component scanning and annotate your 
route builder classes with Component. In other words only use this for Camel 
Main in standalone mode.", "sourceType": 
"org.apache.camel.main.MainConfigurationProperties", "type": "string", "jav 
[...]
     { "name": "camel.main.basePackageScanEnabled", "description": "Whether 
base package scan is enabled.", "sourceType": 
"org.apache.camel.main.MainConfigurationProperties", "type": "boolean", 
"javaType": "boolean", "defaultValue": true },
     { "name": "camel.main.beanIntrospectionExtendedStatistics", "description": 
"Sets whether bean introspection uses extended statistics. The default is 
false.", "sourceType": "org.apache.camel.main.DefaultConfigurationProperties", 
"type": "boolean", "javaType": "boolean", "defaultValue": "false" },
diff --git a/core/camel-main/src/main/docs/main.adoc 
b/core/camel-main/src/main/docs/main.adoc
index 73438fb59a9..c364c25c624 100644
--- a/core/camel-main/src/main/docs/main.adoc
+++ b/core/camel-main/src/main/docs/main.adoc
@@ -18,7 +18,7 @@ The following tables lists all the options:
 
 // main options: START
 === Camel Main configurations
-The camel.main supports 116 options, which are listed below.
+The camel.main supports 117 options, which are listed below.
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
@@ -32,6 +32,7 @@ The camel.main supports 116 options, which are listed below.
 | *camel.main.autoStartup* | Sets whether the object should automatically 
start when Camel starts. Important: Currently only routes can be disabled, as 
CamelContext's are always started. Note: When setting auto startup false on 
CamelContext then that takes precedence and no routes are started. You would 
need to start CamelContext explicit using the 
org.apache.camel.CamelContext.start() method, to start the context, and then 
you would need to start the routes manually using CamelContext.g [...]
 | *camel.main.autowiredEnabled* | Whether autowiring is enabled. This is used 
for automatic autowiring options (the option must be marked as autowired) by 
looking up in the registry to find if there is a single instance of matching 
type, which then gets configured on the component. This can be used for 
automatic configuring JDBC data sources, JMS connection factories, AWS Clients, 
etc. Default is true. | true | boolean
 | *camel.main.backlogTracing* | Sets whether backlog tracing is enabled or 
not. Default is false. | false | boolean
+| *camel.main.backlogTracing{zwsp}Standby* | Whether to set backlog tracing on 
standby. If on standby then the backlog tracer is installed and made available. 
Then the backlog tracer can be enabled later at runtime via JMX or via Java 
API. Default is false. | false | boolean
 | *camel.main.basePackageScan* | Package name to use as base (offset) for 
classpath scanning of RouteBuilder , and org.apache.camel.TypeConverter 
classes. If you are using Spring Boot then it is instead recommended to use 
Spring Boots component scanning and annotate your route builder classes with 
Component. In other words only use this for Camel Main in standalone mode. |  | 
String
 | *camel.main.basePackageScan{zwsp}Enabled* | Whether base package scan is 
enabled. | true | boolean
 | *camel.main.beanIntrospection{zwsp}ExtendedStatistics* | Sets whether bean 
introspection uses extended statistics. The default is false. | false | boolean
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
index 7b6c84d9b18..3f53dfa2ed3 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationConfigurer.java
@@ -299,6 +299,7 @@ public final class DefaultConfigurationConfigurer {
         }
 
         camelContext.setBacklogTracing(config.isBacklogTracing());
+        
camelContext.setBacklogTracingStandby(config.isBacklogTracingStandby());
         camelContext.setTracing(config.isTracing());
         camelContext.setTracingStandby(config.isTracingStandby());
         camelContext.setTracingPattern(config.getTracingPattern());
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
index 429a219cbec..cc1132b6264 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultConfigurationProperties.java
@@ -71,6 +71,7 @@ public abstract class DefaultConfigurationProperties<T> {
     private boolean streamCachingStatisticsEnabled;
     private boolean debugging;
     private boolean backlogTracing;
+    private boolean backlogTracingStandby;
     private boolean typeConverterStatisticsEnabled;
     private boolean tracing;
     private boolean tracingStandby;
@@ -675,6 +676,20 @@ public abstract class DefaultConfigurationProperties<T> {
         this.backlogTracing = backlogTracing;
     }
 
+    public boolean isBacklogTracingStandby() {
+        return backlogTracingStandby;
+    }
+
+    /**
+     * Whether to set backlog tracing on standby. If on standby then the 
backlog tracer is installed and made available.
+     * Then the backlog tracer can be enabled later at runtime via JMX or via 
Java API.
+     *
+     * Default is false.
+     */
+    public void setBacklogTracingStandby(boolean backlogTracingStandby) {
+        this.backlogTracingStandby = backlogTracingStandby;
+    }
+
     public boolean isMessageHistory() {
         return messageHistory;
     }
@@ -1946,6 +1961,17 @@ public abstract class DefaultConfigurationProperties<T> {
         return (T) this;
     }
 
+    /**
+     * Whether to set backlog tracing on standby. If on standby then the 
backlog tracer is installed and made available.
+     * Then the backlog tracer can be enabled later at runtime via JMX or via 
Java API.
+     *
+     * Default is false.
+     */
+    public T withBacklogTracingStandby(boolean backlogTracingStandby) {
+        this.backlogTracingStandby = backlogTracingStandby;
+        return (T) this;
+    }
+
     /**
      * Sets whether message history is enabled or not.
      *
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java
index a81049af784..09df86129f2 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java
@@ -29,6 +29,9 @@ public interface ManagedBacklogTracerMBean {
     @ManagedAttribute(description = "Camel ManagementName")
     String getCamelManagementName();
 
+    @ManagedAttribute(description = "Is tracing standby")
+    boolean isStandby();
+
     @ManagedAttribute(description = "Is tracing enabled")
     boolean isEnabled();
 
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
index 1eb09defe64..8172b4d44a3 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedBacklogTracer.java
@@ -61,6 +61,11 @@ public class ManagedBacklogTracer implements 
ManagedBacklogTracerMBean {
         return camelContext.getManagementName();
     }
 
+    @Override
+    public boolean isStandby() {
+        return backlogTracer.isStandby();
+    }
+
     @Override
     public void setEnabled(boolean enabled) {
         backlogTracer.setEnabled(enabled);

Reply via email to