You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2021/03/25 11:21:12 UTC

[camel-quarkus] 01/14: Upgrade to Camel 3.9.0

This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit e442ecd57b98ed768ae3c2c78d76f7e7674e780a
Author: James Netherton <ja...@gmail.com>
AuthorDate: Mon Feb 22 08:01:13 2021 +0000

    Upgrade to Camel 3.9.0
---
 catalog/pom.xml                                    |  13 ---
 docs/antora-playbook-dev.yml                       |   2 +-
 docs/antora-playbook.yml                           |   2 +-
 docs/antora.yml                                    |   2 +-
 docs/modules/ROOT/nav.adoc                         |   4 +-
 .../ROOT/pages/reference/extensions/azure.adoc     |  41 -------
 .../ROOT/pages/reference/extensions/couchbase.adoc |   2 +-
 .../reference/extensions/google-bigquery.adoc      |   2 +-
 .../ROOT/pages/reference/extensions/http.adoc      |   4 +-
 .../ROOT/pages/reference/extensions/jfr.adoc       |   4 +-
 .../pages/reference/extensions/netty-http.adoc     |   2 +-
 .../ROOT/pages/reference/extensions/netty.adoc     |   2 +-
 .../ROOT/partials/reference/components/aws-cw.adoc |   1 -
 .../partials/reference/components/aws-ddb.adoc     |   1 -
 .../reference/components/aws-ddbstream.adoc        |   1 -
 .../partials/reference/components/aws-ec2.adoc     |   1 -
 .../partials/reference/components/aws-ecs.adoc     |   1 -
 .../partials/reference/components/aws-eks.adoc     |   1 -
 .../partials/reference/components/aws-iam.adoc     |   1 -
 .../reference/components/aws-kinesis-firehose.adoc |   1 -
 .../partials/reference/components/aws-kinesis.adoc |   1 -
 .../partials/reference/components/aws-kms.adoc     |   1 -
 .../partials/reference/components/aws-lambda.adoc  |   1 -
 .../ROOT/partials/reference/components/aws-mq.adoc |   1 -
 .../partials/reference/components/aws-msk.adoc     |   1 -
 .../ROOT/partials/reference/components/aws-s3.adoc |   1 -
 .../partials/reference/components/aws-sdb.adoc     |   1 -
 .../aws-secrets-manager.adoc}                      |   0
 .../partials/reference/components/aws-ses.adoc     |   1 -
 .../partials/reference/components/aws-sns.adoc     |   1 -
 .../partials/reference/components/azure-blob.adoc  |  13 ---
 .../partials/reference/components/azure-queue.adoc |  13 ---
 .../{aws-translate.adoc => google-functions.adoc}  |   0
 .../{aws-swf.adoc => google-storage.adoc}          |   0
 .../aws-sqs.adoc => others/spring-xml.adoc}        |   0
 .../camel/quarkus/core/FastCamelContext.java       |  26 +++++
 .../camel/quarkus/core/NoShutdownStrategy.java     |   3 +-
 .../quarkus/component/jfr/it/JfrTestResource.java  |   6 +-
 .../quarkus/component/jfr/CamelJfrConfig.java      |   4 +-
 extensions/azure/deployment/pom.xml                |  65 -----------
 .../component/azure/deployment/AzureProcessor.java |  36 ------
 extensions/azure/pom.xml                           |  37 ------
 extensions/azure/runtime/pom.xml                   | 114 ------------------
 .../main/resources/META-INF/quarkus-extension.yaml |  32 -----
 extensions/pom.xml                                 |   1 -
 extensions/slack/deployment/pom.xml                |   8 --
 .../component/slack/deployment/SlackProcessor.java |  23 ++++
 extensions/slack/runtime/pom.xml                   |  14 ---
 integration-tests/azure/README.adoc                |  16 ---
 integration-tests/azure/pom.xml                    | 112 ------------------
 .../component/azure/it/AzureBlobResource.java      | 117 -------------------
 .../component/azure/it/AzureQueueResource.java     | 111 ------------------
 .../src/main/resources/application.properties      |  25 ----
 .../camel/quarkus/component/azure/it/AzureIT.java  |  24 ----
 .../quarkus/component/azure/it/AzureTest.java      |  98 ----------------
 .../component/azure/it/AzureTestResource.java      | 129 ---------------------
 integration-tests/pom.xml                          |   1 -
 .../quarkus/component/slack/it/SlackResource.java  |   6 +-
 .../component/slack/it/SlackTestResource.java      |   2 +-
 .../src/test/resources/mappings/slackAuthTest.json |  37 ++++++
 .../resources/mappings/slackChatPostMessage.json   |  42 +++++++
 .../test/resources/mappings/slackGetChannels.json  |  37 ------
 .../mappings/slackGetConversationHistory.json      |  25 ++--
 .../mappings/slackGetConversationsList.json        |  42 +++++++
 .../resources/mappings/slackWebhookMesagePost.json |  30 -----
 pom.xml                                            |   4 +-
 poms/bom/pom.xml                                   |  15 ---
 tooling/scripts/test-categories.yaml               |   1 -
 68 files changed, 212 insertions(+), 1154 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 54913c9..24b6b33 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -530,19 +530,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-azure</artifactId>
-            <version>${project.version}</version>
-            <type>pom</type>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-azure-eventhubs</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/antora-playbook-dev.yml b/docs/antora-playbook-dev.yml
index 51f733e..1665c4e 100644
--- a/docs/antora-playbook-dev.yml
+++ b/docs/antora-playbook-dev.yml
@@ -26,7 +26,7 @@ content:
     start_path: docs
   - url: git@github.com:apache/camel.git
     branches:
-      - camel-3.8.x # replace ${camel.docs.branch}
+      - camel-3.9.x # replace ${camel.docs.branch}
     start_paths:
       - docs/components
   - url: git@github.com:apache/camel.git
diff --git a/docs/antora-playbook.yml b/docs/antora-playbook.yml
index 0ceede0..aa3da35 100644
--- a/docs/antora-playbook.yml
+++ b/docs/antora-playbook.yml
@@ -26,7 +26,7 @@ content:
     start_path: docs
   - url: git@github.com:apache/camel.git
     branches:
-      - camel-3.8.x # replace ${camel.docs.branch}
+      - camel-3.9.x # replace ${camel.docs.branch}
     start_paths:
       - docs/components
   - url: git@github.com:apache/camel.git
diff --git a/docs/antora.yml b/docs/antora.yml
index 00fdb1b..675c9e7 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -22,4 +22,4 @@ nav:
 - modules/ROOT/nav.adoc
 asciidoc:
   attributes:
-    cq-camel-components: 3.8.x@components # replace ${camel.docs.components.xref}
+    cq-camel-components: 3.9.x@components # replace ${camel.docs.components.xref}
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 8c42b81..ce4544f 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -53,7 +53,6 @@
 *** xref:reference/extensions/attachments.adoc[Attachments]
 *** xref:reference/extensions/avro.adoc[Avro]
 *** xref:reference/extensions/avro-rpc.adoc[Avro RPC]
-*** xref:reference/extensions/azure.adoc[Azure]
 *** xref:reference/extensions/azure-eventhubs.adoc[Azure Event Hubs]
 *** xref:reference/extensions/azure-storage-blob.adoc[Azure Storage Blob Service]
 *** xref:reference/extensions/azure-storage-queue.adoc[Azure Storage Queue Service]
@@ -172,6 +171,7 @@
 *** xref:reference/extensions/jackson.adoc[Jackson]
 *** xref:reference/extensions/jacksonxml.adoc[JacksonXML]
 *** xref:reference/extensions/jasypt.adoc[Jasypt]
+*** xref:reference/extensions/java-joor-dsl.adoc[Java jOOR DSL]
 *** xref:reference/extensions/jfr.adoc[Jfr]
 *** xref:reference/extensions/jing.adoc[Jing]
 *** xref:reference/extensions/jira.adoc[Jira]
@@ -303,6 +303,7 @@
 *** xref:reference/extensions/xchange.adoc[XChange]
 *** xref:reference/extensions/xj.adoc[XJ]
 *** xref:reference/extensions/xml-io.adoc[XML IO]
