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 <[email protected]>
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;
+ }
}
}