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

davsclaus pushed a commit to branch camel-4.18.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-4.18.x by this push:
     new 651664fd8f47 CAMEL-23828: Honor explicit --quarkus-version during 
export
651664fd8f47 is described below

commit 651664fd8f47b7a08de057c16313a81450489e86
Author: JiriOndrusek <[email protected]>
AuthorDate: Thu Jun 25 09:44:39 2026 +0200

    CAMEL-23828: Honor explicit --quarkus-version during export
    
    When the user specifies --quarkus-version on the CLI, via
    application.properties, or via system property, the export command
    now uses that exact version instead of unconditionally resolving from
    the Quarkus Extension Registry, which would overwrite the user's
    version with the latest patch for that stream.
    
    Closes #24230
---
 .../camel-jbang-dependency-copy.adoc               |  2 +-
 .../camel-jbang-dependency-list.adoc               |  2 +-
 .../camel-jbang-dependency-update.adoc             |  2 +-
 .../pages/jbang-commands/camel-jbang-export.adoc   |  2 +-
 .../pages/jbang-commands/camel-jbang-sbom.adoc     |  2 +-
 .../META-INF/camel-jbang-commands-metadata.json    |  6 ++---
 .../dsl/jbang/core/commands/ExportBaseCommand.java |  7 ++---
 .../dsl/jbang/core/commands/ExportQuarkus.java     | 19 +++++++++-----
 .../commands/ExportMainApplicationProperties.java  |  2 ++
 .../dsl/jbang/core/commands/ExportMainJibTest.java |  2 ++
 .../jbang/core/commands/ExportMainJkubeTest.java   |  2 ++
 .../camel/dsl/jbang/core/commands/ExportTest.java  | 30 ++++++++++++++++++++++
 12 files changed, 60 insertions(+), 18 deletions(-)

diff --git 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
index dd66a3ff2605..f33bdc663fae 100644
--- 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-copy.adoc
@@ -61,7 +61,7 @@ camel dependency copy [options]
 | `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | 
String
 | `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform 
| String
 | `--quarkus-package-type` | Quarkus package type (uber-jar or fast-jar) | 
fast-jar | String
-| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION 
| String
+| `--quarkus-version` | Quarkus Platform version. If not set, resolves the 
latest from the Quarkus registry (when --download=true), otherwise defaults to 
RuntimeType.QUARKUS_VERSION |  | String
 | `--quiet` | Will be quiet, only print when error occurs | false | boolean
 | `--repo,--repos` | Additional maven repositories (Use commas to separate 
multiple repositories) |  | String
 | `--runtime` | Runtime () |  | RuntimeType
diff --git 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
index 72a5d2e0730b..027d9f58ce9d 100644
--- 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-list.adoc
@@ -60,7 +60,7 @@ camel dependency list [options]
 | `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | 
String
 | `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform 
| String
 | `--quarkus-package-type` | Quarkus package type (uber-jar or fast-jar) | 
fast-jar | String
-| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION 
| String
+| `--quarkus-version` | Quarkus Platform version. If not set, resolves the 
latest from the Quarkus registry (when --download=true), otherwise defaults to 
RuntimeType.QUARKUS_VERSION |  | String
 | `--quiet` | Will be quiet, only print when error occurs | false | boolean
 | `--repo,--repos` | Additional maven repositories (Use commas to separate 
multiple repositories) |  | String
 | `--runtime` | Runtime () |  | RuntimeType
diff --git 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
index f806f900c401..9f8d86c35931 100644
--- 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-dependency-update.adoc
@@ -61,7 +61,7 @@ camel dependency update [options]
 | `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | 
String
 | `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform 
| String
 | `--quarkus-package-type` | Quarkus package type (uber-jar or fast-jar) | 
fast-jar | String
-| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION 
| String
+| `--quarkus-version` | Quarkus Platform version. If not set, resolves the 
latest from the Quarkus registry (when --download=true), otherwise defaults to 
RuntimeType.QUARKUS_VERSION |  | String
 | `--quiet` | Will be quiet, only print when error occurs | false | boolean
 | `--repo,--repos` | Additional maven repositories (Use commas to separate 
multiple repositories) |  | String
 | `--runtime` | Runtime () |  | RuntimeType
diff --git 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
index c6a3eda8fd99..0c3fad081eba 100644
--- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-export.adoc
@@ -59,7 +59,7 @@ camel export [options]
 | `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | 
String
 | `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform 
| String
 | `--quarkus-package-type` | Quarkus package type (uber-jar or fast-jar) | 
