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 5085cfe45fa CAMEL-20586: camel-jbang - Export to CSB can use 
camel.main.xxx properties. Fix export to CSB with older camel release due to 
camel-catalog incompatability api
5085cfe45fa is described below

commit 5085cfe45fa37573222b2842932d5742300d4c0b
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri May 10 14:40:15 2024 +0200

    CAMEL-20586: camel-jbang - Export to CSB can use camel.main.xxx properties. 
Fix export to CSB with older camel release due to camel-catalog incompatability 
api
---
 .../apache/camel/catalog/DefaultCamelCatalog.java  | 72 ++++++++++++++++++----
 .../dsl/jbang/core/commands/ExportSpringBoot.java  | 17 ++++-
 .../main/resources/templates/spring-boot-pom.tmpl  |  2 +-
 3 files changed, 76 insertions(+), 15 deletions(-)

diff --git 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 4d7ce506b9a..e41ed30c2ce 100644
--- 
a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ 
b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -554,17 +554,67 @@ public class DefaultCamelCatalog extends 
AbstractCachingCamelCatalog implements
 
     @Override
     public ArtifactModel<?> modelFromMavenGAV(String groupId, String 
artifactId, String version) {
-        return Stream.<Stream<ArtifactModel<?>>> of(
-                findComponentNames().stream().map(this::componentModel),
-                findDataFormatNames().stream().map(this::dataFormatModel),
-                findLanguageNames().stream().map(this::languageModel),
-                findOtherNames().stream().map(this::otherModel),
-                findTransformerNames().stream().map(this::transformerModel),
-                findDevConsoleNames().stream().map(this::devConsoleModel))
-                .flatMap(s -> s)
-                .filter(am -> matchArtifact(am, groupId, artifactId, version))
-                .findFirst()
-                .orElse(null);
+        try {
+            for (String name : findComponentNames()) {
+                ArtifactModel<?> am = componentModel(name);
+                if (matchArtifact(am, groupId, artifactId, version)) {
+                    return am;
+                }
+            }
+        } catch (Throwable e) {
+            // ignore as catalog can be dynamic changed and older releases may 
not have newer apis
+        }
+        try {
+            for (String name : findDataFormatNames()) {
+                ArtifactModel<?> am = dataFormatModel(name);
+                if (matchArtifact(am, groupId, artifactId, version)) {
+                    return am;
+                }
+            }
+        } catch (Throwable e) {
+            // ignore as catalog can be dynamic changed and older releases may 
not have newer apis
+        }
+        try {
+            for (String name : findLanguageNames()) {
+                ArtifactModel<?> am = languageModel(name);
+                if (matchArtifact(am, groupId, artifactId, version)) {
+                    return am;
+                }
+            }
+        } catch (Throwable e) {
+            // ignore as catalog can be dynamic changed and older releases may 
not have newer apis
+        }
+        try {
+            for (String name : findOtherNames()) {
+                ArtifactModel<?> am = otherModel(name);
+                if (matchArtifact(am, groupId, artifactId, version)) {
+                    return am;
+                }
+            }
+        } catch (Throwable e) {
+            // ignore as catalog can be dynamic changed and older releases may 
not have newer apis
+        }
+        try {
+            for (String name : findTransformerNames()) {
+                ArtifactModel<?> am = transformerModel(name);
+                if (matchArtifact(am, groupId, artifactId, version)) {
+                    return am;
+                }
+            }
+        } catch (Throwable e) {
+            // ignore as catalog can be dynamic changed and older releases may 
not have newer apis
+        }
+        try {
+            for (String name : findDevConsoleNames()) {
+                ArtifactModel<?> am = devConsoleModel(name);
+                if (matchArtifact(am, groupId, artifactId, version)) {
+                    return am;
+                }
+            }
+        } catch (Throwable e) {
+            // ignore as catalog can be dynamic changed and older releases may 
not have newer apis
+        }
+        return null;
     }
 
     @Override
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 2b0086cf477..4af9f7f14f6 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
@@ -34,6 +34,7 @@ import org.apache.camel.catalog.CamelCatalog;
 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.RuntimeUtil;
+import org.apache.camel.dsl.jbang.core.common.VersionHelper;
 import org.apache.camel.tooling.maven.MavenGav;
 import org.apache.camel.tooling.model.ArtifactModel;
 import org.apache.camel.util.CamelCaseOrderedProperties;
@@ -181,6 +182,8 @@ class ExportSpringBoot extends Export {
         context = context.replaceFirst("\\{\\{ \\.CamelVersion }}", 
camelVersion);
         if (camelSpringBootVersion != null) {
             context = context.replaceFirst("\\{\\{ \\.CamelSpringBootVersion 
}}", camelSpringBootVersion);
+        } else {
+            context = context.replaceFirst("\\{\\{ \\.CamelSpringBootVersion 
}}", camelVersion);
         }
         if (additionalProperties != null) {
             String properties = Arrays.stream(additionalProperties.split(","))
@@ -297,6 +300,11 @@ class ExportSpringBoot extends Export {
         context = context.replaceAll("\\{\\{ \\.SpringBootVersion }}", 
springBootVersion);
         context = context.replaceFirst("\\{\\{ \\.JavaVersion }}", 
javaVersion);
         context = context.replaceAll("\\{\\{ \\.CamelVersion }}", 
camelVersion);
+        if (camelSpringBootVersion != null) {
+            context = context.replaceFirst("\\{\\{ \\.CamelSpringBootVersion 
}}", camelSpringBootVersion);
+        } else {
+            context = context.replaceFirst("\\{\\{ \\.CamelSpringBootVersion 
}}", camelVersion);
+        }
 
         if (repos == null || repos.isEmpty()) {
             context = context.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"");
@@ -395,9 +403,12 @@ class ExportSpringBoot extends Export {
 
     @Override
     protected String applicationPropertyLine(String key, String value) {
-        // camel.main.x should be renamed to camel.springboot.x
-        if (key.startsWith("camel.main.")) {
-            key = "camel.springboot." + key.substring(11);
+        boolean camel44orOlder = camelSpringBootVersion != null && 
VersionHelper.isLE("4.4", camelSpringBootVersion);
+        if (camel44orOlder) {
+            // camel.main.x should be renamed to camel.springboot.x (for camel 
4.4.x or older)
+            if (key.startsWith("camel.main.")) {
+                key = "camel.springboot." + key.substring(11);
+            }
         }
         return super.applicationPropertyLine(key, value);
     }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
index c203e48673a..ebd8c6f2995 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
@@ -33,7 +33,7 @@
             <dependency>
                 <groupId>org.apache.camel.springboot</groupId>
                 <artifactId>camel-spring-boot-bom</artifactId>
-                <version>{{ .CamelVersion }}</version>
+                <version>{{ .CamelSpringBootVersion }}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>

Reply via email to