+*** xref:reference/extensions/xml-io-dsl.adoc[XML IO DSL]
 *** xref:reference/extensions/xml-jaxb.adoc[XML JAXB]
 *** xref:reference/extensions/xml-jaxp.adoc[XML JAXP]
 *** xref:reference/extensions/xmlsecurity.adoc[XML Security Sign]
@@ -312,6 +313,7 @@
 *** xref:reference/extensions/xslt.adoc[XSLT]
 *** xref:reference/extensions/xslt-saxon.adoc[XSLT Saxon]
 *** xref:reference/extensions/xstream.adoc[XStream]
+*** xref:reference/extensions/yaml-dsl.adoc[YAML DSL]
 *** xref:reference/extensions/yammer.adoc[Yammer]
 *** xref:reference/extensions/zendesk.adoc[Zendesk]
 *** xref:reference/extensions/zip-deflater.adoc[Zip Deflate Compression]
diff --git a/docs/modules/ROOT/pages/reference/extensions/azure.adoc b/docs/modules/ROOT/pages/reference/extensions/azure.adoc
deleted file mode 100644
index 005116a..0000000
--- a/docs/modules/ROOT/pages/reference/extensions/azure.adoc
+++ /dev/null
@@ -1,41 +0,0 @@
-// Do not edit directly!
-// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
-= Azure
-:page-aliases: extensions/azure.adoc
-:cq-artifact-id: camel-quarkus-azure
-:cq-native-supported: true
-:cq-status: Stable
-:cq-description: Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service
-:cq-deprecated: true
-:cq-jvm-since: 1.0.0
-:cq-native-since: 1.0.0
-
-[.badges]
-[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0##
-
-Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service
-
-== What's inside
-
-* xref:{cq-camel-components}::azure-blob-component.adoc[Azure Storage Blob Service (Deprecated) component], URI syntax: `azure-blob:containerOrBlobUri`
-* xref:{cq-camel-components}::azure-queue-component.adoc[Azure Storage Queue Service (Deprecated) component], URI syntax: `azure-queue:containerAndQueueUri`
-
-Please refer to the above links for usage and configuration details.
-
-== Maven coordinates
-
-[source,xml]
-----
-<dependency>
-    <groupId>org.apache.camel.quarkus</groupId>
-    <artifactId>camel-quarkus-azure</artifactId>
-</dependency>
-----
-
-Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
-
-== SSL in native mode
-
-This extension auto-enables SSL support in native mode. Hence you do not need to add
-`quarkus.ssl.native=true` to your `application.properties` yourself. See also
-https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].
diff --git a/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc b/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc
index 7022227..2cd6625 100644
--- a/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/couchbase.adoc
@@ -17,7 +17,7 @@ Query Couchbase Views with a poll strategy and/or perform various operations aga
 
 == What's inside
 
-* xref:{cq-camel-components}::couchbase-component.adoc[Couchbase component], URI syntax: `couchbase:protocol:hostname:port`
+* xref:{cq-camel-components}::couchbase-component.adoc[Couchbase component], URI syntax: `couchbase:protocol://hostname:port`
 
 Please refer to the above link for usage and configuration details.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc b/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc
index ed15bbf..7bd55ac 100644
--- a/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/google-bigquery.adoc
@@ -18,7 +18,7 @@ Access Google Cloud BigQuery service using SQL queries or Google Client Services
 == What's inside
 
 * xref:{cq-camel-components}::google-bigquery-component.adoc[Google BigQuery component], URI syntax: `google-bigquery:projectId:datasetId:tableId`
-* xref:{cq-camel-components}::google-bigquery-sql-component.adoc[Google BigQuery Standard SQL component], URI syntax: `google-bigquery-sql:projectId:query`
+* xref:{cq-camel-components}::google-bigquery-sql-component.adoc[Google BigQuery Standard SQL component], URI syntax: `google-bigquery-sql:projectId:queryString`
 
 Please refer to the above links for usage and configuration details.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/http.adoc b/docs/modules/ROOT/pages/reference/extensions/http.adoc
index 0198b11..2db27cc 100644
--- a/docs/modules/ROOT/pages/reference/extensions/http.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/http.adoc
@@ -17,8 +17,8 @@ Send requests to external HTTP servers using Apache HTTP Client 4.x.
 
 == What's inside
 
-* xref:{cq-camel-components}::http-component.adoc[HTTP component], URI syntax: `http:httpUri`
-* xref:{cq-camel-components}::http-component.adoc[HTTPS (Secure) component], URI syntax: `https:httpUri`
+* xref:{cq-camel-components}::http-component.adoc[HTTP component], URI syntax: `http://httpUri`
+* xref:{cq-camel-components}::http-component.adoc[HTTPS (Secure) component], URI syntax: `https://httpUri`
 
 Please refer to the above links for usage and configuration details.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/jfr.adoc b/docs/modules/ROOT/pages/reference/extensions/jfr.adoc
index 130e9b5..3aa9615 100644
--- a/docs/modules/ROOT/pages/reference/extensions/jfr.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/jfr.adoc
@@ -41,7 +41,7 @@ Check the xref:user-guide/index.adoc[User guide] for more information about writ
 
 |icon:lock[title=Fixed at build time] [[quarkus.camel.jfr.startup-recorder-dir]]`link:#quarkus.camel.jfr.startup-recorder-dir[quarkus.camel.jfr.startup-recorder-dir]`
 
-Directory to store the recording. By default the user home directory will be used. Use false to turn off saving the recording to disk.
+Directory to store the recording. By default the current directory will be used. Use false to turn off saving the recording to disk.
 | `string`
 | 
 
@@ -65,7 +65,7 @@ To use a specific Java Flight Recorder profile configuration, such as default or
 
 |icon:lock[title=Fixed at build time] [[quarkus.camel.jfr.startup-recorder-recording]]`link:#quarkus.camel.jfr.startup-recorder-recording[quarkus.camel.jfr.startup-recorder-recording]`
 
-To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is complete. This requires that camel-jfr is on the classpath. The default is true.
+To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is complete. This requires that camel-jfr is on the classpath. The default is false.
 | `java.lang.Boolean`
 | 
 |===
diff --git a/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc b/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc
index 5705c45..7a8b61a 100644
--- a/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/netty-http.adoc
@@ -18,7 +18,7 @@ The Netty HTTP extension provides HTTP transport on top of the xref:reference/ex
 
 == What's inside
 
-* xref:{cq-camel-components}::netty-http-component.adoc[Netty HTTP component], URI syntax: `netty-http:protocol:host:port/path`
+* xref:{cq-camel-components}::netty-http-component.adoc[Netty HTTP component], URI syntax: `netty-http:protocol://host:port/path`
 
 Please refer to the above link for usage and configuration details.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/netty.adoc b/docs/modules/ROOT/pages/reference/extensions/netty.adoc
index 367add1..9b6f5d2 100644
--- a/docs/modules/ROOT/pages/reference/extensions/netty.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/netty.adoc
@@ -17,7 +17,7 @@ Socket level networking using TCP or UDP with the Netty 4.x.
 
 == What's inside
 
-* xref:{cq-camel-components}::netty-component.adoc[Netty component], URI syntax: `netty:protocol:host:port`
+* xref:{cq-camel-components}::netty-component.adoc[Netty component], URI syntax: `netty:protocol://host:port`
 
 Please refer to the above link for usage and configuration details.
 
