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