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/07 17:24:04 UTC

[camel] 08/10: CAMEL-18508: camel-jbang - User config. WIP

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

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

commit 0f231bc9e587a656b16fda31534e58c534c07363
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Mar 7 15:34:16 2023 +0100

    CAMEL-18508: camel-jbang - User config. WIP
---
 .../dsl/jbang/core/common/CommandLineHelper.java   | 24 +++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

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 b3fda856a4f..0856fdd55fc 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
@@ -40,7 +40,7 @@ public class CommandLineHelper {
                 prop.load(fis);
                 IOHelper.close(fis);
                 if (!prop.isEmpty()) {
-                    commandLine.setDefaultValueProvider(new CommandLine.PropertiesDefaultProvider(prop));
+                    commandLine.setDefaultValueProvider(new CamelUserConfigDefaultValueProvider(prop));
                 }
             } catch (Exception e) {
                 throw new RuntimeException("Cannot load user configuration: " + file);
@@ -50,4 +50,26 @@ public class CommandLineHelper {
         }
     }
 
+    private static class CamelUserConfigDefaultValueProvider extends CommandLine.PropertiesDefaultProvider {
+
+        public CamelUserConfigDefaultValueProvider(Properties properties) {
+            super(properties);
+        }
+
+        @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;
+        }
+    }
+
 }