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

davsclaus 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 bc5b7abf53a CAMEL-22165: camel-jbang dependency runtime (deep analysis 
to resolve from parent poms)
bc5b7abf53a is described below

commit bc5b7abf53aa297e6049f4c9f80b1cf0d4739419
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Jun 13 09:30:32 2025 +0200

    CAMEL-22165: camel-jbang dependency runtime (deep analysis to resolve from 
parent poms)
---
 .../dsl/jbang/core/commands/DependencyRuntime.java | 55 +++++++++++++++-------
 .../dsl/jbang/core/commands/ExportQuarkus.java     |  4 +-
 .../dsl/jbang/core/commands/ExportSpringBoot.java  |  4 +-
 .../apache/camel/dsl/jbang/core/commands/Run.java  |  4 +-
 .../camel/dsl/jbang/core/commands/RunHelper.java   |  8 ++--
 .../core/commands/catalog/CatalogBaseCommand.java  | 10 ++--
 .../jbang/core/commands/catalog/CatalogDoc.java    | 10 ++--
 .../camel/dsl/jbang/core/common/CatalogLoader.java | 46 ++++++++++++++++--
 .../camel/dsl/jbang/core/common/RuntimeType.java   | 10 +++-
 .../jbang/core/commands/DependencyRuntimeTest.java | 12 ++---
 10 files changed, 116 insertions(+), 47 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java
index 787abb4ff12..a984fc89a6d 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java
@@ -25,6 +25,7 @@ import java.util.StringJoiner;
 
 import org.apache.camel.catalog.CamelCatalog;
 import org.apache.camel.dsl.jbang.core.common.CatalogLoader;
+import org.apache.camel.dsl.jbang.core.common.RuntimeType;
 import org.apache.camel.tooling.maven.MavenGav;
 import org.apache.camel.util.json.Jsoner;
 import org.apache.maven.model.Model;
@@ -38,6 +39,14 @@ public class DependencyRuntime extends CamelCommand {
     @CommandLine.Parameters(description = "The pom.xml to analyze", arity = 
"1", paramLabel = "<pom.xml>")
     Path pomXml;
 
+    @CommandLine.Option(names = { "--repos" },
+                        description = "Additional maven repositories (Use 
commas to separate multiple repositories)")
+    String repositories;
+
+    @CommandLine.Option(names = { "--download" }, defaultValue = "true",
+                        description = "Whether to allow automatic downloading 
JAR dependencies (over the internet)")
+    boolean download = true;
+
     @CommandLine.Option(names = { "--json" }, description = "Output in JSON 
Format")
     boolean jsonOutput;
 
@@ -94,35 +103,29 @@ public class DependencyRuntime extends CamelCommand {
         }
 
         if (springBootVersion != null && camelVersion == null) {
-            StringJoiner sj = new StringJoiner(",");
-            for (Repository r : model.getRepositories()) {
-                sj.add(r.getUrl());
-            }
-            String repos = sj.length() > 0 ? sj.toString() : null;
-            camelVersion = 
CatalogLoader.resolveCamelVersionFromSpringBoot(repos, camelSpringBootVersion);
+            camelVersion = 
CatalogLoader.resolveCamelVersionFromSpringBoot(mavenRepos(model, repositories),
+                    camelSpringBootVersion, download);
+        }
+        if (springBootVersion == null && camelSpringBootVersion != null) {
+            springBootVersion = 
CatalogLoader.resolveSpringBootVersionFromCamelSpringBoot(mavenRepos(model, 
repositories),
+                    camelSpringBootVersion, download);
         }
-
-        // its a bit harder to know the camel version from Quarkus because of 
the universal BOM
         if (quarkusVersion != null && camelVersion == null) {
-            StringJoiner sj = new StringJoiner(",");
-            for (Repository r : model.getRepositories()) {
-                sj.add(r.getUrl());
-            }
-            String repos = sj.length() > 0 ? sj.toString() : null;
-            CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId);
+            String repos = mavenRepos(model, repositories);
+            CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId, download);
             if (catalog != null) {
                 // find out the camel quarkus version via the constant 
language that are built-in camel-core
                 camelQuarkusVersion = 
catalog.languageModel("constant").getVersion();
                 // okay so the camel version is also hard to resolve from 
quarkus
-                camelVersion = 
CatalogLoader.resolveCamelVersionFromQuarkus(repos, camelQuarkusVersion);
+                camelVersion = 
CatalogLoader.resolveCamelVersionFromQuarkus(repos, camelQuarkusVersion, 
download);
             }
         }
 
-        String runtime = "camel-main";
+        String runtime = RuntimeType.main.runtime();
         if (springBootVersion != null) {
-            runtime = "camel-spring-boot";
+            runtime = RuntimeType.springBoot.runtime();
         } else if (quarkusVersion != null) {
-            runtime = "camel-quarkus";
+            runtime = RuntimeType.quarkus.runtime();
         }
 
         if (jsonOutput) {
@@ -167,4 +170,20 @@ public class DependencyRuntime extends CamelCommand {
 
         return 0;
     }
+
+    private static String mavenRepos(Model model, String repositories) {
+        StringJoiner sj = new StringJoiner(",");
+        for (Repository r : model.getRepositories()) {
+            sj.add(r.getUrl());
+        }
+        String answer = sj.length() > 0 ? sj.toString() : null;
+        if (repositories != null) {
+            if (answer == null) {
+                answer = repositories;
+            } else {
+                answer += "," + repositories;
+            }
+        }
+        return answer;
+    }
 }
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 032852b1137..d0bb9809f7b 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
@@ -267,7 +267,7 @@ class ExportQuarkus extends Export {
         // quarkus controls the camel version
         String repos = getMavenRepositories(settings, prop, quarkusVersion);
 
-        CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId);
+        CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId, download);
         if (camelVersion == null) {
             camelVersion = catalog.getCatalogVersion();
         }
