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

commit b76fa0423f1d40afc07386655195c8affd549ad9
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Jun 13 10:32:27 2025 +0200

    CAMEL-22165: camel-jbang dependency runtime (deep analysis to resolve from 
parent poms)
---
 .../dsl/jbang/core/commands/DependencyRuntime.java | 43 ++++++++++++++++++----
 .../camel/dsl/jbang/core/commands/RunHelper.java   | 10 +++--
 .../jbang/core/commands/DependencyRuntimeTest.java |  4 +-
 3 files changed, 44 insertions(+), 13 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 2472ea213fe..a83333ee567 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
@@ -77,7 +77,12 @@ public class DependencyRuntime extends CamelCommand {
         String camelQuarkusVersion = null;
         String springBootVersion = null;
         String quarkusVersion = null;
-        String quarkusGroupId = null;
+        String quarkusBomGroupId = null;
+        String quarkusBomArtifactId = null;
+        String camelQuarkusBomGroupId = null;
+        String camelQuarkusBomArtifactId = null;
+        String camelSpringBootBomGroupId = null;
+        String camelSpringBootBomArtifactId = null;
 
         for (String dep : deps) {
             MavenGav gav = MavenGav.parseGav(dep);
@@ -96,23 +101,32 @@ public class DependencyRuntime extends CamelCommand {
             if (quarkusVersion == null && 
"io.quarkus".equals(gav.getGroupId())) {
                 quarkusVersion = gav.getVersion();
             }
-            if (quarkusGroupId == null && 
"quarkus-bom".equals(gav.getArtifactId())) {
-                quarkusGroupId = gav.getGroupId();
+            if (quarkusBomGroupId == null && 
"quarkus-bom".equals(gav.getArtifactId())) {
+                quarkusBomGroupId = gav.getGroupId();
+                quarkusBomArtifactId = gav.getArtifactId();
                 quarkusVersion = gav.getVersion();
             }
+            if (camelQuarkusBomGroupId == null && 
"quarkus-camel-bom".equals(gav.getArtifactId())) {
+                camelQuarkusBomGroupId = gav.getGroupId();
+                camelQuarkusBomArtifactId = gav.getArtifactId();
+            }
+            if (camelSpringBootBomGroupId == null && 
"camel-spring-boot-bom".equals(gav.getArtifactId())) {
+                camelSpringBootBomGroupId = gav.getGroupId();
+                camelSpringBootBomArtifactId = gav.getArtifactId();
+            }
         }
 
         if (springBootVersion == null && camelSpringBootVersion != null) {
             springBootVersion = 
CatalogLoader.resolveSpringBootVersionFromCamelSpringBoot(mavenRepos(model, 
repositories),
                     camelSpringBootVersion, download);
         }
-        if (springBootVersion != null && camelVersion == null) {
+        if (camelSpringBootVersion != null && camelVersion == null) {
             camelVersion = 
CatalogLoader.resolveCamelVersionFromSpringBoot(mavenRepos(model, repositories),
                     camelSpringBootVersion, download);
         }
         if (quarkusVersion != null && camelVersion == null) {
             String repos = mavenRepos(model, repositories);
-            CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusGroupId, download);
+            CamelCatalog catalog = CatalogLoader.loadQuarkusCatalog(repos, 
quarkusVersion, quarkusBomGroupId, 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();
@@ -146,8 +160,23 @@ public class DependencyRuntime extends CamelCommand {
             if (quarkusVersion != null) {
                 map.put("quarkusVersion", quarkusVersion);
             }
-            if (quarkusGroupId != null) {
-                map.put("quarkusGroupId", quarkusGroupId);
+            if (camelSpringBootBomGroupId != null) {
+                map.put("camelSpringBootBomGroupId", 
camelSpringBootBomGroupId);
+            }
+            if (camelSpringBootBomArtifactId != null) {
+                map.put("camelSpringBootBomArtifactId", 
camelSpringBootBomArtifactId);
+            }
+            if (quarkusBomGroupId != null) {
+                map.put("quarkusBomGroupId", quarkusBomGroupId);
+            }
+            if (quarkusBomArtifactId != null) {
+                map.put("quarkusBomArtifactId", quarkusBomArtifactId);
+            }
+            if (camelQuarkusBomGroupId != null) {
+                map.put("camelQuarkusBomGroupId", camelQuarkusBomGroupId);
+            }
+            if (camelQuarkusBomArtifactId != null) {
+                map.put("camelQuarkusBomArtifactId", 
camelQuarkusBomArtifactId);
             }
             printer().println(Jsoner.serialize(map));
         } else {
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 42cc2f57652..cfd8664634f 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
@@ -182,10 +182,12 @@ public final class RunHelper {
                 String p = model.getProperties().getProperty(placeholder);
                 if (p != null && p.startsWith("${") && p.endsWith("}")) {
                     p = p.substring(2, p.length() - 1);
-                    if ("project.version".equals(p)) {
-                        p = model.getVersion();
-                    } else {
-                        p = model.getProperties().getProperty(p);
+                    p = model.getProperties().getProperty(p);
+                }
+                if ("project.version".equals(p) || 
"project.version".equals(placeholder)) {
+                    p = model.getVersion();
+                    if (p == null && model.getParent() != null) {
+                        p = model.getParent().getVersion();
                     }
                 }
                 if (p != null) {
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 1556fe161a4..7b5204cd876 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
@@ -114,7 +114,7 @@ class DependencyRuntimeTest extends CamelCommandBaseTest {
                 Camel Quarkus Version: 3.23.0
                 Quarkus Version: 3.23.0""";
         static final String QUARKUS_POM_JSON_OUTPUT
-                = 
"{\"runtime\":\"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\",\"quarkusBomGroupId\":\"io.quarkus.platform\",\"quarkusBomArtifactId\":\"quarkus-bom\",\"camelQuarkusBomGroupId\":\"io.quarkus.platform\",\"camelQuarkusBomArtifactId\":\"quarkus-camel-bom\"}";
 
         static final String SPRING_BOOT_POM = 
"pom-xml-files/springboot-pom.xml";
         static final String SPRING_BOOT_POM_OUTPUT = """
@@ -123,7 +123,7 @@ class DependencyRuntimeTest extends CamelCommandBaseTest {
                 Camel Spring Boot Version: 4.12.0
                 Spring Boot Version: 3.4.5""";
         static final String SPRING_BOOT_POM_JSON_OUTPUT
-                = 
"{\"runtime\":\"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\",\"camelSpringBootBomGroupId\":\"org.apache.camel.springboot\",\"camelSpringBootBomArtifactId\":\"camel-spring-boot-bom\"}";
 
         static final String MAIN_POM = "pom-xml-files/main-pom.xml";
         static final String MAIN_POM_OUTPUT = """

Reply via email to