Ricardo Martinez created CAMEL-24400:
----------------------------------------
Summary: camel export: `-Dcamel.jbang.camel-version` system
property is silently ignored
Key: CAMEL-24400
URL: https://issues.apache.org/jira/browse/CAMEL-24400
Project: Camel
Issue Type: Bug
Components: camel-jbang
Reporter: Ricardo Martinez
The {{camel.jbang.camel-version}} system property (constant {{CAMEL_VERSION}}
in {{CamelJBangConstants}}) is documented as a supported configuration option
but is never read during export.
*Steps to reproduce:*
{code:bash}
camel export --runtime=quarkus -Dcamel.jbang.camel-version=4.8.0 hello.java
{code}
The exported project uses the default/running Camel version, not {{4.8.0}}.
By contrast, passing the equivalent {{--camel-version=4.8.0}} flag works
correctly.
*Root cause:*
In {{Export.overrideFromSystemProperties()}} ({{Export.java}}), only two
properties are read from system properties:
{code:java}
private void overrideFromSystemProperties() {
this.quarkusPlatform = QuarkusPlatformMixin.of(System.getProperties(),
this.quarkusPlatform);
this.camelSpringBootVersion =
PropertyResolver.fromSystemProperty(CAMEL_SPRING_BOOT_VERSION, () ->
this.camelSpringBootVersion);
}
{code}
{{CAMEL_VERSION}} ({{camel.jbang.camel-version}}) is absent. The property is
populated from {{application.properties}} via
{{doLoadAndInitProfileProperties()}} but there is no equivalent system-property
override path for it.
*Expected behaviour:*
Passing {{- Dcamel.jbang.camel-version=X.Y.Z}} should behave identically to
{{--camel-version=X.Y.Z}}.
*Fix:*
Add the missing line to {{overrideFromSystemProperties()}}:
{code:java}
this.camelVersion = PropertyResolver.fromSystemProperty(CAMEL_VERSION, () ->
this.camelVersion);
{code}
_Reported by IBM Bob on behalf of ricmarti_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)