@@ -424,7 +424,7 @@ class ExportQuarkus extends Export {
         // quarkus controls the camel version
         String repos = getMavenRepositories(settings, prop, quarkusVersion);
 
-        CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId);
+        CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId, download);
         if (camelVersion == null) {
             camelVersion = catalog.getCatalogVersion();
         }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index b0ed8d05c2e..cfe892e6d9a 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -175,7 +175,7 @@ class ExportSpringBoot extends Export {
         RuntimeUtil.loadProperties(prop, settings);
         String repos = getMavenRepositories(settings, prop, 
camelSpringBootVersion);
 
-        CamelCatalog catalog = CatalogLoader.loadSpringBootCatalog(repos, 
camelSpringBootVersion);
+        CamelCatalog catalog = CatalogLoader.loadSpringBootCatalog(repos, 
camelSpringBootVersion, download);
         if (ObjectHelper.isEmpty(camelVersion)) {
             camelVersion = catalog.getLoadedVersion();
         }
@@ -279,7 +279,7 @@ class ExportSpringBoot extends Export {
         RuntimeUtil.loadProperties(prop, settings);
         String repos = getMavenRepositories(settings, prop, 
camelSpringBootVersion);
 
-        CamelCatalog catalog = CatalogLoader.loadSpringBootCatalog(repos, 
camelSpringBootVersion);
+        CamelCatalog catalog = CatalogLoader.loadSpringBootCatalog(repos, 
camelSpringBootVersion, download);
         String camelVersion = catalog.getLoadedVersion();
 
         context = context.replaceFirst("\\{\\{ \\.GroupId }}", ids[0]);
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 1787954d53b..3afb54e21e2 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
@@ -572,7 +572,7 @@ public class Run extends CamelCommand {
         final KameletMain main = createMainInstance();
         main.setProfile(profile);
         if (repositories != null && !repositories.isBlank()) {
-            main.setRepositories(String.join(",", repositories));
+            main.setRepositories(repositories);
         }
         main.setDownload(download);
         main.setPackageScanJars(packageScanJars);
@@ -637,7 +637,7 @@ public class Run extends CamelCommand {
         }
         writeSetting(main, profileProperties, "camel.jbang.open-api", openapi);
         if (repositories != null) {
-            writeSetting(main, profileProperties, "camel.jbang.repos", 
String.join(",", repositories));
+            writeSetting(main, profileProperties, "camel.jbang.repos", 
repositories);
         }
         writeSetting(main, profileProperties, "camel.jbang.health", health ? 
"true" : "false");
         writeSetting(main, profileProperties, "camel.jbang.metrics", metrics ? 
"true" : "false");
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
index 8f5e2607ff6..42cc2f57652 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/RunHelper.java
@@ -106,16 +106,14 @@ public final class RunHelper {
                 String a = resolveDependencyPlaceholder(d.getArtifactId(), 
pomPath, downloader);
                 String v = resolveDependencyPlaceholder(d.getVersion(), 
pomPath, downloader);
                 if (v != null) {
-                    if ("org.apache.camel".equals(g) && "camel-bom".equals(a)) 
{
+                    if ("camel-bom".equals(a)) {
                         camelVersion = v;
-                    } else if ("org.apache.camel.springboot".equals(g)
-                            && "camel-spring-boot-bom".equals(a)) {
+                    } else if ("camel-spring-boot-bom".equals(a)) {
                         camelSpringBootVersion = v;
                     } else if ("org.springframework.boot".equals(g)
                             && "spring-boot-dependencies".equals(a)) {
                         springBootVersion = v;
-                    } else if ("io.quarkus.platform".equals(g)
-                            && "quarkus-bom".equals(a)) {
+                    } else if ("quarkus-bom".equals(a)) {
                         quarkusVersion = v;
                     }
                     String gav = "mvn:" + g + ":" + a + ":" + v;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
index 7b7a7d18983..cb19c645567 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java
@@ -52,6 +52,10 @@ public abstract class CatalogBaseCommand extends 
CamelCommand {
                         description = "Runtime (${COMPLETION-CANDIDATES})")
     RuntimeType runtime;
 
+    @CommandLine.Option(names = { "--download" }, defaultValue = "true",
+                        description = "Whether to allow automatic downloading 
JAR dependencies (over the internet)")
+    boolean download = true;
+
     @CommandLine.Option(names = { "--quarkus-version" }, description = 
"Quarkus Platform version",
                         defaultValue = RuntimeType.QUARKUS_VERSION)
     String quarkusVersion;
@@ -102,14 +106,14 @@ public abstract class CatalogBaseCommand extends 
CamelCommand {
 
     CamelCatalog loadCatalog() throws Exception {
         if (RuntimeType.springBoot == runtime) {
-            return CatalogLoader.loadSpringBootCatalog(repos, camelVersion);
+            return CatalogLoader.loadSpringBootCatalog(repos, camelVersion, 
download);
         } else if (RuntimeType.quarkus == runtime) {
-            return CatalogLoader.loadQuarkusCatalog(repos, quarkusVersion, 
quarkusGroupId);
+            return CatalogLoader.loadQuarkusCatalog(repos, quarkusVersion, 
quarkusGroupId, download);
         }
         if (camelVersion == null) {
             return new DefaultCamelCatalog(true);
         } else {
-            return CatalogLoader.loadCatalog(repos, camelVersion);
+            return CatalogLoader.loadCatalog(repos, camelVersion, download);
         }
     }
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
index a643338b221..dc9f53347e1 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogDoc.java
@@ -68,6 +68,10 @@ public class CatalogDoc extends CamelCommand {
                         description = "Runtime (${COMPLETION-CANDIDATES})")
     RuntimeType runtime;
 
+    @CommandLine.Option(names = { "--download" }, defaultValue = "true",
+                        description = "Whether to allow automatic downloading 
JAR dependencies (over the internet)")
+    boolean download = true;
+
     @CommandLine.Option(names = { "--quarkus-version" }, description = 
"Quarkus Platform version",
                         defaultValue = RuntimeType.QUARKUS_VERSION)
     String quarkusVersion;
@@ -110,14 +114,14 @@ public class CatalogDoc extends CamelCommand {
 
     CamelCatalog loadCatalog() throws Exception {
         if (RuntimeType.springBoot == runtime) {
-            return CatalogLoader.loadSpringBootCatalog(repos, camelVersion);
+            return CatalogLoader.loadSpringBootCatalog(repos, camelVersion, 
download);
         } else if (RuntimeType.quarkus == runtime) {
-            return CatalogLoader.loadQuarkusCatalog(repos, quarkusVersion, 
quarkusGroupId);
+            return CatalogLoader.loadQuarkusCatalog(repos, quarkusVersion, 
quarkusGroupId, download);
         }
         if (camelVersion == null) {
             return new DefaultCamelCatalog(true);
         } else {
-            return CatalogLoader.loadCatalog(repos, camelVersion);
+            return CatalogLoader.loadCatalog(repos, camelVersion, download);
         }
     }
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
index cd15e32aff0..ff1f1887fdf 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CatalogLoader.java
@@ -50,7 +50,7 @@ public final class CatalogLoader {
     private CatalogLoader() {
     }
 
-    public static CamelCatalog loadCatalog(String repos, String version) 
throws Exception {
+    public static CamelCatalog loadCatalog(String repos, String version, 
boolean download) throws Exception {
         CamelCatalog answer = new DefaultCamelCatalog();
         if (version == null || version.isEmpty() || 
version.equals(answer.getCatalogVersion())) {
             answer.enableCache();
@@ -61,6 +61,7 @@ public final class CatalogLoader {
         MavenDependencyDownloader downloader = new MavenDependencyDownloader();
         downloader.setClassLoader(cl);
         downloader.setRepositories(repos);
+        downloader.setDownload(download);
         try {
             downloader.start();
 
@@ -89,7 +90,7 @@ public final class CatalogLoader {
         return answer;
     }
 
-    public static CamelCatalog loadSpringBootCatalog(String repos, String 
version) throws Exception {
+    public static CamelCatalog loadSpringBootCatalog(String repos, String 
version, boolean download) throws Exception {
         CamelCatalog answer = new DefaultCamelCatalog();
         if (version == null) {
             version = answer.getCatalogVersion();
@@ -99,6 +100,7 @@ public final class CatalogLoader {
         MavenDependencyDownloader downloader = new MavenDependencyDownloader();
         downloader.setClassLoader(cl);
         downloader.setRepositories(repos);
+        downloader.setDownload(download);
         try {
             downloader.start();
 
@@ -146,7 +148,8 @@ public final class CatalogLoader {
         return answer;
     }
 
-    public static CamelCatalog loadQuarkusCatalog(String repos, String 
quarkusVersion, String quarkusGroupId) throws Exception {
+    public static CamelCatalog loadQuarkusCatalog(String repos, String 
quarkusVersion, String quarkusGroupId, boolean download)
+            throws Exception {
         String camelQuarkusVersion = null;
         CamelCatalog answer = new DefaultCamelCatalog();
 
@@ -163,6 +166,7 @@ public final class CatalogLoader {
         MavenDependencyDownloader downloader = new MavenDependencyDownloader();
         downloader.setRepositories(repos);
         downloader.setClassLoader(cl);
+        downloader.setDownload(download);
         try {
             downloader.start();
 
@@ -224,11 +228,13 @@ public final class CatalogLoader {
         return answer;
     }
 
-    public static String resolveCamelVersionFromSpringBoot(String repos, 
String camelSpringBootVersion) throws Exception {
+    public static String resolveCamelVersionFromSpringBoot(String repos, 
String camelSpringBootVersion, boolean download)
+            throws Exception {
         DependencyDownloaderClassLoader cl = new 
DependencyDownloaderClassLoader(CatalogLoader.class.getClassLoader());
         MavenDependencyDownloader downloader = new MavenDependencyDownloader();
         downloader.setRepositories(repos);
         downloader.setClassLoader(cl);
+        downloader.setDownload(download);
         try {
             downloader.start();
 
@@ -249,11 +255,41 @@ public final class CatalogLoader {
         return null;
     }
 
-    public static String resolveCamelVersionFromQuarkus(String repos, String 
camelQuarkusVersion) throws Exception {
+    public static String resolveSpringBootVersionFromCamelSpringBoot(
+            String repos, String camelSpringBootVersion, boolean download)
+            throws Exception {
         DependencyDownloaderClassLoader cl = new 
DependencyDownloaderClassLoader(CatalogLoader.class.getClassLoader());
         MavenDependencyDownloader downloader = new MavenDependencyDownloader();
         downloader.setRepositories(repos);
         downloader.setClassLoader(cl);
+        downloader.setDownload(download);
+        try {
+            downloader.start();
+
+            List<MavenArtifact> artifacts
+                    = 
downloader.downloadArtifacts("org.apache.camel.springboot", 
"camel-core-starter", camelSpringBootVersion,
+                            true);
+            for (MavenArtifact ma : artifacts) {
+                String g = ma.getGav().getGroupId();
+                String a = ma.getGav().getArtifactId();
+                if ("org.springframework.boot".equals(g) && 
"spring-boot-starter".equals(a)) {
+                    return ma.getGav().getVersion();
+                }
+            }
+        } finally {
+            downloader.stop();
+        }
+
+        return null;
+    }
+
+    public static String resolveCamelVersionFromQuarkus(String repos, String 
camelQuarkusVersion, boolean download)
+            throws Exception {
+        DependencyDownloaderClassLoader cl = new 
DependencyDownloaderClassLoader(CatalogLoader.class.getClassLoader());
+        MavenDependencyDownloader downloader = new MavenDependencyDownloader();
+        downloader.setRepositories(repos);
+        downloader.setClassLoader(cl);
+        downloader.setDownload(download);
         try {
             downloader.start();
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeType.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeType.java
index b63b62ef0f3..6f336cdbd5b 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeType.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/RuntimeType.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.dsl.jbang.core.common;
 
+import java.util.Locale;
+
 import org.apache.camel.catalog.DefaultCamelCatalog;
 
 public enum RuntimeType {
@@ -28,6 +30,7 @@ public enum RuntimeType {
     public static final String SPRING_BOOT_VERSION = "3.5.0";
 
     public static RuntimeType fromValue(String value) {
+        value = value.toLowerCase(Locale.ROOT);
         return switch (value) {
             case "spring-boot", "camel-spring-boot" -> RuntimeType.springBoot;
             case "quarkus", "camel-quarkus" -> RuntimeType.quarkus;
@@ -40,7 +43,7 @@ public enum RuntimeType {
         return switch (this) {
             case springBoot -> "spring-boot";
             case quarkus -> "quarkus";
-            case main -> "camel-main";
+            case main -> "main";
         };
     }
 
@@ -51,4 +54,9 @@ public enum RuntimeType {
             case main -> new DefaultCamelCatalog().getCatalogVersion();
         };
     }
+
+    @Override
+    public String toString() {
+        return runtime();
+    }
 }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntimeTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntimeTest.java
index e7997bbb81a..1556fe161a4 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntimeTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntimeTest.java
@@ -109,28 +109,28 @@ class DependencyRuntimeTest extends CamelCommandBaseTest {
     private static class TestArguments {
         static final String QUARKUS_POM = "pom-xml-files/quarkus-pom.xml";
         static final String QUARKUS_POM_OUTPUT = """
-                Runtime: camel-quarkus
+                Runtime: quarkus
                 Camel Version: 4.11.0
                 Camel Quarkus Version: 3.23.0
                 Quarkus Version: 3.23.0""";
         static final String QUARKUS_POM_JSON_OUTPUT
-                = 
"{\"runtime\":\"camel-quarkus\",\"camelVersion\":\"4.11.0\",\"camelQuarkusVersion\":\"3.23.0\",\"quarkusVersion\":\"3.23.0\",\"quarkusGroupId\":\"io.quarkus.platform\"}";
+                = 
"{\"runtime\":\"quarkus\",\"camelVersion\":\"4.11.0\",\"camelQuarkusVersion\":\"3.23.0\",\"quarkusVersion\":\"3.23.0\",\"quarkusGroupId\":\"io.quarkus.platform\"}";
 
         static final String SPRING_BOOT_POM = 
"pom-xml-files/springboot-pom.xml";
         static final String SPRING_BOOT_POM_OUTPUT = """
-                Runtime: camel-spring-boot
+                Runtime: spring-boot
                 Camel Version: 4.12.0
                 Camel Spring Boot Version: 4.12.0
                 Spring Boot Version: 3.4.5""";
         static final String SPRING_BOOT_POM_JSON_OUTPUT
-                = 
"{\"runtime\":\"camel-spring-boot\",\"camelVersion\":\"4.12.0\",\"camelSpringBootVersion\":\"4.12.0\",\"springBootVersion\":\"3.4.5\"}";
+                = 
"{\"runtime\":\"spring-boot\",\"camelVersion\":\"4.12.0\",\"camelSpringBootVersion\":\"4.12.0\",\"springBootVersion\":\"3.4.5\"}";
 
         static final String MAIN_POM = "pom-xml-files/main-pom.xml";
         static final String MAIN_POM_OUTPUT = """
-                Runtime: camel-main
+                Runtime: main
                 Camel Version: 4.12.0""";
         static final String MAIN_POM_JSON_OUTPUT
-                = "{\"runtime\":\"camel-main\",\"camelVersion\":\"4.12.0\"}";
+                = "{\"runtime\":\"main\",\"camelVersion\":\"4.12.0\"}";
 
     }
 }

Reply via email to