diff --git a/docs/modules/ROOT/partials/reference/components/aws-cw.adoc b/docs/modules/ROOT/partials/reference/components/aws-cw.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-cw.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-ddb.adoc b/docs/modules/ROOT/partials/reference/components/aws-ddb.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-ddb.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-ddbstream.adoc b/docs/modules/ROOT/partials/reference/components/aws-ddbstream.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-ddbstream.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-ec2.adoc b/docs/modules/ROOT/partials/reference/components/aws-ec2.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-ec2.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-ecs.adoc b/docs/modules/ROOT/partials/reference/components/aws-ecs.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-ecs.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-eks.adoc b/docs/modules/ROOT/partials/reference/components/aws-eks.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-eks.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-iam.adoc b/docs/modules/ROOT/partials/reference/components/aws-iam.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-iam.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-kinesis-firehose.adoc b/docs/modules/ROOT/partials/reference/components/aws-kinesis-firehose.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-kinesis-firehose.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-kinesis.adoc b/docs/modules/ROOT/partials/reference/components/aws-kinesis.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-kinesis.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-kms.adoc b/docs/modules/ROOT/partials/reference/components/aws-kms.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-kms.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-lambda.adoc b/docs/modules/ROOT/partials/reference/components/aws-lambda.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-lambda.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-mq.adoc b/docs/modules/ROOT/partials/reference/components/aws-mq.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-mq.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-msk.adoc b/docs/modules/ROOT/partials/reference/components/aws-msk.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-msk.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-s3.adoc b/docs/modules/ROOT/partials/reference/components/aws-s3.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-s3.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-sdb.adoc b/docs/modules/ROOT/partials/reference/components/aws-sdb.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-sdb.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/others/test.adoc b/docs/modules/ROOT/partials/reference/components/aws-secrets-manager.adoc
similarity index 100%
rename from docs/modules/ROOT/partials/reference/others/test.adoc
rename to docs/modules/ROOT/partials/reference/components/aws-secrets-manager.adoc
diff --git a/docs/modules/ROOT/partials/reference/components/aws-ses.adoc b/docs/modules/ROOT/partials/reference/components/aws-ses.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-ses.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/aws-sns.adoc b/docs/modules/ROOT/partials/reference/components/aws-sns.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-sns.adoc
+++ /dev/null
@@ -1 +0,0 @@
-// Empty partial for a Camel bit unsupported by Camel Quarkus to avoid warnings when this file is included from a Camel page
diff --git a/docs/modules/ROOT/partials/reference/components/azure-blob.adoc b/docs/modules/ROOT/partials/reference/components/azure-blob.adoc
deleted file mode 100644
index 3533347..0000000
--- a/docs/modules/ROOT/partials/reference/components/azure-blob.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-// Do not edit directly!
-// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
-:cq-artifact-id: camel-quarkus-azure
-:cq-artifact-id-base: azure
-:cq-native-supported: true
-:cq-status: Stable
-:cq-deprecated: true
-:cq-jvm-since: 1.0.0
-:cq-native-since: 1.0.0
-:cq-camel-part-name: azure-blob
-:cq-camel-part-title: Azure Storage Blob Service (Deprecated)
-:cq-camel-part-description: Store and retrieve blobs from Azure Storage Blob Service.
-:cq-extension-page-title: Azure
diff --git a/docs/modules/ROOT/partials/reference/components/azure-queue.adoc b/docs/modules/ROOT/partials/reference/components/azure-queue.adoc
deleted file mode 100644
index f0b6958..0000000
--- a/docs/modules/ROOT/partials/reference/components/azure-queue.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-// Do not edit directly!
-// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
-:cq-artifact-id: camel-quarkus-azure
-:cq-artifact-id-base: azure
-:cq-native-supported: true
-:cq-status: Stable
-:cq-deprecated: true
-:cq-jvm-since: 1.0.0
-:cq-native-since: 1.0.0
-:cq-camel-part-name: azure-queue
-:cq-camel-part-title: Azure Storage Queue Service (Deprecated)
-:cq-camel-part-description: Store and retrieve messages from Azure Storage Queue Service.
-:cq-extension-page-title: Azure
diff --git a/docs/modules/ROOT/partials/reference/components/aws-translate.adoc b/docs/modules/ROOT/partials/reference/components/google-functions.adoc
similarity index 100%
rename from docs/modules/ROOT/partials/reference/components/aws-translate.adoc
rename to docs/modules/ROOT/partials/reference/components/google-functions.adoc
diff --git a/docs/modules/ROOT/partials/reference/components/aws-swf.adoc b/docs/modules/ROOT/partials/reference/components/google-storage.adoc
similarity index 100%
rename from docs/modules/ROOT/partials/reference/components/aws-swf.adoc
rename to docs/modules/ROOT/partials/reference/components/google-storage.adoc
diff --git a/docs/modules/ROOT/partials/reference/components/aws-sqs.adoc b/docs/modules/ROOT/partials/reference/others/spring-xml.adoc
similarity index 100%
rename from docs/modules/ROOT/partials/reference/components/aws-sqs.adoc
rename to docs/modules/ROOT/partials/reference/others/spring-xml.adoc
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 43ed897..a035c07 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
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.function.Function;
 
@@ -51,6 +52,7 @@ import org.apache.camel.impl.engine.DefaultComponentResolver;
 import org.apache.camel.impl.engine.DefaultConfigurerResolver;
 import org.apache.camel.impl.engine.DefaultDataFormatResolver;
 import org.apache.camel.impl.engine.DefaultEndpointRegistry;
+import org.apache.camel.impl.engine.DefaultExchangeFactoryManager;
 import org.apache.camel.impl.engine.DefaultExecutorServiceManager;
 import org.apache.camel.impl.engine.DefaultHeadersMapFactory;
 import org.apache.camel.impl.engine.DefaultInflightRepository;
@@ -72,6 +74,7 @@ import org.apache.camel.impl.engine.DefaultUnitOfWorkFactory;
 import org.apache.camel.impl.engine.DefaultUriFactoryResolver;
 import org.apache.camel.impl.engine.DefaultValidatorRegistry;
 import org.apache.camel.impl.engine.EndpointKey;
+import org.apache.camel.impl.engine.PrototypeExchangeFactory;
 import org.apache.camel.impl.engine.RouteService;
 import org.apache.camel.impl.engine.TransformerKey;
 import org.apache.camel.impl.engine.ValidatorKey;
@@ -116,6 +119,8 @@ import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.DataType;
 import org.apache.camel.spi.DeferServiceFactory;
 import org.apache.camel.spi.EndpointRegistry;
+import org.apache.camel.spi.ExchangeFactory;
+import org.apache.camel.spi.ExchangeFactoryManager;
 import org.apache.camel.spi.ExecutorServiceManager;
 import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.HeadersMapFactory;
@@ -650,6 +655,11 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
     }
 
     @Override
