This is an automated email from the ASF dual-hosted git repository. nfilotto pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 210252bc736 CAMEL-19982: camel-jbang - Allow --jvm-debug as last parameter (#11713) 210252bc736 is described below commit 210252bc7369351cbcfb8dadab5888f8468a7d1c Author: Nicolas Filotto <essob...@users.noreply.github.com> AuthorDate: Thu Oct 12 20:07:35 2023 +0200 CAMEL-19982: camel-jbang - Allow --jvm-debug as last parameter (#11713) ## Motivation When `--jvm-debug` is used as last parameter in a run command like `camel run MyKafka.java --jvm-debug`, it fails with the next error `Error: missing required parameter` ## Modifications: * Allow to prevent throwing exception when there are no arguments left in `ParameterConsumer` * Add support of empty arguments in `DebugConsumer` --- .../org/apache/camel/dsl/jbang/core/commands/CamelCommand.java | 6 +++++- .../main/java/org/apache/camel/dsl/jbang/core/commands/Run.java | 9 +++++++-- 2 files changed, 12 insertions(+), 3 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 66fc65bfb71..d520060113b 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 @@ -144,7 +144,7 @@ public abstract class CamelCommand implements Callable<Integer> { @Override public void consumeParameters(Stack<String> args, ArgSpec argSpec, CommandSpec cmdSpec) { - if (args.isEmpty()) { + if (failIfEmptyArgs() && args.isEmpty()) { throw new ParameterException(cmdSpec.commandLine(), "Error: missing required parameter"); } T cmd = (T) cmdSpec.userObject(); @@ -152,6 +152,10 @@ public abstract class CamelCommand implements Callable<Integer> { } protected abstract void doConsumeParameters(Stack<String> args, T cmd); + + protected boolean failIfEmptyArgs() { + return true; + } } } 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 1af68230338..3c718fe5eca 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 @@ -1249,7 +1249,7 @@ public class Run extends CamelCommand { if (f.exists() && f.isDirectory()) { return true; } - + if (FileUtil.onlyExt(name) == null) { return true; } @@ -1411,7 +1411,7 @@ public class Run extends CamelCommand { @Override protected void doConsumeParameters(Stack<String> args, Run cmd) { - String arg = args.peek(); + String arg = args.isEmpty() ? "" : args.peek(); if (DEBUG_ARG_VALUE_PATTERN.asPredicate().test(arg)) { // The value matches with the expected format so let's assume that it is a debug argument value args.pop(); @@ -1421,5 +1421,10 @@ public class Run extends CamelCommand { } cmd.jvmDebugPort = parseJvmDebugPort(arg); } + + @Override + protected boolean failIfEmptyArgs() { + return false; + } } }