You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ji...@apache.org on 2024/03/14 14:02:29 UTC
(camel-quarkus) 01/26: Upgrade Camel to 4.5.0
This is an automated email from the ASF dual-hosted git repository.
jiriondrusek pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 365997ddce499a34ea50a7b540163fa8f25f8855
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Mar 6 14:56:22 2024 +0000
Upgrade Camel to 4.5.0
---
.../catalog/quarkus/QuarkusRuntimeProvider.java | 21 +++++++++++++++
.../quarkus/QuarkusRuntimeProviderTest.java | 10 +++++++
docs/antora.yml | 2 +-
.../examples/components/azure-storage-datalake.yml | 4 +--
docs/modules/ROOT/examples/components/jslt.yml | 2 +-
.../ROOT/examples/components/rest-openapi.yml | 2 +-
.../ROOT/examples/components/splunk-hec.yml | 2 +-
.../ROOT/examples/components/spring-rabbitmq.yml | 2 +-
docs/modules/ROOT/examples/components/stomp.yml | 2 +-
docs/modules/ROOT/examples/components/telegram.yml | 2 +-
.../modules/ROOT/examples/components/wordpress.yml | 4 +--
.../extensions/azure-storage-datalake.adoc | 2 +-
.../pages/reference/extensions/rest-openapi.adoc | 4 +--
.../ROOT/pages/reference/extensions/telegram.adoc | 4 +--
.../ROOT/pages/reference/extensions/wordpress.adoc | 2 +-
.../catalog/BuildTimeJsonSchemaResolver.java | 5 ++++
.../core/deployment/catalog/SchemaResource.java | 2 +-
.../camel/quarkus/core/CamelContextRecorder.java | 4 ---
.../camel/quarkus/core/FastCamelContext.java | 11 +++++---
extensions-jvm/azure-cosmosdb/deployment/pom.xml | 4 +++
extensions-jvm/azure-cosmosdb/runtime/pom.xml | 4 +++
.../language/deployment/dm/DryModeMain.java | 2 +-
.../org/apache/camel/component/qute/qute.json | 0
.../camel/quarkus/component/avro/it/AvroRoute.java | 11 ++++----
.../apache/camel/quarkus/js/JavaScriptDslTest.java | 2 +-
.../camel/quarkus/main/CoreMainXmlJaxbTest.java | 1 -
integration-tests/ssh/pom.xml | 2 ++
.../camel/quarkus/component/ssh/it/SshIT.java | 2 ++
.../camel/quarkus/component/ssh/it/SshTest.java | 2 ++
.../component/velocity/it/VelocityTest.java | 6 ++---
pom.xml | 20 +++++++-------
.../org/apache/camel/quarkus/maven/CqCatalog.java | 31 +++++++++++++++++++++-
.../org/apache/camel/quarkus/maven/CqUtils.java | 2 ++
.../quarkus/maven/PrepareCatalogQuarkusMojo.java | 3 +++
.../quarkus/maven/UpdateExtensionDocPageMojo.java | 2 ++
35 files changed, 133 insertions(+), 48 deletions(-)
diff --git a/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java b/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java
index d8a72bfada..ab9f6fabdb 100644
--- a/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java
+++ b/catalog/src/main/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProvider.java
@@ -35,10 +35,12 @@ public class QuarkusRuntimeProvider implements RuntimeProvider {
private static final String COMPONENT_DIR = "org/apache/camel/catalog/quarkus/components";
private static final String DATAFORMAT_DIR = "org/apache/camel/catalog/quarkus/dataformats";
private static final String LANGUAGE_DIR = "org/apache/camel/catalog/quarkus/languages";
+ private static final String TRANSFORMER_DIR = "org/apache/camel/catalog/quarkus/transformers";
private static final String OTHER_DIR = "org/apache/camel/catalog/quarkus/others";
private static final String COMPONENTS_CATALOG = "org/apache/camel/catalog/quarkus/components.properties";
private static final String DATA_FORMATS_CATALOG = "org/apache/camel/catalog/quarkus/dataformats.properties";
private static final String LANGUAGE_CATALOG = "org/apache/camel/catalog/quarkus/languages.properties";
+ private static final String TRANSFORMER_CATALOG = "org/apache/camel/catalog/quarkus/transformers.properties";
private static final String OTHER_CATALOG = "org/apache/camel/catalog/quarkus/others.properties";
private CamelCatalog camelCatalog;
@@ -83,6 +85,11 @@ public class QuarkusRuntimeProvider implements RuntimeProvider {
return LANGUAGE_DIR;
}
+ @Override
+ public String getTransformerJSonSchemaDirectory() {
+ return TRANSFORMER_DIR;
+ }
+
@Override
public String getOtherJSonSchemaDirectory() {
return OTHER_DIR;
@@ -130,6 +137,20 @@ public class QuarkusRuntimeProvider implements RuntimeProvider {
return names;
}
+ @Override
+ public List<String> findTransformerNames() {
+ List<String> names = new ArrayList<>();
+ InputStream is = camelCatalog.getVersionManager().getResourceAsStream(TRANSFORMER_CATALOG);
+ if (is != null) {
+ try {
+ CatalogHelper.loadLines(is, names);
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ return names;
+ }
+
@Override
public List<String> findOtherNames() {
List<String> names = new ArrayList<>();
diff --git a/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java b/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java
index 20c0b3a9de..e3adf83bc6 100644
--- a/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java
+++ b/catalog/src/test/java/org/apache/camel/catalog/quarkus/QuarkusRuntimeProviderTest.java
@@ -183,6 +183,16 @@ public class QuarkusRuntimeProviderTest {
assertFalse(names.contains("blueprint"));
}
+ @Test
+ public void testFindTransformers() throws Exception {
+ List<String> names = catalog.findTransformerNames();
+
+ assertNotNull(names);
+ assertFalse(names.isEmpty());
+
+ assertTrue(names.contains("azure-storage-blob:application-cloudevents"));
+ }
+
@Test
public void testComponentArtifactId() throws Exception {
String json = catalog.componentJSonSchema("salesforce");
diff --git a/docs/antora.yml b/docs/antora.yml
index f62a00e75b..68cfa8c374 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -28,7 +28,7 @@ asciidoc:
requires: "'util=camel-website-util,quarkus=xref:js/quarkus.js'"
# Project versions
- camel-version: 4.4.0 # replace ${camel.version}
+ camel-version: 4.5.0-SNAPSHOT # replace ${camel.version}
camel-docs-version: 4.4.x
camel-quarkus-version: 3.9.0 # replace ${camel-quarkus.version}
quarkus-version: 3.9.0.CR1 # replace ${quarkus.version}
diff --git a/docs/modules/ROOT/examples/components/azure-storage-datalake.yml b/docs/modules/ROOT/examples/components/azure-storage-datalake.yml
index a768d9902f..3f3b7e17f6 100644
--- a/docs/modules/ROOT/examples/components/azure-storage-datalake.yml
+++ b/docs/modules/ROOT/examples/components/azure-storage-datalake.yml
@@ -8,6 +8,6 @@ cqDeprecated: false
cqJvmSince: 1.8.0
cqNativeSince: n/a
cqCamelPartName: azure-storage-datalake
-cqCamelPartTitle: Azure Storage Datalake Service
-cqCamelPartDescription: Sends and receives files to/from Azure DataLake Storage.
+cqCamelPartTitle: Azure Storage Data Lake Service
+cqCamelPartDescription: Sends and receives files to/from Azure Data Lake Storage.
cqExtensionPageTitle: Azure storage datalake service
diff --git a/docs/modules/ROOT/examples/components/jslt.yml b/docs/modules/ROOT/examples/components/jslt.yml
index 6ad75f8679..e634e8c31e 100644
--- a/docs/modules/ROOT/examples/components/jslt.yml
+++ b/docs/modules/ROOT/examples/components/jslt.yml
@@ -9,5 +9,5 @@ cqJvmSince: 1.1.0
cqNativeSince: 1.4.0
cqCamelPartName: jslt
cqCamelPartTitle: JSLT
-cqCamelPartDescription: Query or transform JSON payloads using an JSLT.
+cqCamelPartDescription: Query or transform JSON payloads using JSLT.
cqExtensionPageTitle: JSLT
diff --git a/docs/modules/ROOT/examples/components/rest-openapi.yml b/docs/modules/ROOT/examples/components/rest-openapi.yml
index 55acac80df..5c4f1644e4 100644
--- a/docs/modules/ROOT/examples/components/rest-openapi.yml
+++ b/docs/modules/ROOT/examples/components/rest-openapi.yml
@@ -9,5 +9,5 @@ cqJvmSince: 1.0.0
cqNativeSince: 1.0.0
cqCamelPartName: rest-openapi
cqCamelPartTitle: REST OpenApi
-cqCamelPartDescription: Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface.
+cqCamelPartDescription: To call REST services using OpenAPI specification as contract.
cqExtensionPageTitle: REST OpenApi
diff --git a/docs/modules/ROOT/examples/components/splunk-hec.yml b/docs/modules/ROOT/examples/components/splunk-hec.yml
index b0ef480575..ec1fcc5ff2 100644
--- a/docs/modules/ROOT/examples/components/splunk-hec.yml
+++ b/docs/modules/ROOT/examples/components/splunk-hec.yml
@@ -9,5 +9,5 @@ cqJvmSince: 1.1.0
cqNativeSince: 3.8.0
cqCamelPartName: splunk-hec
cqCamelPartTitle: Splunk HEC
-cqCamelPartDescription: The splunk component allows to publish events in Splunk using the HTTP Event Collector.
+cqCamelPartDescription: The splunk component allows publishing events in Splunk using the HTTP Event Collector.
cqExtensionPageTitle: Splunk HEC
diff --git a/docs/modules/ROOT/examples/components/spring-rabbitmq.yml b/docs/modules/ROOT/examples/components/spring-rabbitmq.yml
index c8fff2a2ad..65186b3c8e 100644
--- a/docs/modules/ROOT/examples/components/spring-rabbitmq.yml
+++ b/docs/modules/ROOT/examples/components/spring-rabbitmq.yml
@@ -9,5 +9,5 @@ cqJvmSince: 1.7.0
cqNativeSince: 1.7.0
cqCamelPartName: spring-rabbitmq
cqCamelPartTitle: Spring RabbitMQ
-cqCamelPartDescription: Send and receive messages from RabbitMQ using Spring RabbitMQ client.
+cqCamelPartDescription: Send and receive messages from RabbitMQ using the Spring RabbitMQ client.
cqExtensionPageTitle: Spring RabbitMQ
diff --git a/docs/modules/ROOT/examples/components/stomp.yml b/docs/modules/ROOT/examples/components/stomp.yml
index 9d08095055..d091383412 100644
--- a/docs/modules/ROOT/examples/components/stomp.yml
+++ b/docs/modules/ROOT/examples/components/stomp.yml
@@ -9,5 +9,5 @@ cqJvmSince: 1.1.0
cqNativeSince: n/a
cqCamelPartName: stomp
cqCamelPartTitle: Stomp
-cqCamelPartDescription: Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
+cqCamelPartDescription: Send and receive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
cqExtensionPageTitle: Stomp
diff --git a/docs/modules/ROOT/examples/components/telegram.yml b/docs/modules/ROOT/examples/components/telegram.yml
index 226f73a80a..3b245843f3 100644
--- a/docs/modules/ROOT/examples/components/telegram.yml
+++ b/docs/modules/ROOT/examples/components/telegram.yml
@@ -9,5 +9,5 @@ cqJvmSince: 1.0.0
cqNativeSince: 1.0.0
cqCamelPartName: telegram
cqCamelPartTitle: Telegram
-cqCamelPartDescription: Send and receive messages acting as a Telegram Bot Telegram Bot API.
+cqCamelPartDescription: Send and receive messages using the Telegram Bot API.
cqExtensionPageTitle: Telegram
diff --git a/docs/modules/ROOT/examples/components/wordpress.yml b/docs/modules/ROOT/examples/components/wordpress.yml
index 18d205603c..a46f2b4e55 100644
--- a/docs/modules/ROOT/examples/components/wordpress.yml
+++ b/docs/modules/ROOT/examples/components/wordpress.yml
@@ -8,6 +8,6 @@ cqDeprecated: false
cqJvmSince: 1.1.0
cqNativeSince: n/a
cqCamelPartName: wordpress
-cqCamelPartTitle: Wordpress
-cqCamelPartDescription: Manage posts and users using Wordpress API.
+cqCamelPartTitle: WordPress
+cqCamelPartDescription: Manage posts and users using the WordPress API.
cqExtensionPageTitle: Wordpress
diff --git a/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc b/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc
index 25f6dc3dec..7d612c28ea 100644
--- a/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/azure-storage-datalake.adoc
@@ -22,7 +22,7 @@ Camel Azure Datalake Gen2 Component
[id="extensions-azure-storage-datalake-whats-inside"]
== What's inside
-* xref:{cq-camel-components}::azure-storage-datalake-component.adoc[Azure Storage Datalake Service component], URI syntax: `azure-storage-datalake:accountName/fileSystemName`
+* xref:{cq-camel-components}::azure-storage-datalake-component.adoc[Azure Storage Data Lake Service component], URI syntax: `azure-storage-datalake:accountName/fileSystemName`
Please refer to the above link for usage and configuration details.
diff --git a/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc b/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc
index 7c99cf29bc..050a8c9ebc 100644
--- a/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/rest-openapi.adoc
@@ -8,7 +8,7 @@
:cq-native-supported: true
:cq-status: Stable
:cq-status-deprecation: Stable
-:cq-description: Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface.
+:cq-description: To call REST services using OpenAPI specification as contract.
:cq-deprecated: false
:cq-jvm-since: 1.0.0
:cq-native-since: 1.0.0
@@ -18,7 +18,7 @@ ifeval::[{doc-show-badges} == true]
[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0##
endif::[]
-Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface.
+To call REST services using OpenAPI specification as contract.
[id="extensions-rest-openapi-whats-inside"]
== What's inside
diff --git a/docs/modules/ROOT/pages/reference/extensions/telegram.adoc b/docs/modules/ROOT/pages/reference/extensions/telegram.adoc
index 036267c250..4a2c89f405 100644
--- a/docs/modules/ROOT/pages/reference/extensions/telegram.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/telegram.adoc
@@ -8,7 +8,7 @@
:cq-native-supported: true
:cq-status: Stable
:cq-status-deprecation: Stable
-:cq-description: Send and receive messages acting as a Telegram Bot Telegram Bot API.
+:cq-description: Send and receive messages using the Telegram Bot API.
:cq-deprecated: false
:cq-jvm-since: 1.0.0
:cq-native-since: 1.0.0
@@ -18,7 +18,7 @@ ifeval::[{doc-show-badges} == true]
[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0##
endif::[]
-Send and receive messages acting as a Telegram Bot Telegram Bot API.
+Send and receive messages using the Telegram Bot API.
[id="extensions-telegram-whats-inside"]
== What's inside
diff --git a/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc b/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc
index bcaadbbff3..ae1f8d7eff 100644
--- a/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/wordpress.adoc
@@ -22,7 +22,7 @@ Manage posts and users using Wordpress API.
[id="extensions-wordpress-whats-inside"]
== What's inside
-* xref:{cq-camel-components}::wordpress-component.adoc[Wordpress component], URI syntax: `wordpress:operation`
+* xref:{cq-camel-components}::wordpress-component.adoc[WordPress component], URI syntax: `wordpress:operation`
Please refer to the above link for usage and configuration details.
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java
index a1d69f5cd3..907941a605 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/BuildTimeJsonSchemaResolver.java
@@ -49,6 +49,11 @@ public class BuildTimeJsonSchemaResolver implements JSonSchemaResolver {
return resolveJsonSchema("language", name);
}
+ @Override
+ public String getTransformerJSonSchema(String name) {
+ throw new UnsupportedOperationException("Transformer JSON schema resolution is not supported");
+ }
+
@Override
public String getOtherJSonSchema(String name) {
throw new UnsupportedOperationException("Other JSON schema resolution is not supported");
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java
index 05f6755b59..eaf7f89979 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/catalog/SchemaResource.java
@@ -58,7 +58,7 @@ public class SchemaResource {
public String getLocation() {
String packageName = className.prefix().toString();
- return packageName.replace('.', '/') + "/" + name + ".json";
+ return "META-INF/" + packageName.replace('.', '/') + "/" + name + ".json";
}
public String load() {
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
index 0ed013005c..1536533051 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
@@ -27,7 +27,6 @@ import org.apache.camel.CamelContext;
import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.RouteConfigurationsBuilder;
import org.apache.camel.RoutesBuilder;
-import org.apache.camel.TypeConverter;
import org.apache.camel.builder.LambdaRouteBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
@@ -82,9 +81,6 @@ public class CamelContextRecorder {
TypeConverterRegistry typeConverterRegistryValue = typeConverterRegistry.getValue();
typeConverterRegistryValue.setInjector(new FastTypeConverterInjector(context));
context.setTypeConverterRegistry(typeConverterRegistryValue);
- if (typeConverterRegistryValue instanceof TypeConverter) {
- context.setTypeConverter((TypeConverter) typeConverterRegistryValue);
- }
context.setLoadTypeConverters(false);
extendedCamelContext.addContextPlugin(ModelJAXBContextFactory.class, contextFactory.getValue());
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index 654a02ee87..64ff4fe5e6 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -203,7 +203,8 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame
if (instance != null) {
clazz = instance.getClass();
} else {
- clazz = getFactoryFinder(DefaultComponentResolver.RESOURCE_PATH).findClass(componentName).orElse(null);
+ clazz = getCamelContextExtension().getFactoryFinder(DefaultComponentResolver.RESOURCE_PATH).findClass(componentName)
+ .orElse(null);
if (clazz == null) {
instance = hasComponent(componentName);
if (instance != null) {
@@ -230,7 +231,8 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame
if (instance != null) {
clazz = instance.getClass();
} else {
- clazz = getFactoryFinder(DefaultDataFormatResolver.DATAFORMAT_RESOURCE_PATH).findClass(dataFormatName).orElse(null);
+ clazz = getCamelContextExtension().getFactoryFinder(DefaultDataFormatResolver.DATAFORMAT_RESOURCE_PATH)
+ .findClass(dataFormatName).orElse(null);
if (clazz == null) {
return null;
}
@@ -247,7 +249,8 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame
if (instance != null) {
clazz = instance.getClass();
} else {
- clazz = getFactoryFinder(DefaultLanguageResolver.LANGUAGE_RESOURCE_PATH).findClass(languageName).orElse(null);
+ clazz = getCamelContextExtension().getFactoryFinder(DefaultLanguageResolver.LANGUAGE_RESOURCE_PATH)
+ .findClass(languageName).orElse(null);
if (clazz == null) {
return null;
}
@@ -257,7 +260,7 @@ public class FastCamelContext extends DefaultCamelContext implements CatalogCame
}
private String getJsonSchema(String packageName, String name) throws IOException {
- String path = packageName.replace('.', '/') + "/" + name + ".json";
+ String path = "META-INF/" + packageName.replace('.', '/') + "/" + name + ".json";
InputStream inputStream = getClassResolver().loadResourceAsStream(path);
if (inputStream != null) {
diff --git a/extensions-jvm/azure-cosmosdb/deployment/pom.xml b/extensions-jvm/azure-cosmosdb/deployment/pom.xml
index eb99bd65dc..edca14f599 100644
--- a/extensions-jvm/azure-cosmosdb/deployment/pom.xml
+++ b/extensions-jvm/azure-cosmosdb/deployment/pom.xml
@@ -34,6 +34,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core-deployment</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-cloudevents-deployment</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-azure-core-http-client-vertx-deployment</artifactId>
diff --git a/extensions-jvm/azure-cosmosdb/runtime/pom.xml b/extensions-jvm/azure-cosmosdb/runtime/pom.xml
index 30a3fb7b6f..2316b6b490 100644
--- a/extensions-jvm/azure-cosmosdb/runtime/pom.xml
+++ b/extensions-jvm/azure-cosmosdb/runtime/pom.xml
@@ -39,6 +39,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-cloudevents</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-azure-core-http-client-vertx</artifactId>
diff --git a/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java b/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java
index 53bf5bab83..0aa0b61fef 100644
--- a/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java
+++ b/extensions-support/language/deployment/src/main/java/org/apache/camel/quarkus/support/language/deployment/dm/DryModeMain.java
@@ -51,7 +51,7 @@ public class DryModeMain extends MainSupport {
@Override
protected CamelContext createCamelContext() {
DefaultCamelContext ctx = new DefaultCamelContext(false);
- ctx.setName(getAppName());
+ ctx.getCamelContextExtension().setName(getAppName());
ctx.setInjector(new DryModeInjector(ctx.getInjector()));
ExtendedCamelContext extendedCamelContext = ctx.getCamelContextExtension();
diff --git a/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json b/extensions/qute/component/src/generated/resources/META-INF/org/apache/camel/component/qute/qute.json
similarity index 100%
rename from extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
rename to extensions/qute/component/src/generated/resources/META-INF/org/apache/camel/component/qute/qute.json
diff --git a/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java b/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java
index 4fea75a697..b8c5793a32 100644
--- a/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java
+++ b/integration-tests/avro/src/main/java/org/apache/camel/quarkus/component/avro/it/AvroRoute.java
@@ -20,6 +20,7 @@ import example.avro.Admin;
import jakarta.enterprise.context.ApplicationScoped;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.dataformat.avro.AvroDataFormat;
+import org.apache.camel.model.dataformat.AvroLibrary;
import static org.apache.camel.quarkus.component.avro.it.AvroSchemaLoader.getSchema;
@@ -29,15 +30,15 @@ public class AvroRoute extends RouteBuilder {
@Override
public void configure() {
- from("direct:marshalUsingBuildTimeGeneratedClass").marshal().avro(Admin.class);
- from("direct:unmarshalUsingBuildTimeGeneratedClass").unmarshal().avro(Admin.class);
+ from("direct:marshalUsingBuildTimeGeneratedClass").marshal().avro(AvroLibrary.ApacheAvro, Admin.class);
+ from("direct:unmarshalUsingBuildTimeGeneratedClass").unmarshal().avro(AvroLibrary.ApacheAvro, Admin.class);
AvroDataFormat configureTimeAvroDataFormat = new AvroDataFormat(getSchema());
from("direct:marshalUsingConfigureTimeAvroDataFormat").marshal(configureTimeAvroDataFormat);
from("direct:unmarshalUsingConfigureTimeAvroDataFormat").unmarshal(configureTimeAvroDataFormat);
- from("direct:marshalUsingAvroDsl").marshal().avro();
- from("direct:unmarshalUsingInstanceClassNameAvroDsl").unmarshal().avro(Value.class.getName());
- from("direct:unmarshalUsingSchemaAvroDsl").unmarshal().avro(Value.SCHEMA$);
+ from("direct:marshalUsingAvroDsl").marshal().avro(AvroLibrary.ApacheAvro);
+ from("direct:unmarshalUsingInstanceClassNameAvroDsl").unmarshal().avro(AvroLibrary.ApacheAvro, Value.class.getName());
+ from("direct:unmarshalUsingSchemaAvroDsl").unmarshal().avro(AvroLibrary.ApacheAvro, Value.SCHEMA$);
}
}
diff --git a/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java b/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java
index 79734c42e5..9eef21e3ab 100644
--- a/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java
+++ b/integration-tests/js-dsl/src/test/java/org/apache/camel/quarkus/js/JavaScriptDslTest.java
@@ -54,7 +54,7 @@ class JavaScriptDslTest {
.then()
.statusCode(200)
.body(CoreMatchers.is(
- "my-js-route,routes-with-component-configuration,routes-with-context-configuration,routes-with-endpoint-dsl,routes-with-modules,routes-with-processors-consumer,routes-with-processors-processor,routes-with-rest-configuration,routes-with-rest-configuration-goodbye,routes-with-rest-dsl,routes-with-rest-dsl-hello"));
+ "my-js-route,routes-with-component-configuration,routes-with-context-configuration,routes-with-endpoint-dsl,routes-with-modules,routes-with-processors-consumer,routes-with-processors-processor,routes-with-rest-configuration-goodbye,routes-with-rest-dsl-hello"));
RestAssured.given()
.get("/js-dsl/main/successful/routes")
diff --git a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
index 2912d7499c..6838b5f3a4 100644
--- a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
+++ b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
@@ -76,7 +76,6 @@ public class CoreMainXmlJaxbTest {
private boolean logContainsDumpedRoutes(String log) {
return log.contains("<route id=\"my-xml-route\">") &&
- log.contains("<route id=\"rest-route\">") &&
log.contains("<rest id=\"greet\" path=\"/greeting\">") &&
log.contains("<routeTemplate id=\"myTemplate\">");
}
diff --git a/integration-tests/ssh/pom.xml b/integration-tests/ssh/pom.xml
index 90bb55c3c3..524a81274c 100644
--- a/integration-tests/ssh/pom.xml
+++ b/integration-tests/ssh/pom.xml
@@ -71,6 +71,7 @@
<profiles>
+ <!-- TODO: https://github.com/apache/camel-quarkus/issues/5850
<profile>
<id>native</id>
<activation>
@@ -98,6 +99,7 @@
</plugins>
</build>
</profile>
+ -->
<profile>
<id>virtualDependencies</id>
<activation>
diff --git a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java
index 92af64875a..5ffdcc87ee 100644
--- a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java
+++ b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshIT.java
@@ -17,7 +17,9 @@
package org.apache.camel.quarkus.component.ssh.it;
import io.quarkus.test.junit.QuarkusIntegrationTest;
+import org.junit.jupiter.api.Disabled;
+@Disabled("https://github.com/apache/camel-quarkus/issues/5850")
@QuarkusIntegrationTest
class SshIT extends SshTest {
diff --git a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java
index 4681ee0a94..b1df19d4e7 100644
--- a/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java
+++ b/integration-tests/ssh/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java
@@ -20,10 +20,12 @@ import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
+@Disabled("https://github.com/apache/camel-quarkus/issues/5850")
@QuarkusTest
@QuarkusTestResource(SshTestResource.class)
class SshTest {
diff --git a/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java b/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java
index 1045de04c9..ba2ff7d8d8 100644
--- a/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java
+++ b/integration-tests/velocity/src/test/java/org/apache/camel/quarkus/component/velocity/it/VelocityTest.java
@@ -52,7 +52,7 @@ class VelocityTest {
RestAssured.given()
.queryParam("name", "Sheldon")
.queryParam("item", "Camel in Action")
- .queryParam("template", "file:/" + template.getPath())
+ .queryParam("template", "file://" + template.getPath())
.contentType(ContentType.TEXT)
.body("PS: Next beer is on me")
.post("/velocity/template")
@@ -203,7 +203,7 @@ class VelocityTest {
File template = createFile("velocity_test", "Hi ${body}");
RestAssured.given()
- .queryParam("template", "file:/" + template.getPath())
+ .queryParam("template", "file://" + template.getPath())
.queryParam("contentCache", useContentCache)
.contentType(ContentType.TEXT)
.body("Sheldon")
@@ -216,7 +216,7 @@ class VelocityTest {
Files.write(Paths.get(template.getPath()), "Bye ${body}".getBytes(StandardCharsets.UTF_8));
RestAssured.given()
- .queryParam("template", "file:/" + template.getPath())
+ .queryParam("template", "file://" + template.getPath())
.queryParam("contentCache", useContentCache)
.contentType(ContentType.TEXT)
.body("Sheldon")
diff --git a/pom.xml b/pom.xml
index c7663811cb..f828856841 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.camel</groupId>
<artifactId>camel-dependencies</artifactId>
- <version>4.4.0</version>
+ <version>4.5.0-SNAPSHOT</version>
</parent>
<groupId>org.apache.camel.quarkus</groupId>
@@ -39,8 +39,8 @@
<properties>
<!-- Primary dependencies - maintained manually -->
- <camel.major.minor>4.4</camel.major.minor> <!-- run after each change: cd docs && mvnd validate -->
- <camel.version>${camel.major.minor}.0</camel.version>
+ <camel.major.minor>4.5</camel.major.minor> <!-- run after each change: cd docs && mvnd validate -->
+ <camel.version>${camel.major.minor}.0-SNAPSHOT</camel.version>
<camel.docs.components.version>${camel.major.minor}.x</camel.docs.components.version><!-- the version in Camel's docs/components/antora.yml -->
<camel.docs.components.xref>${camel.docs.components.version}@components</camel.docs.components.xref><!-- the version in Camel's docs/components/antora.yml -->
<camel.docs.branch>camel-${camel.major.minor}.x</camel.docs.branch><!-- The stable camel branch on which our Antora docs depends -->
@@ -78,8 +78,8 @@
<assertj.version>3.25.3</assertj.version><!-- @sync io.quarkus:quarkus-build-parent:${quarkus.version} prop:assertj.version -->
<aws-java-sdk.version>1.11.714</aws-java-sdk.version>
<azure-sdk-bom.version>${azure-sdk-bom-version}</azure-sdk-bom.version>
- <azure-core.version>1.45.1</azure-core.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-core -->
- <azure-identity.version>1.11.1</azure-identity.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-identity -->
+ <azure-core.version>1.46.0</azure-core.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-core -->
+ <azure-identity.version>1.11.2</azure-identity.version><!-- @sync com.azure:azure-sdk-bom:${azure-sdk-bom.version} dep:com.azure:azure-identity -->
<azure-core-http-vertx.version>1.0.0-beta.3</azure-core-http-vertx.version> <!-- TODO: https://github.com/apache/camel-quarkus/issues/4181 -->
<cassandra-driver-test.version>3.7.1</cassandra-driver-test.version><!-- Keep in sync with testcontainers instead of Debezium bom -->
<bouncycastle.version>1.77</bouncycastle.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.bouncycastle:bcprov-jdk18on -->
@@ -95,12 +95,12 @@
<freemarker.version>2.3.32</freemarker.version><!-- @sync io.quarkiverse.freemarker:quarkus-freemarker-parent:${quarkiverse-freemarker.version} prop:freemarker.version -->
<geny.version>0.6.2</geny.version>
<github-api.version>1.313</github-api.version><!-- Used in a Groovy script bellow -->
- <google-auth-library.version>1.22.0</google-auth-library.version><!-- @sync com.google.cloud:google-cloud-pubsub:${google-cloud-pubsub.version} dep:com.google.auth:google-auth-library-oauth2-http -->
+ <google-auth-library.version>1.23.0</google-auth-library.version><!-- @sync com.google.cloud:google-cloud-pubsub:${google-cloud-pubsub.version} dep:com.google.auth:google-auth-library-oauth2-http -->
<google-oauth-client.version>${google-oauth-client-version}</google-oauth-client.version>
- <google-cloud-bom.version>0.212.0</google-cloud-bom.version><!-- @sync com.google.cloud:libraries-bom:${google-cloud-bom-version} dep:com.google.cloud:google-cloud-bom -->
- <google-cloud-pubsub-bom.version>1.126.2</google-cloud-pubsub-bom.version><!-- @sync com.google.cloud:google-cloud-bom:${google-cloud-bom.version} dep:com.google.cloud:google-cloud-pubsub-bom -->
- <google-cloud-pubsub.version>1.126.2</google-cloud-pubsub.version><!-- @sync com.google.cloud:google-cloud-pubsub-bom:${google-cloud-pubsub-bom.version} dep:com.google.cloud:google-cloud-pubsub -->
- <graalvm.version>23.1.2</graalvm.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.graalvm.sdk:graal-sdk -->
+ <google-cloud-bom.version>0.214.0</google-cloud-bom.version><!-- @sync com.google.cloud:libraries-bom:${google-cloud-bom-version} dep:com.google.cloud:google-cloud-bom -->
+ <google-cloud-pubsub-bom.version>1.126.6</google-cloud-pubsub-bom.version><!-- @sync com.google.cloud:google-cloud-bom:${google-cloud-bom.version} dep:com.google.cloud:google-cloud-pubsub-bom -->
+ <google-cloud-pubsub.version>1.126.6</google-cloud-pubsub.version><!-- @sync com.google.cloud:google-cloud-pubsub-bom:${google-cloud-pubsub-bom.version} dep:com.google.cloud:google-cloud-pubsub -->
+ <graalvm.version>23.0.1</graalvm.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.graalvm.sdk:graal-sdk -->
<graalvm-docs.version>jdk21</graalvm-docs.version><!-- @sync io.quarkus:quarkus-documentation:${quarkus.version} prop:graal-community.tag-for-documentation -->
<groovy.version>4.0.18</groovy.version><!-- @sync io.quarkiverse.groovy:quarkus-groovy-parent:${quarkiverse-groovy.version} prop:groovy.version -->
<grpc.version>1.62.2</grpc.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:io.grpc:grpc-core -->
diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java
index 18dc5392da..4091a17914 100644
--- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java
+++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java
@@ -43,6 +43,7 @@ import org.apache.camel.tooling.model.DataFormatModel;
import org.apache.camel.tooling.model.JsonMapper;
import org.apache.camel.tooling.model.LanguageModel;
import org.apache.camel.tooling.model.OtherModel;
+import org.apache.camel.tooling.model.TransformerModel;
public class CqCatalog {
@@ -181,7 +182,7 @@ public class CqCatalog {
static void serialize(final Path catalogPath, ArtifactModel<?> model) {
final Path out = catalogPath.resolve(model.getKind() + "s")
- .resolve(model.getName() + ".json");
+ .resolve(model.getName().replace(":", "-") + ".json");
try {
Files.createDirectories(out.getParent());
} catch (IOException e) {
@@ -198,6 +199,9 @@ public class CqCatalog {
case dataformat:
rawJson = JsonMapper.createParameterJsonSchema((DataFormatModel) model);
break;
+ case transformer:
+ rawJson = JsonMapper.createParameterJsonSchema((TransformerModel) model);
+ break;
case other:
rawJson = JsonMapper.createJsonSchema((OtherModel) model);
break;
@@ -321,10 +325,12 @@ public class CqCatalog {
private static final String COMPONENT_DIR = CQ_CATALOG_DIR + "/components";
private static final String DATAFORMAT_DIR = CQ_CATALOG_DIR + "/dataformats";
private static final String LANGUAGE_DIR = CQ_CATALOG_DIR + "/languages";
+ private static final String TRANSFORMER_DIR = CQ_CATALOG_DIR + "/transformers";
private static final String OTHER_DIR = CQ_CATALOG_DIR + "/others";
private static final String COMPONENTS_CATALOG = CQ_CATALOG_DIR + "/components.properties";
private static final String DATA_FORMATS_CATALOG = CQ_CATALOG_DIR + "/dataformats.properties";
private static final String LANGUAGE_CATALOG = CQ_CATALOG_DIR + "/languages.properties";
+ private static final String TRANSFORMER_CATALOG = CQ_CATALOG_DIR + "/transformers.properties";
private static final String OTHER_CATALOG = CQ_CATALOG_DIR + "/others.properties";
private CamelCatalog camelCatalog;
@@ -373,6 +379,11 @@ public class CqCatalog {
return LANGUAGE_DIR;
}
+ @Override
+ public String getTransformerJSonSchemaDirectory() {
+ return TRANSFORMER_DIR;
+ }
+
@Override
public String getOtherJSonSchemaDirectory() {
return OTHER_DIR;
@@ -390,6 +401,10 @@ public class CqCatalog {
return LANGUAGE_CATALOG;
}
+ protected String getTransformerCatalog() {
+ return TRANSFORMER_CATALOG;
+ }
+
protected String getOtherCatalog() {
return OTHER_CATALOG;
}
@@ -436,6 +451,20 @@ public class CqCatalog {
return names;
}
+ @Override
+ public List<String> findTransformerNames() {
+ List<String> names = new ArrayList<>();
+ InputStream is = getCamelCatalog().getVersionManager().getResourceAsStream(getTransformerCatalog());
+ if (is != null) {
+ try {
+ CatalogHelper.loadLines(is, names);
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ return names;
+ }
+
@Override
public List<String> findOtherNames() {
List<String> names = new ArrayList<>();
diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java
index da3c906b49..8512694874 100644
--- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java
+++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqUtils.java
@@ -179,6 +179,8 @@ public class CqUtils {
return "data format";
case language:
return "language";
+ case transformer:
+ return "transformer";
case other:
return "misc. component";
default:
diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java
index 056c10109f..4202644a5f 100644
--- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java
+++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/PrepareCatalogQuarkusMojo.java
@@ -35,6 +35,7 @@ import org.apache.camel.tooling.model.DataFormatModel;
import org.apache.camel.tooling.model.LanguageModel;
import org.apache.camel.tooling.model.OtherModel;
import org.apache.camel.tooling.model.SupportLevel;
+import org.apache.camel.tooling.model.TransformerModel;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;
@@ -133,6 +134,8 @@ public class PrepareCatalogQuarkusMojo extends AbstractExtensionListMojo {
model = new LanguageModel();
} else if (extKind == Kind.dataformat) {
model = new DataFormatModel();
+ } else if (extKind == Kind.transformer) {
+ model = new TransformerModel();
} else {
model = new OtherModel();
}
diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java
index 36bd8aca48..36ba535db0 100644
--- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java
+++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java
@@ -55,6 +55,7 @@ import org.apache.camel.quarkus.maven.processor.SectionIdPostProcessor;
import org.apache.camel.tooling.model.ArtifactModel;
import org.apache.camel.tooling.model.BaseModel;
import org.apache.camel.tooling.model.ComponentModel;
+import org.apache.camel.tooling.model.TransformerModel;
import org.apache.maven.model.Dependency;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -111,6 +112,7 @@ public class UpdateExtensionDocPageMojo extends AbstractDocGeneratorMojo {
templatesUriBase, encoding);
final List<ArtifactModel<?>> models = catalog.filterModels(ext.getRuntimeArtifactIdBase())
+ .filter(artifactModel -> !(artifactModel instanceof TransformerModel))
.filter(artifactModel -> !artifactModel.getArtifactId().equals("camel-management"))
.filter(artifactModel -> !artifactModel.getArtifactId().equals("camel-yaml-io"))
.sorted(BaseModel.compareTitle())