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>