fast-jar | String
-| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION 
| String
+| `--quarkus-version` | Quarkus Platform version. If not set, resolves the 
latest from the Quarkus registry (when --download=true), otherwise defaults to 
RuntimeType.QUARKUS_VERSION |  | String
 | `--quiet` | Will be quiet, only print when error occurs | false | boolean
 | `--repo,--repos` | Additional maven repositories (Use commas to separate 
multiple repositories) |  | String
 | `--runtime` | Runtime () |  | RuntimeType
diff --git 
a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc 
b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
index 3fadef7caa66..caee7294751b 100644
--- a/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jbang-commands/camel-jbang-sbom.adoc
@@ -62,7 +62,7 @@ camel sbom [options]
 | `--quarkus-artifact-id` | Quarkus Platform Maven artifactId | quarkus-bom | 
String
 | `--quarkus-group-id` | Quarkus Platform Maven groupId | io.quarkus.platform 
| String
 | `--quarkus-package-type` | Quarkus package type (uber-jar or fast-jar) | 
fast-jar | String
-| `--quarkus-version` | Quarkus Platform version | RuntimeType.QUARKUS_VERSION 
| String
+| `--quarkus-version` | Quarkus Platform version. If not set, resolves the 
latest from the Quarkus registry (when --download=true), otherwise defaults to 
RuntimeType.QUARKUS_VERSION |  | String
 | `--quiet` | Will be quiet, only print when error occurs | false | boolean
 | `--repo,--repos` | Additional maven repositories (Use commas to separate 
multiple repositories) |  | String
 | `--runtime` | Runtime () |  | RuntimeType
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
 
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
index a5e204aefda7..63f142906a95 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-commands-metadata.json
@@ -6,12 +6,12 @@
     { "name": "completion", "fullName": "completion", "description": "Generate 
completion script for bash\/zsh", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.Complete", "options": [ { "names": 
"-h,--help", "description": "Display the help and sub-commands", "javaType": 
"boolean", "type": "boolean" } ] },
     { "name": "config", "fullName": "config", "description": "Get and set user 
configuration values", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.config.ConfigCommand", "options": [ { 
"names": "-h,--help", "description": "Display the help and sub-commands", 
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "get", 
"fullName": "config get", "description": "Display user configuration value", 
"sourceClass": "org.apache.camel.dsl.jbang.core.commands.config. [...]
     { "name": "debug", "fullName": "debug", "description": "Debug local Camel 
integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Debug", 
"options": [ { "names": "--ago", "description": "Use ago instead of yyyy-MM-dd 
HH:mm:ss in timestamp.", "javaType": "boolean", "type": "boolean" }, { "names": 
"--background", "description": "Run in the background", "defaultValue": 
"false", "javaType": "boolean", "type": "boolean" }, { "names": 
"--background-wait", "description": "To  [...]
-    { "name": "dependency", "fullName": "dependency", "description": "Displays 
all Camel dependencies required to run", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.DependencyCommand", "options": [ { 
"names": "-h,--help", "description": "Display the help and sub-commands", 
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": 
"copy", "fullName": "dependency copy", "description": "Copies all Camel 
dependencies required to run to a specific directory", "sourc [...]
+    { "name": "dependency", "fullName": "dependency", "description": "Displays 
all Camel dependencies required to run", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.DependencyCommand", "options": [ { 
"names": "-h,--help", "description": "Display the help and sub-commands", 
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": 
"copy", "fullName": "dependency copy", "description": "Copies all Camel 
dependencies required to run to a specific directory", "sourc [...]
     { "name": "dirty", "fullName": "dirty", "description": "Check if there are 
dirty files from previous Camel runs that did not terminate gracefully", 
"sourceClass": "org.apache.camel.dsl.jbang.core.commands.process.Dirty", 
"options": [ { "names": "--clean", "description": "Clean dirty files which are 
no longer in use", "defaultValue": "false", "javaType": "boolean", "type": 
"boolean" }, { "names": "-h,--help", "description": "Display the help and 
sub-commands", "javaType": "boolean", " [...]
     { "name": "doc", "fullName": "doc", "description": "Shows documentation 
for kamelet, component, and other Camel resources", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.catalog.CatalogDoc", "options": [ { 
"names": "--camel-version", "description": "To use a different Camel version 
than the default version", "javaType": "java.lang.String", "type": "string" }, 
{ "names": "--download", "description": "Whether to allow automatic downloading 
JAR dependencies (over the internet [...]
     { "name": "eval", "fullName": "eval", "description": "Evaluate Camel 
expressions and scripts", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.EvalCommand", "options": [ { "names": 
"-h,--help", "description": "Display the help and sub-commands", "javaType": 
"boolean", "type": "boolean" } ], "subcommands": [ { "name": "expression", 
"fullName": "eval expression", "description": "Evaluates Camel expression", 
"sourceClass": "org.apache.camel.dsl.jbang.core.commands.action.EvalEx [...]
     { "name": "explain", "fullName": "explain", "description": "Explain what a 
Camel route does using AI\/LLM", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.Explain", "options": [ { "names": 
"--api-key", "description": "API key for authentication. Also reads 
OPENAI_API_KEY or LLM_API_KEY env vars", "javaType": "java.lang.String", 
"type": "string" }, { "names": "--api-type", "description": "API type: 'ollama' 
or 'openai' (OpenAI-compatible)", "defaultValue": "ollama", "javaTyp [...]
-    { "name": "export", "fullName": "export", "description": "Export to other 
runtimes (Camel Main, Spring Boot, or Quarkus)", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.Export", "options": [ { "names": 
"--build-property", "description": "Maven\/Gradle build properties, ex. 
--build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { 
"names": "--build-tool", "description": "DEPRECATED: Build tool to use (maven 
or gradle) (gradle is deprecated)", "defaultV [...]
+    { "name": "export", "fullName": "export", "description": "Export to other 
runtimes (Camel Main, Spring Boot, or Quarkus)", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.Export", "options": [ { "names": 
"--build-property", "description": "Maven\/Gradle build properties, ex. 
--build-property=prop1=foo", "javaType": "java.util.List", "type": "array" }, { 
"names": "--build-tool", "description": "DEPRECATED: Build tool to use (maven 
or gradle) (gradle is deprecated)", "defaultV [...]
     { "name": "get", "fullName": "get", "description": "Get status of Camel 
integrations", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.process.CamelStatus", "options": [ { 
"names": "--watch", "description": "Execute periodically and showing output 
fullscreen", "javaType": "boolean", "type": "boolean" }, { "names": 
"-h,--help", "description": "Display the help and sub-commands", "javaType": 
"boolean", "type": "boolean" } ], "subcommands": [ { "name": "bean", 
"fullName": "get  [...]
     { "name": "harden", "fullName": "harden", "description": "Suggest security 
hardening for Camel routes using AI\/LLM", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.Harden", "options": [ { "names": 
"--api-key", "description": "API key for authentication. Also reads 
OPENAI_API_KEY or LLM_API_KEY env vars", "javaType": "java.lang.String", 
"type": "string" }, { "names": "--api-type", "description": "API type: 'ollama' 
or 'openai' (OpenAI-compatible)", "defaultValue": "ollama", [...]
     { "name": "hawtio", "fullName": "hawtio", "description": "Launch Hawtio 
web console", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.process.Hawtio", "options": [ { 
"names": "--host", "description": "Hostname to bind the Hawtio web console to", 
"defaultValue": "127.0.0.1", "javaType": "java.lang.String", "type": "string" 
}, { "names": "--openUrl", "description": "To automatic open Hawtio web console 
in the web browser", "defaultValue": "true", "javaType": "boolean", "type": 
[...]
@@ -23,7 +23,7 @@
     { "name": "plugin", "fullName": "plugin", "description": "Manage plugins 
that add sub-commands to this CLI", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.plugin.PluginCommand", "options": [ { 
"names": "-h,--help", "description": "Display the help and sub-commands", 
"javaType": "boolean", "type": "boolean" } ], "subcommands": [ { "name": "add", 
"fullName": "plugin add", "description": "Add new plugin", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.plugin.PluginA [...]
     { "name": "ps", "fullName": "ps", "description": "List running Camel 
integrations", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.process.ListProcess", "options": [ { 
"names": "--json", "description": "Output in JSON Format", "javaType": 
"boolean", "type": "boolean" }, { "names": "--pid", "description": "List only 
pid in the output", "javaType": "boolean", "type": "boolean" }, { "names": 
"--remote", "description": "Break down counters into remote\/total pairs", 
"javaType": [...]
     { "name": "run", "fullName": "run", "description": "Run as local Camel 
integration", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Run", 
"options": [ { "names": "--background", "description": "Run in the background", 
"defaultValue": "false", "javaType": "boolean", "type": "boolean" }, { "names": 
"--background-wait", "description": "To wait for run in background to startup 
successfully, before returning", "defaultValue": "true", "javaType": "boolean", 
"type": "boolean" }, { [...]
-    { "name": "sbom", "fullName": "sbom", "description": "Generate a CycloneDX 
or SPDX SBOM for a specific project", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.SBOMGenerator", "options": [ { 
"names": "--build-property", "description": "Maven\/Gradle build properties, 
ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" 
}, { "names": "--build-tool", "description": "DEPRECATED: Build tool to use 
(maven or gradle) (gradle is deprecated)", "defaultValu [...]
+    { "name": "sbom", "fullName": "sbom", "description": "Generate a CycloneDX 
or SPDX SBOM for a specific project", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.SBOMGenerator", "options": [ { 
"names": "--build-property", "description": "Maven\/Gradle build properties, 
ex. --build-property=prop1=foo", "javaType": "java.util.List", "type": "array" 
}, { "names": "--build-tool", "description": "DEPRECATED: Build tool to use 
(maven or gradle) (gradle is deprecated)", "defaultValu [...]
     { "name": "script", "fullName": "script", "description": "Run Camel 
integration as shell script for terminal scripting", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.Script", "options": [ { "names": 
"--logging", "description": "Can be used to turn on logging (logs to file in 
<user home>\/.camel directory)", "defaultValue": "false", "javaType": 
"boolean", "type": "boolean" }, { "names": "--logging-level", "description": 
"Logging level ()", "defaultValue": "info", "javaType [...]
     { "name": "shell", "fullName": "shell", "description": "Interactive Camel 
JBang shell.", "sourceClass": "org.apache.camel.dsl.jbang.core.commands.Shell", 
"options": [ { "names": "-h,--help", "description": "Display the help and 
sub-commands", "javaType": "boolean", "type": "boolean" } ] },
     { "name": "stop", "fullName": "stop", "description": "Shuts down running 
Camel integrations", "sourceClass": 
"org.apache.camel.dsl.jbang.core.commands.process.StopProcess", "options": [ { 
"names": "--kill", "description": "To force killing the process (SIGKILL)", 
"javaType": "boolean", "type": "boolean" }, { "names": "-h,--help", 
"description": "Display the help and sub-commands", "javaType": "boolean", 
"type": "boolean" } ] },
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index 050b546721b2..6bf4907d1cc0 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -196,9 +196,10 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
                         defaultValue = "quarkus-bom")
     protected String quarkusArtifactId = "quarkus-bom";
 
-    @CommandLine.Option(names = { "--quarkus-version" }, description = 
"Quarkus Platform version",
-                        defaultValue = RuntimeType.QUARKUS_VERSION)
-    protected String quarkusVersion = RuntimeType.QUARKUS_VERSION;
+    @CommandLine.Option(names = { "--quarkus-version" },
+                        description = "Quarkus Platform version. If not set, 
resolves the latest from the Quarkus registry"
+                                      + " (when --download=true), otherwise 
defaults to " + RuntimeType.QUARKUS_VERSION)
+    protected String quarkusVersion;
 
     @CommandLine.Option(names = { "--quarkus-package-type" },
                         description = "Quarkus package type (uber-jar or 
fast-jar)",
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index e93880f0aa89..954f29ca4d30 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -36,6 +36,7 @@ import org.apache.camel.dsl.jbang.core.common.CatalogLoader;
 import org.apache.camel.dsl.jbang.core.common.CommandLineHelper;
 import org.apache.camel.dsl.jbang.core.common.PathUtils;
 import org.apache.camel.dsl.jbang.core.common.QuarkusHelper;
+import org.apache.camel.dsl.jbang.core.common.RuntimeType;
 import org.apache.camel.dsl.jbang.core.common.RuntimeUtil;
 import org.apache.camel.dsl.jbang.core.common.VersionHelper;
 import org.apache.camel.tooling.maven.MavenGav;
@@ -73,6 +74,17 @@ class ExportQuarkus extends Export {
         exportBaseDir = exportBaseDir != null ? exportBaseDir : Path.of(".");
         Path profile = exportBaseDir.resolve("application.properties");
 
+        // resolve Quarkus platform version from registry (only when no 
explicit version was provided)
+        if (quarkusVersion == null) {
+            quarkusVersion = RuntimeType.QUARKUS_VERSION;
+            if (download) {
+                String resolved = 
QuarkusHelper.resolveQuarkusPlatformVersion(quarkusVersion);
+                if (resolved != null) {
+                    quarkusVersion = resolved;
+                }
+            }
+        }
+
         // the settings file has information what to export
         Path settings = 
CommandLineHelper.getWorkDir().resolve(Run.RUN_SETTINGS_FILE);
         if (fresh || !files.isEmpty() || !Files.exists(settings)) {
@@ -145,13 +157,6 @@ class ExportQuarkus extends Export {
             appJar = "target" + File.separator + ids[1] + "-" + ids[2] + 
".jar";
         }
         copyReadme(BUILD_DIR, appJar);
-        // resolve Quarkus platform version from registry (when download is 
true)
-        if (download) {
-            String resolved = 
QuarkusHelper.resolveQuarkusPlatformVersion(quarkusVersion);
-            if (resolved != null) {
-                quarkusVersion = resolved;
-            }
-        }
         // gather dependencies
         Set<String> deps = resolveDependencies(settings, profile);
         // copy local lib JARs
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainApplicationProperties.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainApplicationProperties.java
index 829e7980778d..7f47aa6a7da8 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainApplicationProperties.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainApplicationProperties.java
@@ -52,6 +52,8 @@ class ExportMainApplicationProperties {
         // force removing, since deleteOnExit is not removing.
         FileUtil.removeDir(workingDir);
         FileUtil.deleteFile(profile);
+        // clean up export work dir to prevent ENOENT race with docs gulp 
scanning ../dsl/**
+        FileUtil.removeDir(new File(".camel-jbang"));
     }
 
     private static Stream<Arguments> runtimeProvider() {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
index 8039058119dd..37d8b606fee9 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
@@ -52,6 +52,8 @@ class ExportMainJibTest {
         // force removing, since deleteOnExit is not removing.
         FileUtil.removeDir(workingDir);
         FileUtil.deleteFile(profile);
+        // clean up export work dir to prevent ENOENT race with docs gulp 
scanning ../dsl/**
+        FileUtil.removeDir(new File(".camel-jbang"));
     }
 
     private static Stream<Arguments> runtimeProvider() {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
index 82b0305f2cb8..3f4c97c370e1 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
@@ -52,6 +52,8 @@ class ExportMainJkubeTest {
         // force removing, since deleteOnExit is not removing.
         FileUtil.removeDir(workingDir);
         FileUtil.deleteFile(profile);
+        // clean up export work dir to prevent ENOENT race with docs gulp 
scanning ../dsl/**
+        FileUtil.removeDir(new File(".camel-jbang"));
     }
 
     private static Stream<Arguments> runtimeProvider() {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
index d3e1f13a7ec5..0e5639024ab0 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportTest.java
@@ -64,6 +64,8 @@ class ExportTest {
     public void end() throws IOException {
         // force removing, since deleteOnExit is not removing.
         org.apache.camel.util.FileUtil.removeDir(workingDir);
+        // clean up export work dir to prevent ENOENT race with docs gulp 
scanning ../dsl/**
+        org.apache.camel.util.FileUtil.removeDir(new File(".camel-jbang"));
     }
 
     private static Stream<Arguments> runtimeProvider() {
@@ -812,6 +814,34 @@ class ExportTest {
                 });
     }
 
+    @Test
+    public void shouldHonorExplicitQuarkusVersion() throws Exception {
+        LOG.info("shouldHonorExplicitQuarkusVersion");
+
+        Export command = createCommand(RuntimeType.quarkus, new String[] { 
"classpath:route.yaml" },
+                "--gav=examples:route:1.0.0", "--dir=" + workingDir, 
"--quiet", "--quarkus-version=3.27.0");
+        int exit = command.doCall();
+
+        Assertions.assertEquals(0, exit);
+
+        Model model = readMavenModel();
+        
assertThat(model.getProperties()).containsEntry("quarkus.platform.version", 
"3.27.0");
+    }
+
+    @Test
+    public void shouldUseDefaultQuarkusVersionWhenNotSpecified() throws 
Exception {
+        LOG.info("shouldUseDefaultQuarkusVersionWhenNotSpecified");
+
+        Export command = createCommand(RuntimeType.quarkus, new String[] { 
"classpath:route.yaml" },
+                "--gav=examples:route:1.0.0", "--dir=" + workingDir, 
"--quiet", "--download=false");
+        int exit = command.doCall();
+
+        Assertions.assertEquals(0, exit);
+
+        Model model = readMavenModel();
+        
assertThat(model.getProperties()).containsEntry("quarkus.platform.version", 
RuntimeType.QUARKUS_VERSION);
+    }
+
     @Test
     @SetSystemProperty(key = CamelJBangConstants.QUARKUS_VERSION, value = 
"3.26.0")
     public void shouldOverrideQuarkusVersionFromSystemProperty() throws 
Exception {

Reply via email to