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

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

commit 1971af9fd80d13d87c5af81598dc53ce969d66d6
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Thu Oct 9 15:07:15 2025 +0200

    Fix list of Spring Boot version from Camel JBang for Camel 4.15+
    
    with 
https://github.com/apache/camel-spring-boot/commit/71d09c68912f21c301519bbf0cfb9a325163ec10
    the place to look for has been modified. This new place is in an
    artifact (camel-parent) which has no jar artifact which then require to
    improve the MavenDownloader.
    
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../core/commands/version/VersionListTest.java     | 58 ++++++++++++++++++++++
 .../main/download/MavenDependencyDownloader.java   |  7 ++-
 .../org/apache/camel/tooling/maven/MavenGav.java   | 13 ++++-
 3 files changed, 76 insertions(+), 2 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/version/VersionListTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/version/VersionListTest.java
new file mode 100644
index 000000000000..de1d0884aba5
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/version/VersionListTest.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.jbang.core.commands.version;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.camel.dsl.jbang.core.commands.CamelCommandBaseTest;
+import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
+import org.apache.camel.dsl.jbang.core.common.RuntimeType;
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+class VersionListTest extends CamelCommandBaseTest {
+
+    @Test
+    void springbootVersionIsAvailable() throws Exception {
+        VersionList versionList = new VersionList(new 
CamelJBangMain().withPrinter(printer));
+        versionList.sort = "version";
+        versionList.runtime = RuntimeType.springBoot;
+
+        versionList.doCall();
+
+        List<String> lines = printer.getLines();
+        // there was a change where the information is stored in 4.15, thus 
the test on 4.14.1 and 4.15.0
+        Assertions.assertThat(lines.stream().collect(Collectors.joining("\n")))
+                .contains("4.14.1         3.5.6     17,21   LTS")
+                .contains("4.15.0         3.5.6     17,21");
+    }
+
+    @Test
+    void quarkusVersionIsAvailable() throws Exception {
+        VersionList versionList = new VersionList(new 
CamelJBangMain().withPrinter(printer));
+        versionList.sort = "version";
+        versionList.runtime = RuntimeType.quarkus;
+
+        versionList.doCall();
+
+        List<String> lines = printer.getLines();
+        Assertions.assertThat(lines.stream().collect(Collectors.joining("\n")))
+                .contains("4.14.0       3.27.0    17,21   LTS");
+    }
+
+}
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
index 190b1f509136..a9864d7a9105 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
@@ -632,7 +632,12 @@ public class MavenDependencyDownloader extends 
ServiceSupport implements Depende
 
     private String resolveSpringBootVersionByCamelVersion(String camelVersion, 
Set<String> extraRepos)
             throws Exception {
-        String gav = "org.apache.camel.springboot" + ":" + "spring-boot" + 
":pom:" + camelVersion;
+        String gav;
+        if (VersionHelper.isGE(camelVersion, "4.15.0")) {
+            gav = "org.apache.camel:camel-parent:pom:" + camelVersion;
+        } else {
+            gav = "org.apache.camel.springboot:spring-boot:pom:" + 
camelVersion;
+        }
 
         List<MavenArtifact> artifacts = 
resolveDependenciesViaAether(List.of(gav), extraRepos, false, false);
         if (!artifacts.isEmpty()) {
diff --git 
a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenGav.java
 
b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenGav.java
index 2882abba4a68..26d8268fea16 100644
--- 
a/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenGav.java
+++ 
b/tooling/camel-tooling-maven/src/main/java/org/apache/camel/tooling/maven/MavenGav.java
@@ -97,7 +97,18 @@ public final class MavenGav {
                 answer.setArtifactId(parts[1]);
             }
             if (parts.length > 2) {
-                answer.setVersion(parts[2]);
+                String thirdpart = parts[2];
+                // here it handles a single specific case, would be better to 
handle all packaging types
+                if ("pom".equals(thirdpart)) {
+                    answer.setPackaging("pom");
+                    if (parts.length > 3) {
+                        answer.setVersion(parts[3]);
+                    } else if (defaultVersion != null) {
+                        answer.setVersion(defaultVersion);
+                    }
+                } else {
+                    answer.setVersion(parts[2]);
+                }
             } else if (defaultVersion != null) {
                 answer.setVersion(defaultVersion);
             }

Reply via email to