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())