You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2023/03/13 15:44:14 UTC

[camel] branch camel-3.20.x updated: Print configuration values

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

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


The following commit(s) were added to refs/heads/camel-3.20.x by this push:
     new 0a063797a0b Print configuration values
0a063797a0b is described below

commit 0a063797a0b47e776463f00fa32a8a96e015c833
Author: Croway <fe...@gmail.com>
AuthorDate: Mon Mar 13 15:30:23 2023 +0100

    Print configuration values
---
 .../dsl/jbang/core/commands/CamelCommand.java      | 23 ++++++++++++++++++++++
 .../dsl/jbang/core/commands/ExportBaseCommand.java |  3 +++
 .../apache/camel/dsl/jbang/core/commands/Run.java  |  3 +++
 .../dsl/jbang/core/common/CommandLineHelper.java   | 12 +----------
 4 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java
index 4aa13a6bfa4..cafd28602d0 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CamelCommand.java
@@ -17,9 +17,12 @@
 package org.apache.camel.dsl.jbang.core.commands;
 
 import java.io.File;
+import java.util.Arrays;
+import java.util.Properties;
 import java.util.Stack;
 import java.util.concurrent.Callable;
 
+import org.apache.camel.dsl.jbang.core.common.CommandLineHelper;
 import org.apache.camel.dsl.jbang.core.common.RuntimeUtil;
 import picocli.CommandLine;
 import picocli.CommandLine.IParameterConsumer;
@@ -73,6 +76,26 @@ public abstract class CamelCommand implements Callable<Integer> {
         return new File(camelDir, pid + "-output.json");
     }
 
+    public File getTraceFile(String pid) {
+        if (camelDir == null) {
+            camelDir = new File(System.getProperty("user.home"), ".camel");
+        }
+        return new File(camelDir, pid + "-trace.json");
+    }
+
+    protected void printConfigurationValues() {
+        final Properties configProperties = new Properties();
+        CommandLineHelper.loadProperties(properties -> configProperties.putAll(properties));
+        spec.options().forEach(opt -> {
+            if (Arrays.stream(opt.names()).anyMatch(name ->
+            // name starts with --
+            configProperties.containsKey(name.substring(2)))) {
+                System.out.printf("%s = %s%n",
+                        opt.longestName(), opt.getValue().toString());
+            }
+        });
+    }
+
     protected abstract static class ParameterConsumer<T> implements IParameterConsumer {
 
         @Override
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index 577b6c03974..ada24eb199f 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -159,6 +159,9 @@ abstract class ExportBaseCommand extends CamelCommand {
         } else {
             RuntimeUtil.configureLog("off", false, false, false, true);
         }
+
+        System.out.println("Exporting integration with the following configuration:");
+        printConfigurationValues();
         // export
         return export();
     }
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index c7a95e796e5..03fbbc498b5 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -215,6 +215,9 @@ public class Run extends CamelCommand {
 
     @Override
     public Integer call() throws Exception {
+        System.out.println("Running integration with the following configuration:");
+        printConfigurationValues();
+
         return run();
     }
 
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
index a5b9a5f4369..7c4c23b05a7 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
@@ -90,17 +90,7 @@ public final class CommandLineHelper {
 
         @Override
         public String defaultValue(CommandLine.Model.ArgSpec arg) throws Exception {
-            String value = super.defaultValue(arg);
-            if (value != null) {
-                if (arg instanceof CommandLine.Model.OptionSpec) {
-                    // TODO: capture these default values that are in use
-                    // and find a way to log them only once (and have an option to turn this off)
-                    CommandLine.Model.OptionSpec os = (CommandLine.Model.OptionSpec) arg;
-                    String k = os.longestName();
-                    System.out.println(k + "=" + value);
-                }
-            }
-            return value;
+            return super.defaultValue(arg);
         }
     }