[
https://issues.apache.org/jira/browse/CAMEL-25437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-25437.
---------------------------------
Fix Version/s: 4.18.5
4.23.0
4.22.2
Resolution: Fixed
Fixed by https://github.com/apache/camel/pull/27539 (main), backported in
https://github.com/apache/camel/pull/27540 and
https://github.com/apache/camel/pull/27545 (4.22.x) and
https://github.com/apache/camel/pull/27541 (4.18.x): --prop takes its value
after a space too, on camel run, camel script, camel cmd send and camel cmd
receive.
> camel-jbang - camel run --prop key=value with a space is silently ignored
> -------------------------------------------------------------------------
>
> Key: CAMEL-25437
> URL: https://issues.apache.org/jira/browse/CAMEL-25437
> Project: Camel
> Issue Type: Bug
> Components: camel-jbang
> Reporter: Claus Ibsen
> Priority: Minor
> Fix For: 4.18.5, 4.23.0, 4.22.2
>
>
> camel run --prop key=value, with a space between the option and its value, is
> silently ignored: the property is not set, and nothing warns. Only the
> attached form --prop=key=value works.
> Reproduce in a folder with a route that logs {{greeting}} and an
> application.properties with greeting=Hello:
> {noformat}
> camel run route.camel.yaml --prop greeting=FromProp
> -> logs "Hello" (application.properties wins, the --prop is lost)
> camel run route.camel.yaml --prop=greeting=FromProp
> -> logs "FromProp", and the startup summary lists it as [Command Line]
> greeting = FromProp
> {noformat}
> Cause: the option is declared with arity = "0" (Run.java, and the same option
> in Script.java, since CAMEL-17968):
> {noformat}
> @Option(names = { "--prop", "--property" }, description = "Additional
> properties (override existing)", arity = "0")
> public String[] property;
> {noformat}
> With arity 0, picocli takes no separate value for the option and accepts only
> the attached --prop=value form. The separate key=value then goes on as a
> positional argument, a file to run, which is not found and dropped without a
> word. So it is the declaration in camel-jbang rather than a picocli bug.
> The space form is the one people (and AI agents) type first, as for every
> other option, and the run looks fine apart from the wrong value, so it is
> hard to find.
> Proposal: drop arity = "0" so --prop takes one value per occurrence, as --dep
> does (repeating --prop for several properties keeps working, and
> --prop=key=value too). Alternatively, warn when a positional argument looks
> like key=value and is not a file.
> Found on 4.23.0-SNAPSHOT.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)