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 <[email protected]>
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>