+    public String getTestExcludeRoutes() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void startRouteDefinitions() throws Exception {
         List<RouteDefinition> routeDefinitions = model.getRouteDefinitions();
         if (routeDefinitions != null) {
@@ -658,6 +668,22 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
     }
 
     @Override
+    protected ExchangeFactory createExchangeFactory() {
+        Optional<ExchangeFactory> result = ResolverHelper.resolveService(
+                getCamelContextReference(),
+                getBootstrapFactoryFinder(),
+                ExchangeFactory.FACTORY,
+                ExchangeFactory.class);
+
+        return result.orElseGet(PrototypeExchangeFactory::new);
+    }
+
+    @Override
+    protected ExchangeFactoryManager createExchangeFactoryManager() {
+        return new DefaultExchangeFactoryManager();
+    }
+
+    @Override
     public List<RouteDefinition> getRouteDefinitions() {
         return model.getRouteDefinitions();
     }
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java
index d48fe02..3d6a39a 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/NoShutdownStrategy.java
@@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.LoggingLevel;
-import org.apache.camel.Service;
 import org.apache.camel.spi.RouteStartupOrder;
 import org.apache.camel.spi.ShutdownStrategy;
 
@@ -121,7 +120,7 @@ public class NoShutdownStrategy implements ShutdownStrategy {
     }
 
     @Override
-    public boolean forceShutdown(Service service) {
+    public boolean isForceShutdown() {
         return false;
     }
 
diff --git a/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java b/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java
index 6ebb231..7f6e601 100644
--- a/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java
+++ b/extensions-jvm/jfr/integration-test/src/test/java/org/apache/camel/quarkus/component/jfr/it/JfrTestResource.java
@@ -19,10 +19,10 @@ package org.apache.camel.quarkus.component.jfr.it;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.Collections;
 import java.util.Map;
 
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
 
 public class JfrTestResource implements QuarkusTestResourceLifecycleManager {
 
@@ -38,7 +38,9 @@ public class JfrTestResource implements QuarkusTestResourceLifecycleManager {
 
     @Override
     public Map<String, String> start() {
-        return Collections.singletonMap("quarkus.camel.jfr.startup-recorder-dir", JFR_RECORDINGS_DIR.toString());
+        return CollectionHelper.mapOf(
+                "quarkus.camel.jfr.startup-recorder-dir", JFR_RECORDINGS_DIR.toString(),
+                "quarkus.camel.jfr.startup-recorder-recording", "true");
     }
 
     @Override
diff --git a/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java b/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java
index 93a07d6..2e27c9e 100644
--- a/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java
+++ b/extensions-jvm/jfr/runtime/src/main/java/org/apache/camel/quarkus/component/jfr/CamelJfrConfig.java
@@ -26,7 +26,7 @@ import io.quarkus.runtime.annotations.ConfigRoot;
 public class CamelJfrConfig {
 
     /**
-     * Directory to store the recording. By default the user home directory will be used. Use false to turn off saving the
+     * Directory to store the recording. By default the current directory will be used. Use false to turn off saving the
      * recording to disk.
      */
     @ConfigItem
@@ -59,7 +59,7 @@ public class CamelJfrConfig {
 
     /**
      * To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is
-     * complete. This requires that camel-jfr is on the classpath. The default is true.
+     * complete. This requires that camel-jfr is on the classpath. The default is false.
      */
     @ConfigItem
     Optional<Boolean> startupRecorderRecording;
diff --git a/extensions/azure/deployment/pom.xml b/extensions/azure/deployment/pom.xml
deleted file mode 100644
index a851b84..0000000
--- a/extensions/azure/deployment/pom.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-azure-parent</artifactId>
-        <version>1.8.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>camel-quarkus-azure-deployment</artifactId>
-    <name>Camel Quarkus :: Azure :: Deployment</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-core-deployment</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-jaxp-deployment</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-azure</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>io.quarkus</groupId>
-                            <artifactId>quarkus-extension-processor</artifactId>
-                            <version>${quarkus.version}</version>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/extensions/azure/deployment/src/main/java/org/apache/camel/quarkus/component/azure/deployment/AzureProcessor.java b/extensions/azure/deployment/src/main/java/org/apache/camel/quarkus/component/azure/deployment/AzureProcessor.java
deleted file mode 100644
index 8901259..0000000
--- a/extensions/azure/deployment/src/main/java/org/apache/camel/quarkus/component/azure/deployment/AzureProcessor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.azure.deployment;
-
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
-
-class AzureProcessor {
-
-    private static final String FEATURE = "camel-azure";
-
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
-
-    @BuildStep
-    ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
-        return new ExtensionSslNativeSupportBuildItem(FEATURE);
-    }
-}
diff --git a/extensions/azure/pom.xml b/extensions/azure/pom.xml
deleted file mode 100644
index b559ecb..0000000
--- a/extensions/azure/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-build-parent</artifactId>
-        <version>1.8.0-SNAPSHOT</version>
-        <relativePath>../../poms/build-parent/pom.xml</relativePath>
-    </parent>
-
-    <artifactId>camel-quarkus-azure-parent</artifactId>
-    <name>Camel Quarkus :: Azure</name>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>deployment</module>
-        <module>runtime</module>
-    </modules>
-</project>
diff --git a/extensions/azure/runtime/pom.xml b/extensions/azure/runtime/pom.xml
deleted file mode 100644
index 57f8b5d..0000000
--- a/extensions/azure/runtime/pom.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-azure-parent</artifactId>
-        <version>1.8.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>camel-quarkus-azure</artifactId>
-    <name>Camel Quarkus :: Azure :: Runtime</name>
-    <description>Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service</description>
-
-    <properties>
-        <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince>
-        <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-bom</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-jaxp</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-azure</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>io.quarkus</groupId>
-                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>io.quarkus</groupId>
-                            <artifactId>quarkus-extension-processor</artifactId>
-                            <version>${quarkus.version}</version>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <profiles>
-        <profile>
-            <id>full</id>
-            <activation>
-                <property>
-                    <name>!quickly</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.camel.quarkus</groupId>
-                        <artifactId>camel-quarkus-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>update-extension-doc-page</id>
-                                <goals>
-                                    <goal>update-extension-doc-page</goal>
-                                </goals>
-                                <phase>process-classes</phase>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-</project>
diff --git a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
deleted file mode 100644
index 38a099a..0000000
--- a/extensions/azure/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# This is a generated file. Do not edit directly!
-# To re-generate, run the following command from the top level directory:
-#
-#   mvn -N cq:update-quarkus-metadata
-#
----
-name: "Camel Azure"
-description: "Store and retrieve blobs from Azure Storage Blob Service or store and retrieve messages from Azure Storage Queue Service"
-metadata:
-  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/azure.html"
-  categories:
-  - "integration"
-  status:
-  - "stable"
-  - "deprecated"
\ No newline at end of file
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 0041223..f83d486 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -63,7 +63,6 @@
         <module>aws2-sqs</module>
         <module>aws2-sts</module>
         <module>aws2-translate</module>
-        <module>azure</module>
         <module>azure-eventhubs</module>
         <module>azure-storage-blob</module>
         <module>azure-storage-queue</module>
diff --git a/extensions/slack/deployment/pom.xml b/extensions/slack/deployment/pom.xml
index edabb01..f5e9b98 100644
--- a/extensions/slack/deployment/pom.xml
+++ b/extensions/slack/deployment/pom.xml
@@ -36,14 +36,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-slack</artifactId>
         </dependency>
     </dependencies>
diff --git a/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java b/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java
index fbc8054..b8af065 100644
--- a/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java
+++ b/extensions/slack/deployment/src/main/java/org/apache/camel/quarkus/component/slack/deployment/SlackProcessor.java
@@ -16,9 +16,14 @@
  */
 package org.apache.camel.quarkus.component.slack.deployment;
 
+import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.jboss.jandex.IndexView;
 
 class SlackProcessor {
 
@@ -33,4 +38,22 @@ class SlackProcessor {
     ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
         return new ExtensionSslNativeSupportBuildItem(FEATURE);
     }
+
+    @BuildStep
+    void indexDependencies(BuildProducer<IndexDependencyBuildItem> indexedDependencies) {
+        indexedDependencies.produce(new IndexDependencyBuildItem("com.slack.api", "slack-api-client"));
+        indexedDependencies.produce(new IndexDependencyBuildItem("com.slack.api", "slack-api-model"));
+    }
+
+    @BuildStep
+    ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem combinedIndex) {
+        IndexView index = combinedIndex.getIndex();
+        String[] slackApiClasses = index.getKnownClasses()
+                .stream()
+                .map(classInfo -> classInfo.name().toString())
+                .filter(className -> className.startsWith("com.slack.api.model")
+                        || className.startsWith("com.slack.api.methods.response"))
+                .toArray(String[]::new);
+        return new ReflectiveClassBuildItem(false, true, slackApiClasses);
+    }
 }
diff --git a/extensions/slack/runtime/pom.xml b/extensions/slack/runtime/pom.xml
index f8eb9fd..fee323e 100644
--- a/extensions/slack/runtime/pom.xml
+++ b/extensions/slack/runtime/pom.xml
@@ -52,22 +52,8 @@
             <artifactId>camel-quarkus-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-support-commons-logging</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-support-httpclient</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-slack</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
     </dependencies>
 
diff --git a/integration-tests/azure/README.adoc b/integration-tests/azure/README.adoc
deleted file mode 100644
index d8f2f82..0000000
--- a/integration-tests/azure/README.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-== Camel Quarkus Azure (deprecated client v8) integration tests
-
-By default the integration tests run against a local https://github.com/Azure/Azurite[Azurite] container.
-
-To run the tests against the real remote Azure API, you need the following:
-
-* A https://docs.microsoft.com/en-us/azure/storage/common/storage-account-create?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&tabs=azure-portal[general-purpose v2 Azure storage account]
-* View the https://docs.microsoft.com/en-us/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#view-account-access-keys[account keys] and set the following environment variables:
-+
-[source,shell]
-----
-export AZURE_STORAGE_ACCOUNT_NAME=my-account-name
-export AZURE_STORAGE_ACCOUNT_KEY=my-account-key
-----
-
-You may want to `export CAMEL_QUARKUS_START_MOCK_BACKEND=false` to avoid starting he the local Azurite container and make sure that you test against the real remote Azure API.
diff --git a/integration-tests/azure/pom.xml b/integration-tests/azure/pom.xml
deleted file mode 100644
index c0a5c40..0000000
--- a/integration-tests/azure/pom.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-integration-tests</artifactId>
-        <version>1.8.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-quarkus-integration-test-azure</artifactId>
-    <name>Camel Quarkus :: Integration Tests :: Azure</name>
-    <description>Integration tests for Camel Quarkus Azure extension</description>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-azure</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy</artifactId>
-        </dependency>
-
-        <!-- test dependencies -->
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.rest-assured</groupId>
-            <artifactId>rest-assured</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-testcontainers-support</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-integration-test-support-mock-backend</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-azure-deployment</artifactId>
-            <version>${project.version}</version>
-            <type>pom</type>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-    </dependencies>
-
-
-    <profiles>
-        <profile>
-            <id>native</id>
-            <activation>
-                <property>
-                    <name>native</name>
-                </property>
-            </activation>
-            <properties>
-                <quarkus.package.type>native</quarkus.package.type>
-                <quarkus.native.enable-https-url-handler>true</quarkus.native.enable-https-url-handler>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                    <goal>verify</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
diff --git a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureBlobResource.java b/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureBlobResource.java
deleted file mode 100644
index 0a2529e..0000000
--- a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureBlobResource.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.azure.it;
-
-import java.io.ByteArrayInputStream;
-import java.net.URI;
-import java.nio.charset.StandardCharsets;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PATCH;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import com.microsoft.azure.storage.StorageCredentials;
-import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
-import com.microsoft.azure.storage.blob.CloudBlob;
-import com.microsoft.azure.storage.blob.CloudBlockBlob;
-import org.apache.camel.Exchange;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.component.azure.blob.BlobBlock;
-import org.eclipse.microprofile.config.inject.ConfigProperty;
-
-@Path("/azure")
-@ApplicationScoped
-public class AzureBlobResource {
-    private static final String BLOB_NAME = "test";
-
-    @Inject
-    ProducerTemplate producerTemplate;
-
-    @ConfigProperty(name = "azure.storage.account-name")
-    String azureStorageAccountName;
-
-    @ConfigProperty(name = "azure.storage.account-key")
-    String azureStorageAccountKey;
-
-    @ConfigProperty(name = "azure.blob.service.url")
-    String azureBlobServiceUrl;
-
-    @ConfigProperty(name = "azure.blob.container.name")
-    String azureBlobContainerName;
-
-    @javax.enterprise.inject.Produces
-    @Named("azureBlobClient")
-    public CloudBlob createBlobClient() throws Exception {
-        URI uri = new URI(azureBlobServiceUrl + "/" + BLOB_NAME);
-        StorageCredentials credentials = new StorageCredentialsAccountAndKey(azureStorageAccountName, azureStorageAccountKey);
-        CloudBlockBlob cloudBlockBlob = new CloudBlockBlob(uri, credentials);
-        return cloudBlockBlob;
-    }
-
-    @Path("/blob/create")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    public Response createBlob(String message) throws Exception {
-        BlobBlock blob = new BlobBlock(new ByteArrayInputStream(message.getBytes(StandardCharsets.UTF_8)));
-        producerTemplate.sendBody(
-                "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME
-                        + "?operation=uploadBlobBlocks&azureBlobClient=#azureBlobClient&validateClientURI=false",
-                blob);
-        return Response.created(new URI("https://camel.apache.org/")).build();
-    }
-
-    @Path("/blob/read")
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String readBlob() throws Exception {
-        return producerTemplate.requestBodyAndHeader(
-                "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME
-                        + "?operation=getBlob&azureBlobClient=#azureBlobClient&validateClientURI=false",
-                null, Exchange.CHARSET_NAME, StandardCharsets.UTF_8.name(), String.class);
-    }
-
-    @Path("/blob/update")
-    @PATCH
-    @Consumes(MediaType.TEXT_PLAIN)
-    public Response updateBlob(String message) throws Exception {
-        producerTemplate.sendBody(
-                "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME
-                        + "?operation=updateBlockBlob&azureBlobClient=#azureBlobClient&validateClientURI=false",
-                message);
-        return Response.ok().build();
-    }
-
-    @Path("/blob/delete")
-    @DELETE
-    public Response deleteBlob() throws Exception {
-        producerTemplate.sendBody(
-                "azure-blob://" + azureStorageAccountName + "/" + azureBlobContainerName + "/" + BLOB_NAME
-                        + "?operation=deleteBlob&azureBlobClient=#azureBlobClient&validateClientURI=false",
-                null);
-        return Response.noContent().build();
-    }
-
-}
diff --git a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureQueueResource.java b/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureQueueResource.java
deleted file mode 100644
index 511ace3..0000000
--- a/integration-tests/azure/src/main/java/org/apache/camel/quarkus/component/azure/it/AzureQueueResource.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.azure.it;
-
-import java.net.URI;
-import java.util.UUID;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import com.microsoft.azure.storage.StorageCredentials;
-import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
-import com.microsoft.azure.storage.queue.CloudQueue;
-import com.microsoft.azure.storage.queue.CloudQueueMessage;
-import io.quarkus.arc.Unremovable;
-import org.apache.camel.ProducerTemplate;
-import org.eclipse.microprofile.config.inject.ConfigProperty;
-
-@Path("/azure")
-@ApplicationScoped
-public class AzureQueueResource {
-
-    private static final String QUEUE_NAME = "camel-quarkus-" + UUID.randomUUID().toString();
-
-    @Inject
-    ProducerTemplate producerTemplate;
-
-    @ConfigProperty(name = "azure.storage.account-name")
-    String azureStorageAccountName;
-
-    @ConfigProperty(name = "azure.storage.account-key")
-    String azureStorageAccountKey;
-
-    @ConfigProperty(name = "azure.queue.service.url")
-    String azureQueueServiceUrl;
-
-    @javax.enterprise.inject.Produces
-    @Named("azureQueueClient")
-    @Unremovable
-    public CloudQueue createQueueClient() throws Exception {
-        URI uri = new URI(azureQueueServiceUrl + "/" + QUEUE_NAME);
-        StorageCredentials credentials = new StorageCredentialsAccountAndKey(azureStorageAccountName, azureStorageAccountKey);
-        return new CloudQueue(uri, credentials);
-    }
-
-    @Path("/queue/create")
-    @POST
-    public Response createQueue() throws Exception {
-        producerTemplate.sendBody(
-                "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME
-                        + "?operation=createQueue&azureQueueClient=#azureQueueClient&validateClientURI=false",
-                null);
-        return Response.created(new URI("https://camel.apache.org/")).build();
-    }
-
-    @Path("/queue/read")
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public String retrieveMessage() throws Exception {
-        CloudQueueMessage message = producerTemplate.requestBody(
-                "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME
-                        + "?operation=retrieveMessage&azureQueueClient=#azureQueueClient&validateClientURI=false",
-                null, CloudQueueMessage.class);
-        return message.getMessageContentAsString();
-    }
-
-    @Path("/queue/message")
-    @POST
-    @Consumes(MediaType.TEXT_PLAIN)
-    public Response addMessage(String message) throws Exception {
-        producerTemplate.sendBody(
-                "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME
-                        + "?operation=addMessage&azureQueueClient=#azureQueueClient&validateClientURI=false",
-                message);
-        return Response.created(new URI("https://camel.apache.org/")).build();
-    }
-
-    @Path("/queue/delete")
-    @DELETE
-    public Response deleteQueue() throws Exception {
-        producerTemplate.sendBody(
-                "azure-queue://" + azureStorageAccountName + "/" + QUEUE_NAME
-                        + "?operation=deleteQueue&azureQueueClient=#azureQueueClient&validateClientURI=false",
-                null);
-        return Response.noContent().build();
-    }
-
-}
diff --git a/integration-tests/azure/src/main/resources/application.properties b/integration-tests/azure/src/main/resources/application.properties
deleted file mode 100644
index 23c1c40..0000000
--- a/integration-tests/azure/src/main/resources/application.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-#
-
-
-# Azurite test account credentials
-azurite.storage.account.name = devstoreaccount1
-azurite.storage.account.key = Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
-
-azure.storage.account-name = ${AZURE_STORAGE_ACCOUNT_NAME:${azurite.storage.account.name}}
-azure.storage.account-key = ${AZURE_STORAGE_ACCOUNT_KEY:${azurite.storage.account.key}}
diff --git a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureIT.java b/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureIT.java
deleted file mode 100644
index 5c0d3e1..0000000
--- a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureIT.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.azure.it;
-
-import io.quarkus.test.junit.NativeImageTest;
-
-@NativeImageTest
-class AzureIT extends AzureTest {
-
-}
diff --git a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTest.java b/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTest.java
deleted file mode 100644
index d27ffab..0000000
--- a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.azure.it;
-
-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.Test;
-
-import static org.hamcrest.core.Is.is;
-
-@QuarkusTest
-@QuarkusTestResource(AzureTestResource.class)
-class AzureTest {
-
-    @Test
-    public void testAzureBlobComponent() {
-        String blobContent = "Hello Camel Quarkus Azure Blob";
-
-        // Create
-        RestAssured.given()
-                .contentType(ContentType.TEXT)
-                .body(blobContent)
-                .post("/azure/blob/create")
-                .then()
-                .statusCode(201);
-
-        // Read
-        RestAssured.get("/azure/blob/read")
-                .then()
-                .statusCode(200)
-                .body(is(blobContent));
-
-        // Update
-        String updatedContent = blobContent + " updated";
-        RestAssured.given()
-                .contentType(ContentType.TEXT)
-                .body(updatedContent)
-                .patch("/azure/blob/update")
-                .then()
-                .statusCode(200);
-
-        RestAssured.get("/azure/blob/read")
-                .then()
-                .statusCode(200)
-                .body(is(updatedContent));
-
-        // Delete
-        RestAssured.delete("/azure/blob/delete")
-                .then()
-                .statusCode(204);
-    }
-
-    @Test
-    public void testAzureQueueComponent() {
-        String message = "Hello Camel Quarkus Azure Queue";
-
-        // Create
-        RestAssured.given()
-                .contentType(ContentType.TEXT)
-                .post("/azure/queue/create")
-                .then()
-                .statusCode(201);
-
-        RestAssured.given()
-                .contentType(ContentType.TEXT)
-                .body(message)
-                .post("/azure/queue/message")
-                .then()
-                .statusCode(201);
-
-        // Read
-        RestAssured.get("/azure/queue/read")
-                .then()
-                .statusCode(200)
-                .body(is(message));
-
-        // Delete
-        RestAssured.delete("/azure/queue/delete")
-                .then()
-                .statusCode(204);
-    }
-}
diff --git a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTestResource.java b/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTestResource.java
deleted file mode 100644
index 992c6b1..0000000
--- a/integration-tests/azure/src/test/java/org/apache/camel/quarkus/component/azure/it/AzureTestResource.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.camel.quarkus.component.azure.it;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Map;
-import java.util.UUID;
-
-import com.microsoft.azure.storage.StorageCredentials;
-import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
-import com.microsoft.azure.storage.StorageException;
-import com.microsoft.azure.storage.blob.CloudBlobContainer;
-import io.quarkus.runtime.configuration.ConfigUtils;
-import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
-import io.smallrye.config.SmallRyeConfig;
-import org.apache.camel.quarkus.test.mock.backend.MockBackendUtils;
-import org.apache.camel.util.CollectionHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.output.Slf4jLogConsumer;
-import org.testcontainers.containers.wait.strategy.Wait;
-
-public class AzureTestResource implements QuarkusTestResourceLifecycleManager {
-    private static final Logger LOGGER = LoggerFactory.getLogger(AzureTestResource.class);
-    private static final String AZURITE_IMAGE = "mcr.microsoft.com/azure-storage/azurite:3.9.0";
-    private static final int BLOB_SERVICE_PORT = 10000;
-    private static final int QUEUE_SERVICE_PORT = 10001;
-
-    private GenericContainer<?> container;
-    private CloudBlobContainer blobContainer;
-
-    @Override
-    public Map<String, String> start() {
-
-        final SmallRyeConfig config = ConfigUtils.configBuilder(true).build();
-
-        final String realAzureStorageAccountName = System.getenv("AZURE_STORAGE_ACCOUNT_NAME");
-        final boolean realCredentialsProvided = realAzureStorageAccountName != null
-                && System.getenv("AZURE_STORAGE_ACCOUNT_KEY") != null;
-
-        final String azureBlobContainername = "camel-quarkus-" + UUID.randomUUID().toString();
-
-        final String azureStorageAccountName = config
-                .getValue("azure.storage.account-name", String.class);
-        final String azureStorageAccountKey = config
-                .getValue("azure.storage.account-key", String.class);
-        final Map<String, String> result;
-        final boolean startMockBackend = MockBackendUtils.startMockBackend(false);
-        if (startMockBackend && !realCredentialsProvided) {
-            MockBackendUtils.logMockBackendUsed();
-            try {
-                container = new GenericContainer<>(AZURITE_IMAGE)
-                        .withExposedPorts(BLOB_SERVICE_PORT, QUEUE_SERVICE_PORT)
-                        .withLogConsumer(new Slf4jLogConsumer(LOGGER))
-                        .waitingFor(Wait.forListeningPort());
-                container.start();
-
-                final String blobServiceUrl = "http://" + container.getContainerIpAddress() + ":"
-                        + container.getMappedPort(BLOB_SERVICE_PORT) + "/" + azureStorageAccountName + "/"
-                        + azureBlobContainername;
-                final String queueServiceUrl = "http://" + container.getContainerIpAddress() + ":"
-                        + container.getMappedPort(QUEUE_SERVICE_PORT) + "/" + azureStorageAccountName;
-
-                result = CollectionHelper.mapOf(
-                        "azure.blob.container.name", azureBlobContainername,
-                        "azure.blob.service.url", blobServiceUrl,
-                        "azure.queue.service.url", queueServiceUrl);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        } else {
-            if (!startMockBackend && !realCredentialsProvided) {
-                throw new IllegalStateException(
-                        "Set AZURE_STORAGE_ACCOUNT_NAME and AZURE_STORAGE_ACCOUNT_KEY env vars if you set CAMEL_QUARKUS_START_MOCK_BACKEND=false");
-            }
-            MockBackendUtils.logRealBackendUsed();
-            result = CollectionHelper.mapOf(
-                    "azure.blob.container.name", azureBlobContainername,
-                    "azure.blob.service.url",
-                    "https://" + realAzureStorageAccountName + ".blob.core.windows.net/" + azureBlobContainername,
-                    "azure.queue.service.url", "https://" + realAzureStorageAccountName + ".queue.core.windows.net");
-        }
-
-        final StorageCredentials credentials = new StorageCredentialsAccountAndKey(azureStorageAccountName,
-                azureStorageAccountKey);
-        try {
-            blobContainer = new CloudBlobContainer(new URI(result.get("azure.blob.service.url")), credentials);
-            blobContainer.create();
-        } catch (StorageException | URISyntaxException e) {
-            throw new RuntimeException(e);
-        }
-        return result;
-    }
-
-    @Override
-    public void stop() {
-        if (blobContainer != null) {
-            try {
-                blobContainer.delete();
-            } catch (StorageException e) {
-                throw new RuntimeException(e);
-            }
-        }
-        try {
-            if (container != null) {
-                container.stop();
-            }
-        } catch (Exception e) {
-            // ignored
-        }
-    }
-}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 6321b16..77d2fb3 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -71,7 +71,6 @@
         <module>avro-rpc</module>
         <module>aws2</module>
         <module>aws2-grouped</module>
-        <module>azure</module>
         <module>azure-eventhubs</module>
         <module>azure-storage-blob</module>
         <module>azure-storage-queue</module>
diff --git a/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java b/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java
index a8a1556..2d1ed53 100644
--- a/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java
+++ b/integration-tests/slack/src/main/java/org/apache/camel/quarkus/component/slack/it/SlackResource.java
@@ -28,9 +28,9 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
+import com.slack.api.model.Message;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
-import org.apache.camel.component.slack.helper.SlackMessage;
 
 @Path("/slack")
 @ApplicationScoped
@@ -48,8 +48,8 @@ public class SlackResource {
     @GET
     @Produces(MediaType.TEXT_PLAIN)
     public String getSlackMessages() throws Exception {
-        SlackMessage message = consumerTemplate.receiveBody("slack://general?maxResults=1&" + SLACK_AUTH_PARAMS,
-                SlackMessage.class);
+        Message message = consumerTemplate.receiveBody("slack://general?maxResults=1&" + SLACK_AUTH_PARAMS,
+                5000L, Message.class);
         return message.getText();
     }
 
diff --git a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java
index 1ce4ffc..711362f 100644
--- a/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java
+++ b/integration-tests/slack/src/test/java/org/apache/camel/quarkus/component/slack/it/SlackTestResource.java
@@ -23,7 +23,7 @@ import org.apache.camel.util.CollectionHelper;
 
 public class SlackTestResource extends WireMockTestResourceLifecycleManager {
 
-    private static final String SLACK_API_BASE_URL = "https://api.slack.com/";
+    private static final String SLACK_API_BASE_URL = "https://slack.com";
     private static final String SLACK_ENV_WEBHOOK_URL = "SLACK_WEBHOOK_URL";
     private static final String SLACK_ENV_SERVER_URL = "SLACK_SERVER_URL";
     private static final String SLACK_ENV_TOKEN = "SLACK_TOKEN";
diff --git a/integration-tests/slack/src/test/resources/mappings/slackAuthTest.json b/integration-tests/slack/src/test/resources/mappings/slackAuthTest.json
new file mode 100644
index 0000000..b6aba8c
--- /dev/null
+++ b/integration-tests/slack/src/test/resources/mappings/slackAuthTest.json
@@ -0,0 +1,37 @@
+{
+  "id" : "7dacd03f-aef6-43c6-8496-2e21b22eac15",
+  "name" : "authtest",
+  "request" : {
+    "url" : "/api/auth.test",
+    "method" : "POST"
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"ok\":true,\"url\":\"https:\\/\\/camel-testing-6y19658.slack.com\\/\",\"team\":\"camel testing\",\"user\":\"api_test\",\"team_id\":\"test\",\"user_id\":\"test\",\"bot_id\":\"test\",\"is_enterprise_install\":false}",
+    "headers" : {
+      "date" : "Wed, 10 Mar 2021 12:02:58 GMT",
+      "server" : "Apache",
+      "x-xss-protection" : "0",
+      "pragma" : "no-cache",
+      "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history",
+      "cache-control" : "private, no-cache, no-store, must-revalidate",
+      "x-slack-backend" : "r",
+      "x-slack-req-id" : "d4bee45f319100a5614104963576aff2",
+      "strict-transport-security" : "max-age=31536000; includeSubDomains; preload",
+      "referrer-policy" : "no-referrer",
+      "x-content-type-options" : "nosniff",
+      "expires" : "Mon, 26 Jul 1997 05:00:00 GMT",
+      "vary" : "Accept-Encoding",
+      "content-type" : "application/json; charset=utf-8",
+      "x-envoy-upstream-service-time" : "8",
+      "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow",
+      "x-server" : "slack-www-hhvm-main-iad-wti4",
+      "x-via" : "envoy-www-iad-vpez, haproxy-edge-lhr-ubwz",
+      "x-slack-shared-secret-outcome" : "shared-secret",
+      "via" : "envoy-www-iad-vpez"
+    }
+  },
+  "uuid" : "7dacd03f-aef6-43c6-8496-2e21b22eac15",
+  "persistent" : true,
+  "insertionIndex" : 1
+}
\ No newline at end of file
diff --git a/integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json
new file mode 100644
index 0000000..825527a
--- /dev/null
+++ b/integration-tests/slack/src/test/resources/mappings/slackChatPostMessage.json
@@ -0,0 +1,42 @@
+{
+  "id" : "c86380a0-2c6e-41ec-8183-467013109f96",
+  "name" : "chatpostmessage",
+  "request" : {
+    "url" : "/api/chat.postMessage",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalTo" : "channel=general&text=Hello%20Camel%20Quarkus%20Slack&link_names=0&mrkdwn=1&unfurl_links=0&unfurl_media=0&reply_broadcast=0",
+      "caseInsensitive" : false
+    } ]
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"ok\":true,\"channel\":\"test\",\"ts\":\"1615377778.002900\",\"message\":{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.c [...]
+    "headers" : {
+      "date" : "Wed, 10 Mar 2021 12:02:58 GMT",
+      "server" : "Apache",
+      "x-xss-protection" : "0",
+      "pragma" : "no-cache",
+      "cache-control" : "private, no-cache, no-store, must-revalidate",
+      "strict-transport-security" : "max-age=31536000; includeSubDomains; preload",
+      "x-slack-req-id" : "f353e4e5fc6450a0ca4a32ed0ad4e203",
+      "x-content-type-options" : "nosniff",
+      "referrer-policy" : "no-referrer",
+      "x-slack-backend" : "r",
+      "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history",
+      "x-accepted-oauth-scopes" : "chat:write",
+      "expires" : "Mon, 26 Jul 1997 05:00:00 GMT",
+      "vary" : "Accept-Encoding",
+      "content-type" : "application/json; charset=utf-8",
+      "x-envoy-upstream-service-time" : "61",
+      "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow",
+      "x-server" : "slack-www-hhvm-main-iad-au28",
+      "x-via" : "envoy-www-iad-yrq3, haproxy-edge-lhr-ubwz",
+      "x-slack-shared-secret-outcome" : "shared-secret",
+      "via" : "envoy-www-iad-yrq3"
+    }
+  },
+  "uuid" : "c86380a0-2c6e-41ec-8183-467013109f96",
+  "persistent" : true,
+  "insertionIndex" : 2
+}
\ No newline at end of file
diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetChannels.json b/integration-tests/slack/src/test/resources/mappings/slackGetChannels.json
deleted file mode 100644
index ec06cbd..0000000
--- a/integration-tests/slack/src/test/resources/mappings/slackGetChannels.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "id" : "2a011f82-a594-4f21-91f6-7be02c035fa5",
-  "name" : "api_conversationslist",
-  "request" : {
-    "url" : "/api/conversations.list",
-    "method" : "POST",
-    "bodyPatterns" : [ {
-      "equalTo" : "token=test-token",
-      "caseInsensitive" : false
-    } ]
-  },
-  "response" : {
-    "status" : 200,
-    "body" : "{\"ok\":true,\"channels\":[{\"id\":\"CPT2U8YSK\",\"name\":\"random\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904169,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"random\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"UPJPHCRUH\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"TPR71CS7J\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_shared\":f [...]
-    "headers" : {
-      "date" : "Mon, 02 Nov 2020 09:53:19 GMT",
-      "server" : "Apache",
-      "x-xss-protection" : "0",
-      "pragma" : "no-cache",
-      "cache-control" : "private, no-cache, no-store, must-revalidate",
-      "strict-transport-security" : "max-age=31536000; includeSubDomains; preload",
-      "x-slack-req-id" : "8500fbbc3969104df3a1a00fcf57ca3c",
-      "x-content-type-options" : "nosniff",
-      "referrer-policy" : "no-referrer",
-      "x-slack-backend" : "r",
-      "x-oauth-scopes" : "read,client,admin,identify,post,apps",
-      "x-accepted-oauth-scopes" : "channels:read,groups:read,mpim:read,im:read,read",
-      "expires" : "Mon, 26 Jul 1997 05:00:00 GMT",
-      "vary" : "Accept-Encoding",
-      "content-type" : "application/json; charset=utf-8",
-      "x-via" : "haproxy-www-0tj6,haproxy-edge-lhr-fchm"
-    }
-  },
-  "uuid" : "2a011f82-a594-4f21-91f6-7be02c035fa5",
-  "persistent" : true,
-  "insertionIndex" : 2
-}
\ No newline at end of file
diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json
index 1d9fbff..5dba994 100644
--- a/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json
+++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationHistory.json
@@ -1,37 +1,42 @@
 {
-  "id" : "6e638406-ee78-4a8d-baff-bf20096039ca",
-  "name" : "api_conversationshistory",
+  "id" : "e4c0ada4-54e1-45fa-b15a-d186df310279",
+  "name" : "conversationshistory",
   "request" : {
     "url" : "/api/conversations.history",
     "method" : "POST",
     "bodyPatterns" : [ {
-      "equalTo" : "channel=CPTD6F086&count=1&token=test-token",
+      "equalTo" : "channel=test&limit=1&inclusive=0",
       "caseInsensitive" : false
     } ]
   },
   "response" : {
     "status" : 200,
-    "body" : "{\"ok\":true,\"messages\":[{\"type\":\"message\",\"subtype\":\"bot_message\",\"text\":\"Hello Camel Quarkus Slack\",\"ts\":\"1604310723.000600\",\"bot_id\":\"BTWSZ6PGX\"}],\"has_more\":true,\"pin_count\":0,\"channel_actions_ts\":null,\"channel_actions_count\":0,\"response_metadata\":{\"next_cursor\":\"bmV4dF90czoxNjA0MzEwNDg4MDAwNTAw\"}}",
+    "body" : "{\"ok\":true,\"messages\":[{\"bot_id\":\"test\",\"type\":\"message\",\"text\":\"Hello Camel Quarkus Slack\",\"user\":\"test\",\"ts\":\"1615377778.002900\",\"team\":\"test\",\"bot_profile\":{\"id\":\"test\",\"deleted\":false,\"name\":\"API Test\",\"updated\":1615375056,\"app_id\":\"test\",\"icons\":{\"image_36\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_36.png\",\"image_48\":\"https:\\/\\/a.slack-edge.com\\/80588\\/img\\/plugins\\/app\\/bot_48.png\", [...]
     "headers" : {
-      "date" : "Mon, 02 Nov 2020 09:53:20 GMT",
+      "date" : "Wed, 10 Mar 2021 12:03:00 GMT",
       "server" : "Apache",
       "x-xss-protection" : "0",
       "pragma" : "no-cache",
       "cache-control" : "private, no-cache, no-store, must-revalidate",
       "strict-transport-security" : "max-age=31536000; includeSubDomains; preload",
-      "x-slack-req-id" : "4c02fef93a98415344290ac4dbc10bde",
+      "x-slack-req-id" : "259fe0f01847f6464ccf232065351a82",
       "x-content-type-options" : "nosniff",
       "referrer-policy" : "no-referrer",
       "x-slack-backend" : "r",
-      "x-oauth-scopes" : "read,client,admin,identify,post,apps",
+      "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history",
       "x-accepted-oauth-scopes" : "channels:history,groups:history,mpim:history,im:history,read",
       "expires" : "Mon, 26 Jul 1997 05:00:00 GMT",
       "vary" : "Accept-Encoding",
       "content-type" : "application/json; charset=utf-8",
-      "x-via" : "haproxy-www-6ya7,haproxy-edge-lhr-fchm"
+      "x-envoy-upstream-service-time" : "37",
+      "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow",
+      "x-server" : "slack-www-hhvm-main-iad-8pvg",
+      "x-via" : "envoy-www-iad-ntq9, haproxy-edge-lhr-ubwz",
+      "x-slack-shared-secret-outcome" : "shared-secret",
+      "via" : "envoy-www-iad-ntq9"
     }
   },
-  "uuid" : "6e638406-ee78-4a8d-baff-bf20096039ca",
+  "uuid" : "e4c0ada4-54e1-45fa-b15a-d186df310279",
   "persistent" : true,
-  "insertionIndex" : 3
+  "insertionIndex" : 4
 }
\ No newline at end of file
diff --git a/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json b/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json
new file mode 100644
index 0000000..2de6764
--- /dev/null
+++ b/integration-tests/slack/src/test/resources/mappings/slackGetConversationsList.json
@@ -0,0 +1,42 @@
+{
+  "id" : "ed5eb739-40b2-4108-be76-e33a6954996c",
+  "name" : "conversationslist",
+  "request" : {
+    "url" : "/api/conversations.list",
+    "method" : "POST",
+    "bodyPatterns" : [ {
+      "equalTo" : "exclude_archived=0&limit=200&types=public_channel",
+      "caseInsensitive" : false
+    } ]
+  },
+  "response" : {
+    "status" : 200,
+    "body" : "{\"ok\":true,\"channels\":[{\"id\":\"test\",\"name\":\"java-development\",\"is_channel\":true,\"is_group\":false,\"is_im\":false,\"created\":1571904170,\"is_archived\":false,\"is_general\":false,\"unlinked\":0,\"name_normalized\":\"java-development\",\"is_shared\":false,\"parent_conversation\":null,\"creator\":\"test\",\"is_ext_shared\":false,\"is_org_shared\":false,\"shared_team_ids\":[\"test\"],\"pending_shared\":[],\"pending_connected_team_ids\":[],\"is_pending_ext_share [...]
+    "headers" : {
+      "date" : "Wed, 10 Mar 2021 12:02:58 GMT",
+      "server" : "Apache",
+      "x-xss-protection" : "0",
+      "pragma" : "no-cache",
+      "cache-control" : "private, no-cache, no-store, must-revalidate",
+      "strict-transport-security" : "max-age=31536000; includeSubDomains; preload",
+      "x-slack-req-id" : "596bc3c69ead61583e4eaa1b72645d97",
+      "x-content-type-options" : "nosniff",
+      "referrer-policy" : "no-referrer",
+      "x-slack-backend" : "r",
+      "x-oauth-scopes" : "incoming-webhook,chat:write,channels:read,groups:read,mpim:read,im:read,channels:history,groups:history,mpim:history,im:history",
+      "x-accepted-oauth-scopes" : "channels:read,groups:read,mpim:read,im:read,read",
+      "expires" : "Mon, 26 Jul 1997 05:00:00 GMT",
+      "vary" : "Accept-Encoding",
+      "content-type" : "application/json; charset=utf-8",
+      "x-envoy-upstream-service-time" : "28",
+      "x-backend" : "main_normal main_canary_with_overflow main_control_with_overflow",
+      "x-server" : "slack-www-hhvm-main-iad-dzkj",
+      "x-via" : "envoy-www-iad-6h61, haproxy-edge-lhr-ubwz",
+      "x-slack-shared-secret-outcome" : "shared-secret",
+      "via" : "envoy-www-iad-6h61"
+    }
+  },
+  "uuid" : "ed5eb739-40b2-4108-be76-e33a6954996c",
+  "persistent" : true,
+  "insertionIndex" : 3
+}
\ No newline at end of file
diff --git a/integration-tests/slack/src/test/resources/mappings/slackWebhookMesagePost.json b/integration-tests/slack/src/test/resources/mappings/slackWebhookMesagePost.json
deleted file mode 100644
index 621acc3..0000000
--- a/integration-tests/slack/src/test/resources/mappings/slackWebhookMesagePost.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "id" : "b83207ea-d573-449e-bf3f-6e55660166bd",
-  "name" : "services_webhook",
-  "request" : {
-    "url" : "/services/webhook",
-    "method" : "POST",
-    "bodyPatterns" : [ {
-      "equalTo" : "{\"icon_url\":null,\"icon_emoji\":null,\"channel\":\"general\",\"text\":\"Hello Camel Quarkus Slack\",\"username\":null}",
-      "caseInsensitive" : false
-    } ]
-  },
-  "response" : {
-    "status" : 200,
-    "body" : "ok",
-    "headers" : {
-      "date" : "Mon, 02 Nov 2020 09:52:03 GMT",
-      "server" : "Apache",
-      "strict-transport-security" : "max-age=31536000; includeSubDomains; preload",
-      "x-slack-backend" : "r",
-      "x-frame-options" : "SAMEORIGIN",
-      "vary" : "Accept-Encoding",
-      "referrer-policy" : "no-referrer",
-      "content-type" : "text/html",
-      "x-via" : "haproxy-www-plhy,haproxy-edge-lhr-s8de"
-    }
-  },
-  "uuid" : "b83207ea-d573-449e-bf3f-6e55660166bd",
-  "persistent" : true,
-  "insertionIndex" : 1
-}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index abe2830..4e965e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,8 +49,8 @@
 
         <bouncycastle.version>${bouncycastle-version}</bouncycastle.version><!-- keep in sync with Camel -->
 
-        <camel.major.minor>3.8</camel.major.minor> <!-- run after each change: cd docs && mvndev validate -->
-        <camel.version>${camel.major.minor}.0</camel.version>
+        <camel.major.minor>3.9</camel.major.minor> <!-- run after each change: cd docs && mvndev validate -->
+	<camel.version>${camel.major.minor}.0</camel.version>
         <camel.docs.components.xref>${camel.major.minor}.x@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 branch on which our Antora docs depends -->
 
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 938e62c..893e8da 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -429,11 +429,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-azure</artifactId>
-                <version>${camel.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-azure-eventhubs</artifactId>
                 <version>${camel.version}</version>
                 <exclusions>
@@ -2491,16 +2486,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-azure</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
-                <artifactId>camel-quarkus-azure-deployment</artifactId>
-                <version>${camel-quarkus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-azure-eventhubs</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 21c87af..4033756 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -29,7 +29,6 @@ cache-networking3:
 cloud:
   - solr
   - aws2
-  - azure
   - consul
   - elasticsearch-rest
   - google-bigquery