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

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

commit ba729ae2bfeb12d602c413987de098f78e8fc3c3
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Aug 31 10:37:04 2024 +0200

    CAMEL-21150: camel-jbang - Make tracer in standby as default
---
 .../org/apache/camel/main/ProfileConfigurer.java   |  6 +---
 .../camel/cli/connector/LocalCliConnector.java     |  9 +++--
 .../core/commands/action/CamelTraceAction.java     | 41 ++++++++++++++++++++++
 3 files changed, 49 insertions(+), 7 deletions(-)

diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java 
b/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java
index 0d5d5802274..aa0b128ac53 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/ProfileConfigurer.java
@@ -44,15 +44,11 @@ public class ProfileConfigurer {
         }
 
         if ("dev".equals(profile)) {
-            // make tracing/debugger at least standby so we can use it in 
dev-mode
+            // make tracing at least standby so we can use it in dev-mode
             boolean enabled = config.tracerConfig().isEnabled();
             if (!enabled) {
                 config.tracerConfig().withStandby(true);
             }
-            enabled = config.debuggerConfig().isEnabled();
-            if (!enabled) {
-                config.debuggerConfig().withStandby(true);
-            }
         }
 
         configureCommon(camelContext, profile, config);
diff --git 
a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
 
b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index 62cc3e8257f..31b30118cd8 100644
--- 
a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ 
b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -740,7 +740,12 @@ public class LocalCliConnector extends ServiceSupport 
implements CliConnector, C
                 .resolveById("trace");
         if (dc != null) {
             String enabled = root.getString("enabled");
-            JsonObject json = (JsonObject) dc.call(DevConsole.MediaType.JSON, 
Map.of("enabled", enabled));
+            JsonObject json;
+            if (enabled != null) {
+                json = (JsonObject) dc.call(DevConsole.MediaType.JSON, 
Map.of("enabled", enabled));
+            } else {
+                json = (JsonObject) dc.call(DevConsole.MediaType.JSON);
+            }
             LOG.trace("Updating output file: {}", outputFile);
             IOHelper.writeText(json.toJson(), outputFile);
         } else {
@@ -1091,7 +1096,7 @@ public class LocalCliConnector extends ServiceSupport 
implements CliConnector, C
             DevConsole dc12 = 
camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class)
                     .resolveById("trace");
             if (dc12 != null) {
-                JsonObject json = (JsonObject) 
dc12.call(DevConsole.MediaType.JSON);
+                JsonObject json = (JsonObject) 
dc12.call(DevConsole.MediaType.JSON, Map.of("dump", "true"));
                 JsonArray arr = json.getCollection("traces");
                 // filter based on last uid
                 if (traceFilePos > 0) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
index 28e5b962b10..cedef90f181 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
@@ -68,9 +68,24 @@ public class CamelTraceAction extends ActionBaseCommand {
         }
     }
 
+    public static class ActionCompletionCandidates implements Iterable<String> 
{
+
+        public ActionCompletionCandidates() {
+        }
+
+        @Override
+        public Iterator<String> iterator() {
+            return List.of("start", "stop", "status").iterator();
+        }
+    }
+
     @CommandLine.Parameters(description = "Name or pid of running Camel 
integration. (default selects all)", arity = "0..1")
     String name = "*";
 
+    @CommandLine.Option(names = { "--action" }, completionCandidates = 
ActionCompletionCandidates.class,
+            description = "Action for start, stop, or show status of tracing")
+    String action;
+
     @CommandLine.Option(names = { "--timestamp" }, defaultValue = "true",
                         description = "Print timestamp.")
     boolean timestamp = true;
@@ -165,8 +180,34 @@ public class CamelTraceAction extends ActionBaseCommand {
         super(main);
     }
 
+    protected Integer doActionCall() throws Exception {
+        List<Long> pids = findPids(name);
+
+        if ("status".equals(action)) {
+            // TODO: show table of trace status per pid (like processor status)
+        } else {
+            for (long pid : pids) {
+                JsonObject root = new JsonObject();
+                root.put("action", "trace");
+                File f = getActionFile(Long.toString(pid));
+                if ("start".equals(action)) {
+                    root.put("enabled", "true");
+                } else if ("stop".equals(action)) {
+                    root.put("enabled", "false");
+                }
+                IOHelper.writeText(root.toJson(), f);
+            }
+        }
+
+        return 0;
+    }
+
     @Override
     public Integer doCall() throws Exception {
+        if (action != null) {
+            return doActionCall();
+        }
+
         // setup table helper
         tableHelper = new MessageTableHelper();
         tableHelper.setPretty(pretty);

Reply via email to