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 07:13:53 UTC

[camel-quarkus] branch camel-3.9.0-upgrade updated (006c712 -> ae5470b)

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

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


 discard 006c712  Disable doc xref checks as there is no camel-3.9.x branch yet
 discard 5d36a9c  Add Camel 3.9.0 staging repository
 discard 1c18944  Spring RabbitMQ integration test fails in native mode with Camel 3.9.0
 discard 3c0dcd5  Splunk native support #1698
 discard c1ab18a  adapt to the latest camel apis
 discard 05a70d8  dsl: remove support for the old route definition loader
 discard 74b6983  dsl: fix findings
 discard a502c57  dsl: regen
 discard 57e142c  dsl: support for java-joor-dsl
 discard 86029ea  dsl: support for yaml-dsl
 discard db140bf  dsl: support for xml-io-dsl
 discard 76282a7  Optaplanner : upgrade to 8.x extension #2243
 discard 9b96267  Upgrade to Camel 3.9.0
     new d434cc7  Upgrade to Camel 3.9.0
     new cfc9edd  Optaplanner : upgrade to 8.x extension #2243
     new b1a4bbd  dsl: support for xml-io-dsl
     new 78db0cc  dsl: support for yaml-dsl
     new d65d438  dsl: support for java-joor-dsl
     new 46209bd  dsl: regen
     new 7271999  dsl: fix findings
     new f195598  dsl: remove support for the old route definition loader
     new d45a607  adapt to the latest camel apis
     new ac795f9  Splunk native support #1698
     new 67179e9  Spring RabbitMQ integration test fails in native mode with Camel 3.9.0
     new f442271  Add Camel 3.9.0 staging repository
     new ae5470b  Disable doc xref checks as there is no camel-3.9.x branch yet

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (006c712)
            \
             N -- N -- N   refs/heads/camel-3.9.0-upgrade (ae5470b)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 13 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

[camel-quarkus] 04/13: dsl: support for yaml-dsl

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 78db0ccf4b5380a667f432c7fb34e4ff300a0432
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Mar 2 15:41:14 2021 +0100

    dsl: support for yaml-dsl
---
 .../ROOT/pages/reference/extensions/yaml-dsl.adoc  |  27 +++
 .../deployment/CamelMainNativeImageProcessor.java  |   5 -
 extensions-core/pom.xml                            |   1 +
 extensions-core/yaml-dsl/deployment/pom.xml        |  61 ++++++
 extensions-core/{ => yaml-dsl}/pom.xml             |  23 +--
 extensions-core/yaml-dsl/runtime/pom.xml           | 110 +++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  31 +++
 integration-tests/main-yaml/pom.xml                | 215 +++++++++++++++++++++
 .../camel/quarkus/main/CoreMainYamlResource.java   |  62 ++++++
 .../src/main/resources/application.properties      |  21 ++
 .../src/main/resources/routes/my-rests.yaml        |  28 +++
 .../src/main/resources/routes/my-routes.yaml       |  24 +++
 .../apache/camel/quarkus/main/CoreMainYamlIT.java  |  23 +++
 .../camel/quarkus/main/CoreMainYamlTest.java       |  49 +++++
 integration-tests/pom.xml                          |   1 +
 poms/bom/pom.xml                                   |  15 ++
 tooling/scripts/test-categories.yaml               |   1 +
 17 files changed, 675 insertions(+), 22 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc b/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc
new file mode 100644
index 0000000..8a85791
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/yaml-dsl.adoc
@@ -0,0 +1,27 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+= YAML DSL
+:cq-artifact-id: camel-quarkus-yaml-dsl
+:cq-native-supported: true
+:cq-status: Stable
+:cq-description: An YAML stack for parsing YAML route definitions
+:cq-deprecated: false
+:cq-jvm-since: 1.8.0
+:cq-native-since: 1.8.0
+
+[.badges]
+[.badge-key]##JVM since##[.badge-supported]##1.8.0## [.badge-key]##Native since##[.badge-supported]##1.8.0##
+
+An YAML stack for parsing YAML route definitions
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-yaml-dsl</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java b/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java
index bab94d6..60183d8 100644
--- a/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java
+++ b/extensions-core/main/deployment/src/main/java/org/apache/camel/quarkus/main/deployment/CamelMainNativeImageProcessor.java
@@ -23,7 +23,6 @@ import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import org.apache.camel.quarkus.support.common.CamelCapabilities;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.AntPathMatcher;
 import org.jboss.logging.Logger;
@@ -50,10 +49,6 @@ public class CamelMainNativeImageProcessor {
             Capabilities capabilities,
             BuildProducer<NativeImageResourceBuildItem> nativeResource) {
 
-        if (!capabilities.isCapabilityPresent(CamelCapabilities.XML)) {
-            return;
-        }
-
         for (String path : CamelMainHelper.routesIncludePatter().collect(Collectors.toList())) {
             String scheme = ResourceHelper.getScheme(path);
 
diff --git a/extensions-core/pom.xml b/extensions-core/pom.xml
index ded3939..134a3ae 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/pom.xml
@@ -43,6 +43,7 @@
         <module>xml-jaxp</module>
         <module>caffeine-lrucache</module>
         <module>main</module>
+        <module>yaml-dsl</module>
     </modules>
 
 </project>
diff --git a/extensions-core/yaml-dsl/deployment/pom.xml b/extensions-core/yaml-dsl/deployment/pom.xml
new file mode 100644
index 0000000..3896b0d
--- /dev/null
+++ b/extensions-core/yaml-dsl/deployment/pom.xml
@@ -0,0 +1,61 @@
+<?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-yaml-dsl-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-yaml-dsl-deployment</artifactId>
+    <name>Camel Quarkus :: YAML DSL DSL :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-yaml-dsl</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-core/pom.xml b/extensions-core/yaml-dsl/pom.xml
similarity index 69%
copy from extensions-core/pom.xml
copy to extensions-core/yaml-dsl/pom.xml
index ded3939..29f2b03 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/yaml-dsl/pom.xml
@@ -18,31 +18,20 @@
 
 -->
 <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</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-core</artifactId>
+    <artifactId>camel-quarkus-yaml-dsl-parent</artifactId>
+    <name>Camel Quarkus :: YAML DSL</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions :: Core</name>
-
     <modules>
-        <module>core</module>
-        <module>core-cloud</module>
-        <module>http-common</module>
-        <module>reactive-executor</module>
-        <module>threadpoolfactory-vertx</module>
-        <module>xml-io</module>
-        <module>xml-io-dsl</module>
-        <module>xml-jaxb</module>
-        <module>xml-jaxp</module>
-        <module>caffeine-lrucache</module>
-        <module>main</module>
+        <module>deployment</module>
+        <module>runtime</module>
     </modules>
-
 </project>
diff --git a/extensions-core/yaml-dsl/runtime/pom.xml b/extensions-core/yaml-dsl/runtime/pom.xml
new file mode 100644
index 0000000..8f1c70c
--- /dev/null
+++ b/extensions-core/yaml-dsl/runtime/pom.xml
@@ -0,0 +1,110 @@
+<?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-yaml-dsl-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-yaml-dsl</artifactId>
+    <name>Camel Quarkus :: YAML DSL :: Runtime</name>
+    <description>An YAML stack for parsing YAML route definitions</description>
+
+    <properties>
+        <camel.quarkus.jvmSince>1.8.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>1.8.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>org.apache.camel</groupId>
+            <artifactId>camel-yaml-dsl</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-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..afab50f
--- /dev/null
+++ b/extensions-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,31 @@
+#
+# 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 XML IO DSL"
+description: "An XML stack for parsing XML route definitions"
+metadata:
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/xml-io-dsl.html"
+  categories:
+  - "integration"
+  status:
+  - "stable"
diff --git a/integration-tests/main-yaml/pom.xml b/integration-tests/main-yaml/pom.xml
new file mode 100644
index 0000000..0cda9bc
--- /dev/null
+++ b/integration-tests/main-yaml/pom.xml
@@ -0,0 +1,215 @@
+<?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">
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-integration-tests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>camel-quarkus-integration-test-main-yaml</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Main YAML :: Tests</name>
+    <description>The camel integration tests</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-main</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-yaml-dsl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-log</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-rest</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-timer</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jsonb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-xpath</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.assertj</groupId>
+            <artifactId>assertj-core</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-direct-deployment</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-log-deployment</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-main-deployment</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-rest-deployment</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-timer-deployment</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-xml-io-deployment</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-xpath-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>
+            </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/main-yaml/src/main/java/org/apache/camel/quarkus/main/CoreMainYamlResource.java b/integration-tests/main-yaml/src/main/java/org/apache/camel/quarkus/main/CoreMainYamlResource.java
new file mode 100644
index 0000000..1763a33
--- /dev/null
+++ b/integration-tests/main-yaml/src/main/java/org/apache/camel/quarkus/main/CoreMainYamlResource.java
@@ -0,0 +1,62 @@
+/*
+ * 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.main;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.json.Json;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonObject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader;
+import org.apache.camel.spi.RoutesBuilderLoader;
+
+@Path("/test")
+@ApplicationScoped
+public class CoreMainYamlResource {
+    @Inject
+    CamelMain main;
+
+    @Path("/main/describe")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public JsonObject describeMain() {
+        final ExtendedCamelContext camelContext = main.getCamelContext().adapt(ExtendedCamelContext.class);
+
+        JsonArrayBuilder listeners = Json.createArrayBuilder();
+        main.getMainListeners().forEach(listener -> listeners.add(listener.getClass().getName()));
+
+        JsonArrayBuilder routeBuilders = Json.createArrayBuilder();
+        main.configure().getRoutesBuilders().forEach(builder -> routeBuilders.add(builder.getClass().getName()));
+
+        JsonArrayBuilder routes = Json.createArrayBuilder();
+        main.getCamelContext().getRoutes().forEach(route -> routes.add(route.getId()));
+
+        return Json.createObjectBuilder()
+                .add("yaml-routes-builder-loader",
+                        camelContext.getBootstrapFactoryFinder(RoutesBuilderLoader.FACTORY_PATH)
+                                .findClass(YamlRoutesBuilderLoader.EXTENSION).get().getName())
+                .add("routeBuilders", routeBuilders)
+                .add("routes", routes)
+                .build();
+    }
+}
diff --git a/integration-tests/main-yaml/src/main/resources/application.properties b/integration-tests/main-yaml/src/main/resources/application.properties
new file mode 100644
index 0000000..0030f2f
--- /dev/null
+++ b/integration-tests/main-yaml/src/main/resources/application.properties
@@ -0,0 +1,21 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+#
+# Main
+#
+camel.main.routes-include-pattern = classpath:routes/my-routes.yaml,classpath:routes/my-rests.yaml
diff --git a/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml b/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml
new file mode 100644
index 0000000..e56034e
--- /dev/null
+++ b/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml
@@ -0,0 +1,28 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+- rest:
+    path: "/greeting"
+    verb:
+      - method: "get"
+        to: "direct:rest"
+- route:
+    id: "rest-route"
+    from: "direct:rest"
+    steps:
+      - set-body:
+          constant: "Hello World!!!"
diff --git a/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml b/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml
new file mode 100644
index 0000000..4cd422b
--- /dev/null
+++ b/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml
@@ -0,0 +1,24 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+- route:
+    id: "my-yaml-route"
+    from: "timer:from-xml?period=3000"
+    steps:
+      - set-body:
+          constant: "Hello World!!!"
+      - to: "log:from-yaml"
diff --git a/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java b/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java
new file mode 100644
index 0000000..8735fb4
--- /dev/null
+++ b/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlIT.java
@@ -0,0 +1,23 @@
+/*
+ * 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.main;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+public class CoreMainYamlIT extends CoreMainYamlTest {
+}
diff --git a/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlTest.java b/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlTest.java
new file mode 100644
index 0000000..0a2c2af
--- /dev/null
+++ b/integration-tests/main-yaml/src/test/java/org/apache/camel/quarkus/main/CoreMainYamlTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.main;
+
+import javax.ws.rs.core.MediaType;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.path.json.JsonPath;
+import org.apache.camel.dsl.yaml.YamlRoutesBuilderLoader;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@QuarkusTest
+public class CoreMainYamlTest {
+    @Test
+    public void testMainInstanceWithYamlRoutes() {
+        JsonPath p = RestAssured.given()
+                .accept(MediaType.APPLICATION_JSON)
+                .get("/test/main/describe")
+                .then()
+                .statusCode(200)
+                .extract()
+                .body()
+                .jsonPath();
+
+        assertThat(p.getString("yaml-routes-builder-loader"))
+                .isEqualTo(YamlRoutesBuilderLoader.class.getName());
+        assertThat(p.getList("routeBuilders", String.class))
+                .isEmpty();
+        assertThat(p.getList("routes", String.class))
+                .contains("my-yaml-route", "rest-route");
+    }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 98c3c8f..08fd199 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -58,6 +58,7 @@
         <module>main-collector</module>
         <module>main-caffeine-lrucache</module>
         <module>main-command-mode</module>
+        <module>main-yaml</module>
 
         <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
         <module>activemq</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index bcbb9dd..7e0227d 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -2095,6 +2095,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-yaml-dsl</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-yammer</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -5347,6 +5352,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-yaml-dsl</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-yaml-dsl-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-yammer</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 89e8007..83a95ca 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -48,6 +48,7 @@ core-main-validation:
   - main-discovery-disabled
   - main-xml-io
   - main-xml-jaxb
+  - main-yaml
   - bean-validator
   - json-validator
   - validator

[camel-quarkus] 05/13: dsl: support for java-joor-dsl

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d65d438bb92272bea55a38572eeb38a3c75a469b
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Mar 2 16:57:34 2021 +0100

    dsl: support for java-joor-dsl
---
 catalog/pom.xml                                    |  13 +++
 .../pages/reference/extensions/java-joor-dsl.adoc  |  27 +++++
 extensions-core/java-joor-dsl/deployment/pom.xml   |  61 ++++++++++++
 .../java-joor-dsl/integration-test/pom.xml         |  97 ++++++++++++++++++
 .../quarkus/dsl/java/joor/JavaJoorDslResource.java |  60 +++++++++++
 .../src/main/resources/application.properties      |  21 ++++
 .../src/main/resources/routes/MyRoutes.java        |  24 +++++
 .../quarkus/dsl/java/joor/JavaJoorDslTest.java     |  49 +++++++++
 extensions-core/{ => java-joor-dsl}/pom.xml        |  25 ++---
 extensions-core/java-joor-dsl/runtime/pom.xml      | 110 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  31 ++++++
 extensions-core/pom.xml                            |   1 +
 poms/bom/pom.xml                                   |  15 +++
 13 files changed, 516 insertions(+), 18 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index d8b04d5..c711d29 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1830,6 +1830,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-java-joor-dsl</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-jaxb</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/pages/reference/extensions/java-joor-dsl.adoc b/docs/modules/ROOT/pages/reference/extensions/java-joor-dsl.adoc
new file mode 100644
index 0000000..25db11f
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/java-joor-dsl.adoc
@@ -0,0 +1,27 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+= Java jOOR DSL
+:cq-artifact-id: camel-quarkus-java-joor-dsl
+:cq-native-supported: true
+:cq-status: Stable
+:cq-description: Support for parsing Java route definitions at runtime
+:cq-deprecated: false
+:cq-jvm-since: 1.8.0
+:cq-native-since: 1.8.0
+
+[.badges]
+[.badge-key]##JVM since##[.badge-supported]##1.8.0## [.badge-key]##Native since##[.badge-supported]##1.8.0##
+
+Support for parsing Java route definitions at runtime
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-java-joor-dsl</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/extensions-core/java-joor-dsl/deployment/pom.xml b/extensions-core/java-joor-dsl/deployment/pom.xml
new file mode 100644
index 0000000..3813fe6
--- /dev/null
+++ b/extensions-core/java-joor-dsl/deployment/pom.xml
@@ -0,0 +1,61 @@
+<?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-java-joor-dsl-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-java-joor-dsl-deployment</artifactId>
+    <name>Camel Quarkus :: Java jOOR DSL :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-java-joor-dsl</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-core/java-joor-dsl/integration-test/pom.xml b/extensions-core/java-joor-dsl/integration-test/pom.xml
new file mode 100644
index 0000000..0a1e7d9
--- /dev/null
+++ b/extensions-core/java-joor-dsl/integration-test/pom.xml
@@ -0,0 +1,97 @@
+<?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-it</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-java-joor-dsl-integration-test</artifactId>
+    <name>Camel Quarkus :: Java jOOR DSL :: Integration Test</name>
+    <description>Integration tests for Camel Java jOOR DSL extension</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-main</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-java-joor-dsl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jsonb</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.assertj</groupId>
+            <artifactId>assertj-core</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-java-joor-dsl-deployment</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-main-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/extensions-core/java-joor-dsl/integration-test/src/main/java/org/apache/camel/quarkus/dsl/java/joor/JavaJoorDslResource.java b/extensions-core/java-joor-dsl/integration-test/src/main/java/org/apache/camel/quarkus/dsl/java/joor/JavaJoorDslResource.java
new file mode 100644
index 0000000..9f66a3e
--- /dev/null
+++ b/extensions-core/java-joor-dsl/integration-test/src/main/java/org/apache/camel/quarkus/dsl/java/joor/JavaJoorDslResource.java
@@ -0,0 +1,60 @@
+/*
+ * 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.dsl.java.joor;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.json.Json;
+import javax.json.JsonArrayBuilder;
+import javax.json.JsonObject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.dsl.java.joor.JavaRoutesBuilderLoader;
+import org.apache.camel.quarkus.main.CamelMain;
+import org.apache.camel.spi.RoutesBuilderLoader;
+
+@Path("/test")
+@ApplicationScoped
+public class JavaJoorDslResource {
+    @Inject
+    CamelMain main;
+
+    @Path("/main/describe")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public JsonObject describeMain() {
+        final ExtendedCamelContext camelContext = main.getCamelContext().adapt(ExtendedCamelContext.class);
+
+        JsonArrayBuilder routeBuilders = Json.createArrayBuilder();
+        main.configure().getRoutesBuilders().forEach(builder -> routeBuilders.add(builder.getClass().getName()));
+
+        JsonArrayBuilder routes = Json.createArrayBuilder();
+        main.getCamelContext().getRoutes().forEach(route -> routes.add(route.getId()));
+
+        return Json.createObjectBuilder()
+                .add("java-routes-builder-loader",
+                        camelContext.getBootstrapFactoryFinder(RoutesBuilderLoader.FACTORY_PATH)
+                                .findClass(JavaRoutesBuilderLoader.EXTENSION).get().getName())
+                .add("routeBuilders", routeBuilders)
+                .add("routes", routes)
+                .build();
+    }
+}
diff --git a/extensions-core/java-joor-dsl/integration-test/src/main/resources/application.properties b/extensions-core/java-joor-dsl/integration-test/src/main/resources/application.properties
new file mode 100644
index 0000000..0b17e9e
--- /dev/null
+++ b/extensions-core/java-joor-dsl/integration-test/src/main/resources/application.properties
@@ -0,0 +1,21 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+#
+# Main
+#
+camel.main.routes-include-pattern = classpath:routes/MyRoutes.java
diff --git a/extensions-core/java-joor-dsl/integration-test/src/main/resources/routes/MyRoutes.java b/extensions-core/java-joor-dsl/integration-test/src/main/resources/routes/MyRoutes.java
new file mode 100644
index 0000000..3292e12
--- /dev/null
+++ b/extensions-core/java-joor-dsl/integration-test/src/main/resources/routes/MyRoutes.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+public class MyRoutes extends org.apache.camel.builder.RouteBuilder {
+    @Override
+    public void configure() throws Exception {
+        from("direct:start")
+            .id("my-java-route")
+            .log("Hello Java !!!");
+    }
+}
\ No newline at end of file
diff --git a/extensions-core/java-joor-dsl/integration-test/src/test/java/org/apache/camel/quarkus/dsl/java/joor/JavaJoorDslTest.java b/extensions-core/java-joor-dsl/integration-test/src/test/java/org/apache/camel/quarkus/dsl/java/joor/JavaJoorDslTest.java
new file mode 100644
index 0000000..5dc90e6
--- /dev/null
+++ b/extensions-core/java-joor-dsl/integration-test/src/test/java/org/apache/camel/quarkus/dsl/java/joor/JavaJoorDslTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.dsl.java.joor;
+
+import javax.ws.rs.core.MediaType;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.path.json.JsonPath;
+import org.apache.camel.dsl.java.joor.JavaRoutesBuilderLoader;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@QuarkusTest
+public class JavaJoorDslTest {
+    @Test
+    public void testMainInstanceWithJavaRoutes() {
+        JsonPath p = RestAssured.given()
+                .accept(MediaType.APPLICATION_JSON)
+                .get("/test/main/describe")
+                .then()
+                .statusCode(200)
+                .extract()
+                .body()
+                .jsonPath();
+
+        assertThat(p.getString("java-routes-builder-loader"))
+                .isEqualTo(JavaRoutesBuilderLoader.class.getName());
+        assertThat(p.getList("routeBuilders", String.class))
+                .isEmpty();
+        assertThat(p.getList("routes", String.class))
+                .contains("my-java-route");
+    }
+}
diff --git a/extensions-core/pom.xml b/extensions-core/java-joor-dsl/pom.xml
similarity index 68%
copy from extensions-core/pom.xml
copy to extensions-core/java-joor-dsl/pom.xml
index 134a3ae..e3ddc44 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/java-joor-dsl/pom.xml
@@ -18,32 +18,21 @@
 
 -->
 <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</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-core</artifactId>
+    <artifactId>camel-quarkus-java-joor-dsl-parent</artifactId>
+    <name>Camel Quarkus :: Java jOOR DSL</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions :: Core</name>
-
     <modules>
-        <module>core</module>
-        <module>core-cloud</module>
-        <module>http-common</module>
-        <module>reactive-executor</module>
-        <module>threadpoolfactory-vertx</module>
-        <module>xml-io</module>
-        <module>xml-io-dsl</module>
-        <module>xml-jaxb</module>
-        <module>xml-jaxp</module>
-        <module>caffeine-lrucache</module>
-        <module>main</module>
-        <module>yaml-dsl</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-core/java-joor-dsl/runtime/pom.xml b/extensions-core/java-joor-dsl/runtime/pom.xml
new file mode 100644
index 0000000..36a8cb7
--- /dev/null
+++ b/extensions-core/java-joor-dsl/runtime/pom.xml
@@ -0,0 +1,110 @@
+<?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-java-joor-dsl-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-java-joor-dsl</artifactId>
+    <name>Camel Quarkus :: Java jOOR DSL :: Runtime</name>
+    <description>Support for parsing Java route definitions at runtime</description>
+
+    <properties>
+        <camel.quarkus.jvmSince>1.8.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>1.8.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>org.apache.camel</groupId>
+            <artifactId>camel-java-joor-dsl</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-core/java-joor-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-core/java-joor-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..0e38f33
--- /dev/null
+++ b/extensions-core/java-joor-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,31 @@
+#
+# 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 Java jOOR DSL"
+description: "Support for parsing Java route definitions at runtime"
+metadata:
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/java-joor-dsl.html"
+  categories:
+  - "integration"
+  status:
+  - "stable"
diff --git a/extensions-core/pom.xml b/extensions-core/pom.xml
index 134a3ae..354cb66 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/pom.xml
@@ -44,6 +44,7 @@
         <module>caffeine-lrucache</module>
         <module>main</module>
         <module>yaml-dsl</module>
+        <module>java-joor-dsl</module>
     </modules>
 
 </project>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 7e0227d..5f70893 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1093,6 +1093,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-java-joor-dsl</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jaxb</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3517,6 +3522,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-java-joor-dsl</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-java-joor-dsl-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jaxb</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>

[camel-quarkus] 13/13: Disable doc xref checks as there is no camel-3.9.x branch yet

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ae5470b4224fb9a7ff902452a2eca213436b77ab
Author: James Netherton <ja...@gmail.com>
AuthorDate: Thu Mar 25 07:04:34 2021 +0000

    Disable doc xref checks as there is no camel-3.9.x branch yet
---
 docs/pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/docs/pom.xml b/docs/pom.xml
index ad9d098..44b8ce7 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -127,7 +127,8 @@
                                     <goal>exec</goal>
                                 </goals>
                                 <phase>verify</phase>
-                                <configuration>
+				<configuration>
+                                    <skip>true</skip>
                                     <executable>${project.basedir}/node/node</executable>
                                     <commandlineArgs>${project.basedir}/node/yarn/dist/bin/yarn.js --non-interactive antora --generator @antora/xref-validator --fetch antora-playbook.yml --stacktrace</commandlineArgs>
                                 </configuration>

[camel-quarkus] 12/13: Add Camel 3.9.0 staging repository

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f442271a887e6ab0341301a5383ab912fa52ba2c
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Mar 24 14:07:42 2021 +0000

    Add Camel 3.9.0 staging repository
---
 pom.xml | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/pom.xml b/pom.xml
index 31727a7..16c322c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,6 +249,28 @@
 
     <repositories>
         <repository>
+            <id>central</id>
+            <name>Maven Central Repo</name>
+            <url>https://repo.maven.apache.org/maven2</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </repository>
+        <repository>
+            <id>apache.staging.camel</id>
+            <url>https://repository.apache.org/content/repositories/orgapachecamel-1302</url>
+            <name>Apache Camel 3.8.0 Staging Repo</name>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </repository>
+        <repository>
             <id>apache.snapshots</id>
             <url>https://repository.apache.org/snapshots/</url>
             <name>Apache Snapshot Repo</name>
@@ -262,6 +284,28 @@
     </repositories>
     <pluginRepositories>
         <pluginRepository>
+            <id>central</id>
+            <name>Maven Central Repo</name>
+            <url>https://repo.maven.apache.org/maven2</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </pluginRepository>
+        <pluginRepository>
+            <id>apache.staging.camel</id>
+            <url>https://repository.apache.org/content/repositories/orgapachecamel-1302</url>
+            <name>Apache Camel 3.8.0 Staging Repo</name>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+        </pluginRepository>
+        <pluginRepository>
             <id>apache.snapshots</id>
             <url>https://repository.apache.org/snapshots/</url>
             <snapshots>

[camel-quarkus] 09/13: adapt to the latest camel apis

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit d45a607ecf6c8e9d8cd3d56c11be9d0b953fa6ce
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Mon Mar 8 12:37:10 2021 +0100

    adapt to the latest camel apis
---
 .../apache/camel/quarkus/core/deployment/CamelContextProcessor.java  | 1 -
 .../main/java/org/apache/camel/quarkus/core/FastCamelContext.java    | 5 +++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
index 8ca5dba..f19632a 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
@@ -56,7 +56,6 @@ public class CamelContextProcessor {
      * @param  registry                a reference to a {@link org.apache.camel.spi.Registry}.
      * @param  typeConverterRegistry   a reference to a {@link TypeConverterRegistry}.
      * @param  modelJAXBContextFactory a list of known {@link ModelJAXBContextFactory}.
-     * @param  xmlLoader               a list of known {@link org.apache.camel.spi.XMLRoutesDefinitionLoader}.
      * @param  modelDumper             a list of known {@link CamelModelToXMLDumperBuildItem}.
      * @param  factoryFinderResolver   a list of known {@link org.apache.camel.spi.FactoryFinderResolver}.
      * @param  customizers             a list of {@link org.apache.camel.quarkus.core.CamelContextCustomizer} used to
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 61908a8..a0e8a93 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
@@ -426,6 +426,11 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
     }
 
     @Override
+    protected ResourceLoader createResourceLoader() {
+        return new DefaultResourceLoader();
+    }
+
+    @Override
     protected ModelToXMLDumper createModelToXMLDumper() {
         return modelDumper;
     }

[camel-quarkus] 11/13: Spring RabbitMQ integration test fails in native mode with Camel 3.9.0

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 67179e965a4c8e08bd5e5e721e68e01a89ebf2ba
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Mon Mar 22 14:13:16 2021 +0100

    Spring RabbitMQ integration test fails in native mode with Camel 3.9.0
---
 .../rabbitmq/deployment/SpringRabbitmqProcessor.java    | 13 +++++++++++--
 .../spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java  | 12 +++++++++---
 .../spring/rabbitmq/it/SpringRabbitmqTest.java          | 17 ++++++++++++++---
 3 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java b/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java
index d5c6a52..9f9fb06 100644
--- a/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java
+++ b/extensions/spring-rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/deployment/SpringRabbitmqProcessor.java
@@ -16,10 +16,14 @@
  */
 package org.apache.camel.quarkus.component.spring.rabbitmq.deployment;
 
+import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.NativeImageProxyDefinitionBuildItem;
 import org.springframework.amqp.rabbit.connection.ChannelProxy;
+import org.springframework.aop.SpringProxy;
+import org.springframework.aop.framework.Advised;
+import org.springframework.core.DecoratingProxy;
 
 class SpringRabbitmqProcessor {
 
@@ -31,7 +35,12 @@ class SpringRabbitmqProcessor {
     }
 
     @BuildStep
-    NativeImageProxyDefinitionBuildItem initProxies() {
-        return new NativeImageProxyDefinitionBuildItem(ChannelProxy.class.getCanonicalName());
+    void initProxies(BuildProducer<NativeImageProxyDefinitionBuildItem> proxies) {
+        proxies.produce(new NativeImageProxyDefinitionBuildItem(ChannelProxy.class.getCanonicalName()));
+        proxies.produce(new NativeImageProxyDefinitionBuildItem(
+                "org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer$ContainerDelegate",
+                SpringProxy.class.getCanonicalName(), Advised.class.getCanonicalName(),
+                DecoratingProxy.class.getCanonicalName()));
     }
+
 }
diff --git a/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java b/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java
index 442c313..bafee55 100644
--- a/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java
+++ b/integration-tests/spring-rabbitmq/src/main/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqRouteBuilder.java
@@ -20,18 +20,24 @@ package org.apache.camel.quarkus.component.spring.rabbitmq.it;
 import javax.enterprise.context.ApplicationScoped;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.springrabbit.SpringRabbitMQConstants;
 
 @ApplicationScoped
 public class SpringRabbitmqRouteBuilder extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
+        createRoute(SpringRabbitMQConstants.DIRECT_MESSAGE_LISTENER_CONTAINER);
+        createRoute(SpringRabbitMQConstants.SIMPLE_MESSAGE_LISTENER_CONTAINER);
+    }
+
+    private void createRoute(String type) {
         String url = String.format(
-                "spring-rabbitmq:%s?queues=myqueue&routingKey=%s&connectionFactory=#connectionFactory&autoDeclare=true",
-                SpringRabbitmqResource.EXCHANGE_IN_OUT, SpringRabbitmqResource.ROUTING_KEY_IN_OUT);
+                "spring-rabbitmq:%s?queues=%s&routingKey=%s&connectionFactory=#connectionFactory&autoDeclare=true&messageListenerContainerType=DMLC",
+                SpringRabbitmqResource.EXCHANGE_IN_OUT + type, type, SpringRabbitmqResource.ROUTING_KEY_IN_OUT + type);
 
         from(url)
                 .transform(body().prepend("Hello "))
-                .to(SpringRabbitmqResource.DIRECT_IN_OUT);
+                .to(SpringRabbitmqResource.DIRECT_IN_OUT + type);
     }
 }
diff --git a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java
index 2fdddec..9822030 100644
--- a/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java
+++ b/integration-tests/spring-rabbitmq/src/test/java/org/apache/camel/quarkus/component/spring/rabbitmq/it/SpringRabbitmqTest.java
@@ -20,6 +20,7 @@ import io.quarkus.test.common.QuarkusTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.response.Response;
+import org.apache.camel.component.springrabbit.SpringRabbitMQConstants;
 import org.junit.jupiter.api.Test;
 import org.springframework.amqp.core.AmqpAdmin;
 import org.springframework.amqp.core.BindingBuilder;
@@ -39,10 +40,20 @@ class SpringRabbitmqTest {
     private ConnectionFactory connectionFactory;
 
     @Test
-    public void testInOut() {
-        sendToExchange(SpringRabbitmqResource.EXCHANGE_IN_OUT, SpringRabbitmqResource.ROUTING_KEY_IN_OUT, "Sheldon");
+    public void testInOutDMLC() {
+        testInOut(SpringRabbitMQConstants.DIRECT_MESSAGE_LISTENER_CONTAINER);
+    }
+
+    @Test
+    public void testInOutSMLC() {
+        testInOut(SpringRabbitMQConstants.SIMPLE_MESSAGE_LISTENER_CONTAINER);
+    }
+
+    public void testInOut(String type) {
+        sendToExchange(SpringRabbitmqResource.EXCHANGE_IN_OUT + type,
+                SpringRabbitmqResource.ROUTING_KEY_IN_OUT + type, "Sheldon");
 
-        getFromDirect(SpringRabbitmqResource.DIRECT_IN_OUT)
+        getFromDirect(SpringRabbitmqResource.DIRECT_IN_OUT + type)
                 .then()
                 .statusCode(200)
                 .body(is("Hello Sheldon"));

[camel-quarkus] 03/13: dsl: support for xml-io-dsl

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit b1a4bbdbdf741b70c889ba4b9ae05a756a4936c4
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Mar 2 15:15:23 2021 +0100

    dsl: support for xml-io-dsl
---
 .../pages/reference/extensions/xml-io-dsl.adoc     |  28 +++++
 extensions-core/pom.xml                            |   1 +
 extensions-core/xml-io-dsl/deployment/pom.xml      |  65 ++++++++++++
 extensions-core/{ => xml-io-dsl}/pom.xml           |  22 ++--
 extensions-core/xml-io-dsl/runtime/pom.xml         | 114 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  31 ++++++
 integration-tests/csimple/pom.xml                  |   2 +-
 integration-tests/dataformats-json/pom.xml         |   2 +-
 integration-tests/main-devmode/pom.xml             |   2 +-
 integration-tests/main-xml-io/pom.xml              |   2 +-
 .../camel/quarkus/main/CoreMainXmlIoResource.java  |   2 +-
 .../camel/quarkus/main/CoreMainXmlIoTest.java      |   2 +-
 integration-tests/main-xml-jaxb/pom.xml            |   4 +-
 .../quarkus/main/CoreMainXmlJaxbResource.java      |   2 +-
 .../camel/quarkus/main/CoreMainXmlJaxbTest.java    |   2 +-
 poms/bom/pom.xml                                   |  15 +++
 16 files changed, 270 insertions(+), 26 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc b/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc
new file mode 100644
index 0000000..c76bd4a
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc
@@ -0,0 +1,28 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+= XML IO DSL
+:page-aliases: extensions/xml-io-dsl.adoc
+:cq-artifact-id: camel-quarkus-xml-io-dsl
+:cq-native-supported: true
+:cq-status: Stable
+:cq-description: An XML stack for parsing XML route definitions
+:cq-deprecated: false
+: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##
+
+An XML stack for parsing XML route definitions
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-xml-io-dsl</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/extensions-core/pom.xml b/extensions-core/pom.xml
index 92bee84..ded3939 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/pom.xml
@@ -38,6 +38,7 @@
         <module>reactive-executor</module>
         <module>threadpoolfactory-vertx</module>
         <module>xml-io</module>
+        <module>xml-io-dsl</module>
         <module>xml-jaxb</module>
         <module>xml-jaxp</module>
         <module>caffeine-lrucache</module>
diff --git a/extensions-core/xml-io-dsl/deployment/pom.xml b/extensions-core/xml-io-dsl/deployment/pom.xml
new file mode 100644
index 0000000..b33000f
--- /dev/null
+++ b/extensions-core/xml-io-dsl/deployment/pom.xml
@@ -0,0 +1,65 @@
+<?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-xml-io-dsl-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
+    <name>Camel Quarkus :: XML IO DSL :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-xml-io-dsl</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-core/pom.xml b/extensions-core/xml-io-dsl/pom.xml
similarity index 70%
copy from extensions-core/pom.xml
copy to extensions-core/xml-io-dsl/pom.xml
index 92bee84..b284429 100644
--- a/extensions-core/pom.xml
+++ b/extensions-core/xml-io-dsl/pom.xml
@@ -18,30 +18,20 @@
 
 -->
 <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</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-core</artifactId>
+    <artifactId>camel-quarkus-xml-io-dsl-parent</artifactId>
+    <name>Camel Quarkus :: XML IO DSL</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions :: Core</name>
-
     <modules>
-        <module>core</module>
-        <module>core-cloud</module>
-        <module>http-common</module>
-        <module>reactive-executor</module>
-        <module>threadpoolfactory-vertx</module>
-        <module>xml-io</module>
-        <module>xml-jaxb</module>
-        <module>xml-jaxp</module>
-        <module>caffeine-lrucache</module>
-        <module>main</module>
+        <module>deployment</module>
+        <module>runtime</module>
     </modules>
-
 </project>
diff --git a/extensions-core/xml-io-dsl/runtime/pom.xml b/extensions-core/xml-io-dsl/runtime/pom.xml
new file mode 100644
index 0000000..3bd775d
--- /dev/null
+++ b/extensions-core/xml-io-dsl/runtime/pom.xml
@@ -0,0 +1,114 @@
+<?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-xml-io-dsl-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-xml-io-dsl</artifactId>
+    <name>Camel Quarkus :: XML IO DSL :: Runtime</name>
+    <description>An XML stack for parsing XML route definitions</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>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-xml-io</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-xml-io-dsl</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-core/xml-io-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-core/xml-io-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..afab50f
--- /dev/null
+++ b/extensions-core/xml-io-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,31 @@
+#
+# 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 XML IO DSL"
+description: "An XML stack for parsing XML route definitions"
+metadata:
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/xml-io-dsl.html"
+  categories:
+  - "integration"
+  status:
+  - "stable"
diff --git a/integration-tests/csimple/pom.xml b/integration-tests/csimple/pom.xml
index 67a31b2..75f1712 100644
--- a/integration-tests/csimple/pom.xml
+++ b/integration-tests/csimple/pom.xml
@@ -61,7 +61,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl</artifactId>
         </dependency>
 
         <!-- test dependencies -->
diff --git a/integration-tests/dataformats-json/pom.xml b/integration-tests/dataformats-json/pom.xml
index 3f6feed..d6e1968 100644
--- a/integration-tests/dataformats-json/pom.xml
+++ b/integration-tests/dataformats-json/pom.xml
@@ -36,7 +36,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/main-devmode/pom.xml b/integration-tests/main-devmode/pom.xml
index 32d3dbf..d2143bb 100644
--- a/integration-tests/main-devmode/pom.xml
+++ b/integration-tests/main-devmode/pom.xml
@@ -36,7 +36,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/main-xml-io/pom.xml b/integration-tests/main-xml-io/pom.xml
index 150c662..a621855 100644
--- a/integration-tests/main-xml-io/pom.xml
+++ b/integration-tests/main-xml-io/pom.xml
@@ -36,7 +36,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java b/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java
index 54b3dee..a9ea868 100644
--- a/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java
+++ b/integration-tests/main-xml-io/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlIoResource.java
@@ -31,8 +31,8 @@ import javax.ws.rs.core.MediaType;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.TemplatedRouteBuilder;
+import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader;
 import org.apache.camel.spi.RoutesBuilderLoader;
-import org.apache.camel.xml.in.XmlRoutesBuilderLoader;
 
 @Path("/test")
 @ApplicationScoped
diff --git a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java
index 239e9b1..b731df8 100644
--- a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java
+++ b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java
@@ -24,10 +24,10 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 import io.restassured.path.json.JsonPath;
+import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader;
 import org.apache.camel.quarkus.core.DisabledModelJAXBContextFactory;
 import org.apache.camel.quarkus.core.DisabledModelToXMLDumper;
 import org.apache.camel.xml.in.ModelParserXMLRoutesDefinitionLoader;
-import org.apache.camel.xml.in.XmlRoutesBuilderLoader;
 import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
diff --git a/integration-tests/main-xml-jaxb/pom.xml b/integration-tests/main-xml-jaxb/pom.xml
index e74a92b..aa4b4b3 100644
--- a/integration-tests/main-xml-jaxb/pom.xml
+++ b/integration-tests/main-xml-jaxb/pom.xml
@@ -40,7 +40,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
@@ -153,7 +153,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
diff --git a/integration-tests/main-xml-jaxb/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbResource.java b/integration-tests/main-xml-jaxb/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbResource.java
index 9645e7b..a710b46 100644
--- a/integration-tests/main-xml-jaxb/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbResource.java
+++ b/integration-tests/main-xml-jaxb/src/main/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbResource.java
@@ -28,8 +28,8 @@ import javax.ws.rs.core.MediaType;
 
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.builder.TemplatedRouteBuilder;
+import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader;
 import org.apache.camel.spi.RoutesBuilderLoader;
-import org.apache.camel.xml.in.XmlRoutesBuilderLoader;
 
 @Path("/test")
 @ApplicationScoped
diff --git a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
index a1accb2..fc9f0f3 100644
--- a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
+++ b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
@@ -23,8 +23,8 @@ import javax.ws.rs.core.MediaType;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.path.json.JsonPath;
+import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader;
 import org.apache.camel.xml.in.ModelParserXMLRoutesDefinitionLoader;
-import org.apache.camel.xml.in.XmlRoutesBuilderLoader;
 import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.xml.jaxb.JaxbModelToXMLDumper;
 import org.junit.jupiter.api.Test;
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 993dfa7..bcbb9dd 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -2050,6 +2050,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-xml-io-dsl</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-xml-jaxb</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -5247,6 +5252,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-xml-io-dsl</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-xml-jaxb</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>

[camel-quarkus] 06/13: dsl: regen

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 46209bd43696e5d1c5344c8161141a87af045924
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Mar 2 15:59:27 2021 +0100

    dsl: regen
---
 catalog/pom.xml                                    | 26 ++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  6 ++--
 integration-tests/csimple/pom.xml                  |  2 +-
 integration-tests/dataformats-json/pom.xml         |  2 +-
 integration-tests/main-devmode/pom.xml             |  2 +-
 integration-tests/main-xml-io/pom.xml              |  2 +-
 integration-tests/main-yaml/pom.xml                |  4 +--
 .../src/main/resources/routes/my-rests.yaml        | 32 +++++++++++-----------
 .../src/main/resources/routes/my-routes.yaml       | 32 +++++++++++-----------
 9 files changed, 67 insertions(+), 41 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index c711d29..5f9d1e0 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -4105,6 +4105,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-xml-io-dsl</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-xml-jaxb</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
@@ -4209,6 +4222,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-yaml-dsl</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-yammer</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/extensions-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index afab50f..9acb91c 100644
--- a/extensions-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions-core/yaml-dsl/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -21,10 +21,10 @@
 #   mvn -N cq:update-quarkus-metadata
 #
 ---
-name: "Camel XML IO DSL"
-description: "An XML stack for parsing XML route definitions"
+name: "Camel YAML DSL"
+description: "An YAML stack for parsing YAML route definitions"
 metadata:
-  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/xml-io-dsl.html"
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/yaml-dsl.html"
   categories:
   - "integration"
   status:
diff --git a/integration-tests/csimple/pom.xml b/integration-tests/csimple/pom.xml
index 75f1712..bd6c25d 100644
--- a/integration-tests/csimple/pom.xml
+++ b/integration-tests/csimple/pom.xml
@@ -118,7 +118,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
diff --git a/integration-tests/dataformats-json/pom.xml b/integration-tests/dataformats-json/pom.xml
index d6e1968..c799d65 100644
--- a/integration-tests/dataformats-json/pom.xml
+++ b/integration-tests/dataformats-json/pom.xml
@@ -220,7 +220,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
diff --git a/integration-tests/main-devmode/pom.xml b/integration-tests/main-devmode/pom.xml
index d2143bb..6a5289b 100644
--- a/integration-tests/main-devmode/pom.xml
+++ b/integration-tests/main-devmode/pom.xml
@@ -149,7 +149,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
diff --git a/integration-tests/main-xml-io/pom.xml b/integration-tests/main-xml-io/pom.xml
index a621855..946705e 100644
--- a/integration-tests/main-xml-io/pom.xml
+++ b/integration-tests/main-xml-io/pom.xml
@@ -153,7 +153,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+            <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
diff --git a/integration-tests/main-yaml/pom.xml b/integration-tests/main-yaml/pom.xml
index 0cda9bc..2666d8a 100644
--- a/integration-tests/main-yaml/pom.xml
+++ b/integration-tests/main-yaml/pom.xml
@@ -153,7 +153,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xml-io-deployment</artifactId>
+            <artifactId>camel-quarkus-xpath-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
@@ -166,7 +166,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-xpath-deployment</artifactId>
+            <artifactId>camel-quarkus-yaml-dsl-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
             <scope>test</scope>
diff --git a/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml b/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml
index e56034e..b246556 100644
--- a/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml
+++ b/integration-tests/main-yaml/src/main/resources/routes/my-rests.yaml
@@ -1,19 +1,19 @@
-## ---------------------------------------------------------------------------
-## 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.
-## ---------------------------------------------------------------------------
+#
+# 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.
+#
 
 - rest:
     path: "/greeting"
diff --git a/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml b/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml
index 4cd422b..e6ae42f 100644
--- a/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml
+++ b/integration-tests/main-yaml/src/main/resources/routes/my-routes.yaml
@@ -1,19 +1,19 @@
-## ---------------------------------------------------------------------------
-## 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.
-## ---------------------------------------------------------------------------
+#
+# 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.
+#
 
 - route:
     id: "my-yaml-route"

[camel-quarkus] 07/13: dsl: fix findings

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7271999f67c09d177d8680c3fb430e63448009b4
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Mar 2 17:57:55 2021 +0100

    dsl: fix findings
---
 .../pages/reference/extensions/xml-io-dsl.adoc     |  7 ++--
 .../java/joor/deployment/JavaJoorDslProcessor.java | 37 ++++++++++++++++++++++
 .../dsl/xml/io/deployment/XmlIoDslProcessor.java   | 30 ++++++++++++++++++
 extensions-core/xml-io-dsl/runtime/pom.xml         |  4 +--
 .../dsl/yaml/deployment/YamlDslProcessor.java      | 30 ++++++++++++++++++
 5 files changed, 102 insertions(+), 6 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc b/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc
index c76bd4a..2c9847c 100644
--- a/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/xml-io-dsl.adoc
@@ -1,17 +1,16 @@
 // Do not edit directly!
 // This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
 = XML IO DSL
-:page-aliases: extensions/xml-io-dsl.adoc
 :cq-artifact-id: camel-quarkus-xml-io-dsl
 :cq-native-supported: true
 :cq-status: Stable
 :cq-description: An XML stack for parsing XML route definitions
 :cq-deprecated: false
-:cq-jvm-since: 1.0.0
-:cq-native-since: 1.0.0
+:cq-jvm-since: 1.8.0
+:cq-native-since: 1.8.0
 
 [.badges]
-[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0##
+[.badge-key]##JVM since##[.badge-supported]##1.8.0## [.badge-key]##Native since##[.badge-supported]##1.8.0##
 
 An XML stack for parsing XML route definitions
 
diff --git a/extensions-core/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java b/extensions-core/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
new file mode 100644
index 0000000..e9a1cde
--- /dev/null
+++ b/extensions-core/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
@@ -0,0 +1,37 @@
+/*
+ * 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.dsl.java.joor.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+
+public class JavaJoorDslProcessor {
+    private static final String FEATURE = "camel-java-joor-dsl";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep(onlyIf = NativeBuild.class)
+    void nativeUnsupported() {
+        throw new RuntimeException("The " + FEATURE + " extension is not supported in native mode "
+                + "as loading Java code at runtime is not supported on GraalVM");
+    }
+}
diff --git a/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java b/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java
new file mode 100644
index 0000000..1ef7a72
--- /dev/null
+++ b/extensions-core/xml-io-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/xml/io/deployment/XmlIoDslProcessor.java
@@ -0,0 +1,30 @@
+/*
+ * 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.dsl.xml.io.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+public class XmlIoDslProcessor {
+    private static final String FEATURE = "camel-xml-io-dsl";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+}
diff --git a/extensions-core/xml-io-dsl/runtime/pom.xml b/extensions-core/xml-io-dsl/runtime/pom.xml
index 3bd775d..8089f6d 100644
--- a/extensions-core/xml-io-dsl/runtime/pom.xml
+++ b/extensions-core/xml-io-dsl/runtime/pom.xml
@@ -31,8 +31,8 @@
     <description>An XML stack for parsing XML route definitions</description>
 
     <properties>
-        <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince>
-        <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince>
+        <camel.quarkus.jvmSince>1.8.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>1.8.0</camel.quarkus.nativeSince>
     </properties>
 
     <dependencyManagement>
diff --git a/extensions-core/yaml-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/yaml/deployment/YamlDslProcessor.java b/extensions-core/yaml-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/yaml/deployment/YamlDslProcessor.java
new file mode 100644
index 0000000..d55cd92
--- /dev/null
+++ b/extensions-core/yaml-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/yaml/deployment/YamlDslProcessor.java
@@ -0,0 +1,30 @@
+/*
+ * 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.dsl.yaml.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+public class YamlDslProcessor {
+    private static final String FEATURE = "camel-yaml-dsl";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+}

[camel-quarkus] 08/13: dsl: remove support for the old route definition loader

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit f195598dec6076df691819fe7c6b3e1d82c8b7f9
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Mon Mar 8 12:36:50 2021 +0100

    dsl: remove support for the old route definition loader
---
 .../core/deployment/CamelContextProcessor.java     |  3 ---
 .../quarkus/core/deployment/CamelProcessor.java    |  9 +------
 .../spi/CamelRoutesLoaderBuildItems.java           | 15 -----------
 .../camel/quarkus/core/CamelContextRecorder.java   |  3 ---
 .../apache/camel/quarkus/core/CamelRecorder.java   |  5 ----
 .../camel/quarkus/core/FastCamelContext.java       |  9 +++----
 .../xml/io/deployment/XmlIoProcessor.java          | 10 --------
 .../quarkus/component/xml/io/XmlIoRecorder.java    | 30 ----------------------
 .../camel/quarkus/main/CoreMainXmlIoTest.java      |  4 +--
 .../camel/quarkus/main/CoreMainXmlJaxbTest.java    |  4 +--
 10 files changed, 9 insertions(+), 83 deletions(-)

diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
index ba6822a..8ca5dba 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
@@ -37,7 +37,6 @@ import org.apache.camel.quarkus.core.deployment.spi.CamelModelJAXBContextFactory
 import org.apache.camel.quarkus.core.deployment.spi.CamelModelToXMLDumperBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRegistryBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesBuilderClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesLoaderBuildItems;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRuntimeTaskBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelStartupStepRecorderBuildItem;
@@ -72,7 +71,6 @@ public class CamelContextProcessor {
             CamelRegistryBuildItem registry,
             CamelTypeConverterRegistryBuildItem typeConverterRegistry,
             CamelModelJAXBContextFactoryBuildItem modelJAXBContextFactory,
-            CamelRoutesLoaderBuildItems.Xml xmlLoader,
             CamelModelToXMLDumperBuildItem modelDumper,
             CamelFactoryFinderResolverBuildItem factoryFinderResolver,
             List<CamelContextCustomizerBuildItem> customizers,
@@ -83,7 +81,6 @@ public class CamelContextProcessor {
                 registry.getRegistry(),
                 typeConverterRegistry.getRegistry(),
                 modelJAXBContextFactory.getContextFactory(),
-                xmlLoader.getLoader(),
                 modelDumper.getValue(),
                 factoryFinderResolver.getFactoryFinderResolver(),
                 startupStepRecorder.getValue(),
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
index fa257da..e37c200 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelProcessor.java
@@ -52,7 +52,6 @@ import org.apache.camel.quarkus.core.deployment.spi.CamelFactoryFinderResolverBu
 import org.apache.camel.quarkus.core.deployment.spi.CamelModelJAXBContextFactoryBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelModelToXMLDumperBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesBuilderClassBuildItem;
-import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesLoaderBuildItems;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServiceBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServiceDestination;
 import org.apache.camel.quarkus.core.deployment.spi.CamelServiceFilter;
@@ -151,6 +150,7 @@ class CamelProcessor {
                 true,
                 "META-INF/services/org/apache/camel/*",
                 "META-INF/services/org/apache/camel/routes-loader/*",
+                "META-INF/services/org/apache/camel/resource-resolver/*",
                 "META-INF/services/org/apache/camel/invoke-on-header/*",
                 "META-INF/services/org/apache/camel/management/*",
                 "META-INF/services/org/apache/camel/model/*",
@@ -269,13 +269,6 @@ class CamelProcessor {
     @Overridable
     @BuildStep
     @Record(value = ExecutionTime.STATIC_INIT, optional = true)
-    public CamelRoutesLoaderBuildItems.Xml createXMLRoutesLoader(CamelRecorder recorder) {
-        return new CamelRoutesLoaderBuildItems.Xml(recorder.newDisabledXMLRoutesDefinitionLoader());
-    }
-
-    @Overridable
-    @BuildStep
-    @Record(value = ExecutionTime.STATIC_INIT, optional = true)
     public CamelModelToXMLDumperBuildItem createModelToXMLDumper(CamelRecorder recorder) {
         return new CamelModelToXMLDumperBuildItem(recorder.newDisabledModelToXMLDumper());
     }
diff --git a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelRoutesLoaderBuildItems.java b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelRoutesLoaderBuildItems.java
index 898fe1e..71cee44 100644
--- a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelRoutesLoaderBuildItems.java
+++ b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/spi/CamelRoutesLoaderBuildItems.java
@@ -19,7 +19,6 @@ package org.apache.camel.quarkus.core.deployment.spi;
 import io.quarkus.builder.item.SimpleBuildItem;
 import io.quarkus.runtime.RuntimeValue;
 import org.apache.camel.quarkus.core.RegistryRoutesLoader;
-import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 
 public final class CamelRoutesLoaderBuildItems {
     private CamelRoutesLoaderBuildItems() {
@@ -40,18 +39,4 @@ public final class CamelRoutesLoaderBuildItems {
         }
     }
 
-    /**
-     * Holds the {@link XMLRoutesDefinitionLoader} instance.
-     */
-    public static final class Xml extends SimpleBuildItem {
-        private final RuntimeValue<XMLRoutesDefinitionLoader> value;
-
-        public Xml(RuntimeValue<XMLRoutesDefinitionLoader> value) {
-            this.value = value;
-        }
-
-        public RuntimeValue<XMLRoutesDefinitionLoader> getLoader() {
-            return value;
-        }
-    }
 }
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
index 247b6b1..c73e8f7 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
@@ -31,7 +31,6 @@ import org.apache.camel.spi.ModelToXMLDumper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 
 @Recorder
 public class CamelContextRecorder {
@@ -39,7 +38,6 @@ public class CamelContextRecorder {
             RuntimeValue<Registry> registry,
             RuntimeValue<TypeConverterRegistry> typeConverterRegistry,
             RuntimeValue<ModelJAXBContextFactory> contextFactory,
-            RuntimeValue<XMLRoutesDefinitionLoader> xmlLoader,
             RuntimeValue<ModelToXMLDumper> xmlModelDumper,
             RuntimeValue<FactoryFinderResolver> factoryFinderResolver,
             RuntimeValue<StartupStepRecorder> startupStepRecorder,
@@ -50,7 +48,6 @@ public class CamelContextRecorder {
         FastCamelContext context = new FastCamelContext(
                 factoryFinderResolver.getValue(),
                 version,
-                xmlLoader.getValue(),
                 xmlModelDumper.getValue());
 
         context.setDefaultExtension(RuntimeCamelCatalog.class, () -> new CamelRuntimeCatalog(config.runtimeCatalog));
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
index f8830a7..d4997d4 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
@@ -32,7 +32,6 @@ import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.spi.TypeConverterLoader;
 import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 import org.apache.camel.support.startup.DefaultStartupStepRecorder;
 
 @Recorder
@@ -97,10 +96,6 @@ public class CamelRecorder {
         return new RuntimeValue<>(new DisabledModelJAXBContextFactory());
     }
 
-    public RuntimeValue<XMLRoutesDefinitionLoader> newDisabledXMLRoutesDefinitionLoader() {
-        return new RuntimeValue<>(new DisabledXMLRoutesDefinitionLoader());
-    }
-
     public RuntimeValue<ModelToXMLDumper> newDisabledModelToXMLDumper() {
         return new RuntimeValue<>(new DisabledModelToXMLDumper());
     }
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 a035c07..61908a8 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
@@ -64,6 +64,7 @@ import org.apache.camel.impl.engine.DefaultNodeIdFactory;
 import org.apache.camel.impl.engine.DefaultPackageScanClassResolver;
 import org.apache.camel.impl.engine.DefaultPackageScanResourceResolver;
 import org.apache.camel.impl.engine.DefaultReactiveExecutor;
+import org.apache.camel.impl.engine.DefaultResourceLoader;
 import org.apache.camel.impl.engine.DefaultRouteController;
 import org.apache.camel.impl.engine.DefaultRouteFactory;
 import org.apache.camel.impl.engine.DefaultRoutesLoader;
@@ -142,6 +143,7 @@ import org.apache.camel.spi.ProcessorFactory;
 import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spi.ReactiveExecutor;
 import org.apache.camel.spi.Registry;
+import org.apache.camel.spi.ResourceLoader;
 import org.apache.camel.spi.RestBindingJaxbDataFormatFactory;
 import org.apache.camel.spi.RestRegistryFactory;
 import org.apache.camel.spi.RouteController;
@@ -167,16 +169,13 @@ import org.apache.camel.util.ObjectHelper;
 
 public class FastCamelContext extends AbstractCamelContext implements CatalogCamelContext, ModelCamelContext {
     private final String version;
-    private final XMLRoutesDefinitionLoader xmlLoader;
     private final ModelToXMLDumper modelDumper;
     private Model model;
 
-    public FastCamelContext(FactoryFinderResolver factoryFinderResolver, String version, XMLRoutesDefinitionLoader xmlLoader,
-            ModelToXMLDumper modelDumper) {
+    public FastCamelContext(FactoryFinderResolver factoryFinderResolver, String version, ModelToXMLDumper modelDumper) {
         super(false);
 
         this.version = version;
-        this.xmlLoader = xmlLoader;
         this.modelDumper = modelDumper;
         this.model = new FastModel(this);
 
@@ -418,7 +417,7 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam
 
     @Override
     protected XMLRoutesDefinitionLoader createXMLRoutesDefinitionLoader() {
-        return xmlLoader;
+        return new DisabledXMLRoutesDefinitionLoader();
     }
 
     @Override
diff --git a/extensions-core/xml-io/deployment/src/main/java/org/apache/camel/quarkus/component/xml/io/deployment/XmlIoProcessor.java b/extensions-core/xml-io/deployment/src/main/java/org/apache/camel/quarkus/component/xml/io/deployment/XmlIoProcessor.java
index 6c63686..2c22dbe 100644
--- a/extensions-core/xml-io/deployment/src/main/java/org/apache/camel/quarkus/component/xml/io/deployment/XmlIoProcessor.java
+++ b/extensions-core/xml-io/deployment/src/main/java/org/apache/camel/quarkus/component/xml/io/deployment/XmlIoProcessor.java
@@ -17,12 +17,8 @@
 package org.apache.camel.quarkus.component.xml.io.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.CapabilityBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import org.apache.camel.quarkus.component.xml.io.XmlIoRecorder;
-import org.apache.camel.quarkus.core.deployment.spi.CamelRoutesLoaderBuildItems;
 import org.apache.camel.quarkus.support.common.CamelCapabilities;
 
 class XmlIoProcessor {
@@ -37,10 +33,4 @@ class XmlIoProcessor {
     CapabilityBuildItem capability() {
         return new CapabilityBuildItem(CamelCapabilities.XML);
     }
-
-    @BuildStep
-    @Record(value = ExecutionTime.STATIC_INIT, optional = true)
-    CamelRoutesLoaderBuildItems.Xml xmlLoader(XmlIoRecorder recorder) {
-        return new CamelRoutesLoaderBuildItems.Xml(recorder.newIoXMLRoutesDefinitionLoader());
-    }
 }
diff --git a/extensions-core/xml-io/runtime/src/main/java/org/apache/camel/quarkus/component/xml/io/XmlIoRecorder.java b/extensions-core/xml-io/runtime/src/main/java/org/apache/camel/quarkus/component/xml/io/XmlIoRecorder.java
deleted file mode 100644
index 7eeb5e6..0000000
--- a/extensions-core/xml-io/runtime/src/main/java/org/apache/camel/quarkus/component/xml/io/XmlIoRecorder.java
+++ /dev/null
@@ -1,30 +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.xml.io;
-
-import io.quarkus.runtime.RuntimeValue;
-import io.quarkus.runtime.annotations.Recorder;
-import org.apache.camel.spi.XMLRoutesDefinitionLoader;
-import org.apache.camel.xml.in.ModelParserXMLRoutesDefinitionLoader;
-
-@Recorder
-public class XmlIoRecorder {
-
-    public RuntimeValue<XMLRoutesDefinitionLoader> newIoXMLRoutesDefinitionLoader() {
-        return new RuntimeValue<>(new ModelParserXMLRoutesDefinitionLoader());
-    }
-}
diff --git a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java
index b731df8..1956ad0 100644
--- a/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java
+++ b/integration-tests/main-xml-io/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlIoTest.java
@@ -27,7 +27,7 @@ import io.restassured.path.json.JsonPath;
 import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader;
 import org.apache.camel.quarkus.core.DisabledModelJAXBContextFactory;
 import org.apache.camel.quarkus.core.DisabledModelToXMLDumper;
-import org.apache.camel.xml.in.ModelParserXMLRoutesDefinitionLoader;
+import org.apache.camel.quarkus.core.DisabledXMLRoutesDefinitionLoader;
 import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -50,7 +50,7 @@ public class CoreMainXmlIoTest {
         assertThat(p.getString("xml-model-factory")).isEqualTo(DisabledModelJAXBContextFactory.class.getName());
 
         assertThat(p.getString("xml-routes-definitions-loader"))
-                .isEqualTo(ModelParserXMLRoutesDefinitionLoader.class.getName());
+                .isEqualTo(DisabledXMLRoutesDefinitionLoader.class.getName());
         assertThat(p.getString("xml-routes-builder-loader"))
                 .isEqualTo(XmlRoutesBuilderLoader.class.getName());
 
diff --git a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
index fc9f0f3..3db41ed 100644
--- a/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
+++ b/integration-tests/main-xml-jaxb/src/test/java/org/apache/camel/quarkus/main/CoreMainXmlJaxbTest.java
@@ -24,7 +24,7 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.path.json.JsonPath;
 import org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader;
-import org.apache.camel.xml.in.ModelParserXMLRoutesDefinitionLoader;
+import org.apache.camel.quarkus.core.DisabledXMLRoutesDefinitionLoader;
 import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.xml.jaxb.JaxbModelToXMLDumper;
 import org.junit.jupiter.api.Test;
@@ -48,7 +48,7 @@ public class CoreMainXmlJaxbTest {
         assertThat(p.getString("xml-model-factory")).isEqualTo(DefaultModelJAXBContextFactory.class.getName());
 
         assertThat(p.getString("xml-routes-definitions-loader"))
-                .isEqualTo(ModelParserXMLRoutesDefinitionLoader.class.getName());
+                .isEqualTo(DisabledXMLRoutesDefinitionLoader.class.getName());
         assertThat(p.getString("xml-routes-builder-loader"))
                 .isEqualTo(XmlRoutesBuilderLoader.class.getName());
 

[camel-quarkus] 10/13: Splunk native support #1698

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ac795f9aa3287a8eb56c5f00dfdf883df3936b79
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Tue Mar 16 11:29:38 2021 +0100

    Splunk native support #1698
---
 .../ROOT/pages/reference/extensions/splunk.adoc    |  16 +-
 .../reference/components/aws-secrets-manager.adoc  |   1 -
 .../ROOT/partials/reference/components/splunk.adoc |   8 +-
 extensions-jvm/pom.xml                             |   1 -
 .../splunk/deployment/SplunkProcessor.java         |  46 -----
 .../component/splunk/it/SplunkResource.java        |  51 -----
 extensions/pom.xml                                 |   1 +
 .../splunk/deployment/pom.xml                      |   4 +-
 .../splunk/deployment/SplunkProcessor.java         |  92 +++++++++
 {extensions-jvm => extensions}/splunk/pom.xml      |   5 +-
 .../splunk/runtime/pom.xml                         |   8 +-
 .../main/resources/META-INF/quarkus-extension.yaml |   3 +-
 integration-tests/pom.xml                          |   1 +
 .../splunk}/pom.xml                                |  68 ++++++-
 .../component/splunk/it/SplunkResource.java        | 207 +++++++++++++++++++++
 .../quarkus/component/splunk/it/SplunkIT.java      |  16 +-
 .../quarkus/component/splunk/it/SplunkTest.java    | 150 +++++++++++++++
 .../component/splunk/it/SplunkTestResource.java    |  79 ++++++++
 tooling/scripts/test-categories.yaml               |   1 +
 19 files changed, 625 insertions(+), 133 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/splunk.adoc b/docs/modules/ROOT/pages/reference/extensions/splunk.adoc
index 2031f44..0368c70 100644
--- a/docs/modules/ROOT/pages/reference/extensions/splunk.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/splunk.adoc
@@ -2,15 +2,15 @@
 // This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
 = Splunk
 :cq-artifact-id: camel-quarkus-splunk
-:cq-native-supported: false
-:cq-status: Preview
+:cq-native-supported: true
+:cq-status: Stable
 :cq-description: Publish or search for events in Splunk.
 :cq-deprecated: false
-:cq-jvm-since: 1.1.0
-:cq-native-since: n/a
+:cq-jvm-since: 1.8.0
+:cq-native-since: 1.8.0
 
 [.badges]
-[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+[.badge-key]##JVM since##[.badge-supported]##1.8.0## [.badge-key]##Native since##[.badge-supported]##1.8.0##
 
 Publish or search for events in Splunk.
 
@@ -31,3 +31,9 @@ Please refer to the above link for usage and configuration details.
 ----
 
 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/partials/reference/components/aws-secrets-manager.adoc b/docs/modules/ROOT/partials/reference/components/aws-secrets-manager.adoc
deleted file mode 100644
index a509c1d..0000000
--- a/docs/modules/ROOT/partials/reference/components/aws-secrets-manager.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/splunk.adoc b/docs/modules/ROOT/partials/reference/components/splunk.adoc
index 6d99c40..c939e40 100644
--- a/docs/modules/ROOT/partials/reference/components/splunk.adoc
+++ b/docs/modules/ROOT/partials/reference/components/splunk.adoc
@@ -2,11 +2,11 @@
 // This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
 :cq-artifact-id: camel-quarkus-splunk
 :cq-artifact-id-base: splunk
-:cq-native-supported: false
-:cq-status: Preview
+:cq-native-supported: true
+:cq-status: Stable
 :cq-deprecated: false
-:cq-jvm-since: 1.1.0
-:cq-native-since: n/a
+:cq-jvm-since: 1.8.0
+:cq-native-since: 1.8.0
 :cq-camel-part-name: splunk
 :cq-camel-part-title: Splunk
 :cq-camel-part-description: Publish or search for events in Splunk.
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 97e7661..6bc04b9 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -107,7 +107,6 @@
         <module>snmp</module>
         <module>soroush</module>
         <module>spark</module>
-        <module>splunk</module>
         <module>splunk-hec</module>
         <module>stitch</module>
         <module>stomp</module>
diff --git a/extensions-jvm/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java b/extensions-jvm/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java
deleted file mode 100644
index 2d0ae75..0000000
--- a/extensions-jvm/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java
+++ /dev/null
@@ -1,46 +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.splunk.deployment;
-
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.annotations.ExecutionTime;
-import io.quarkus.deployment.annotations.Record;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.pkg.steps.NativeBuild;
-import org.apache.camel.quarkus.core.JvmOnlyRecorder;
-import org.jboss.logging.Logger;
-
-class SplunkProcessor {
-
-    private static final Logger LOG = Logger.getLogger(SplunkProcessor.class);
-    private static final String FEATURE = "camel-splunk";
-
-    @BuildStep
-    FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
-
-    /**
-     * Remove this once this extension starts supporting the native mode.
-     */
-    @BuildStep(onlyIf = NativeBuild.class)
-    @Record(value = ExecutionTime.RUNTIME_INIT)
-    void warnJvmInNative(JvmOnlyRecorder recorder) {
-        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
-        recorder.warnJvmInNative(FEATURE); // warn at runtime
-    }
-}
diff --git a/extensions-jvm/splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java b/extensions-jvm/splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
deleted file mode 100644
index 55b4cfe..0000000
--- a/extensions-jvm/splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
+++ /dev/null
@@ -1,51 +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.splunk.it;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import org.apache.camel.CamelContext;
-import org.jboss.logging.Logger;
-
-@Path("/splunk")
-@ApplicationScoped
-public class SplunkResource {
-
-    private static final Logger LOG = Logger.getLogger(SplunkResource.class);
-
-    private static final String COMPONENT_SPLUNK = "splunk";
-    @Inject
-    CamelContext context;
-
-    @Path("/load/component/splunk")
-    @GET
-    @Produces(MediaType.TEXT_PLAIN)
-    public Response loadComponentSplunk() throws Exception {
-        /* This is an autogenerated test */
-        if (context.getComponent(COMPONENT_SPLUNK) != null) {
-            return Response.ok().build();
-        }
-        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SPLUNK);
-        return Response.status(500, COMPONENT_SPLUNK + " could not be loaded from the Camel context").build();
-    }
-}
diff --git a/extensions/pom.xml b/extensions/pom.xml
index f83d486..f2f6b9e 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -206,6 +206,7 @@
         <module>snakeyaml</module>
         <module>soap</module>
         <module>solr</module>
+        <module>splunk</module>
         <module>spring-rabbitmq</module>
         <module>sql</module>
         <module>ssh</module>
diff --git a/extensions-jvm/splunk/deployment/pom.xml b/extensions/splunk/deployment/pom.xml
similarity index 91%
rename from extensions-jvm/splunk/deployment/pom.xml
rename to extensions/splunk/deployment/pom.xml
index ec453ef..a926b21 100644
--- a/extensions-jvm/splunk/deployment/pom.xml
+++ b/extensions/splunk/deployment/pom.xml
@@ -17,7 +17,9 @@
     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">
+<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>
diff --git a/extensions/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java b/extensions/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java
new file mode 100644
index 0000000..69ae59d
--- /dev/null
+++ b/extensions/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java
@@ -0,0 +1,92 @@
+/*
+ * 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.splunk.deployment;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+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.NativeImageResourceBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexView;
+import org.joda.time.DateTimeZone;
+
+class SplunkProcessor {
+
+    private static final String FEATURE = "camel-splunk";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
+        return new ExtensionSslNativeSupportBuildItem(FEATURE);
+    }
+
+    @BuildStep
+    RuntimeInitializedClassBuildItem runtimeInitBcryptUtil() {
+        // this class uses a SecureRandom which needs to be initialised at run time
+        return new RuntimeInitializedClassBuildItem("com.splunk.HttpService");
+    }
+
+    @BuildStep
+    ReflectiveClassBuildItem registerForReflection(CombinedIndexBuildItem combinedIndex) {
+        IndexView index = combinedIndex.getIndex();
+
+        List<String> dtos = new LinkedList<>();
+        dtos.addAll(index.getAllKnownSubclasses(DotName.createSimple("com.splunk.Input")).stream()
+                .map(c -> c.name().toString()).collect(Collectors.toList()));
+
+        return new ReflectiveClassBuildItem(false, false, dtos.toArray(new String[dtos.size()]));
+    }
+
+    @BuildStep
+    List<ReflectiveClassBuildItem> reflectiveClasses() {
+        return Arrays.asList(new ReflectiveClassBuildItem(false, false, "com.splunk.Index"),
+                new ReflectiveClassBuildItem(false, false, "com.splunk.SavedSearch"),
+                new ReflectiveClassBuildItem(false, false, "com.splunk.Service"));
+    }
+
+    @BuildStep
+    IndexDependencyBuildItem registerDependencyForIndex() {
+        return new IndexDependencyBuildItem("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.splunk");
+    }
+
+    @BuildStep
+    NativeImageResourceBuildItem nativeImageResources() {
+        List<String> timezones = new ArrayList<>();
+        for (String timezone : DateTimeZone.getAvailableIDs()) {
+            String[] zoneParts = timezone.split("/");
+            if (zoneParts.length == 2) {
+                timezones.add(String.format("org/joda/time/tz/data/%s/%s", zoneParts[0], zoneParts[1]));
+            }
+        }
+        return new NativeImageResourceBuildItem(timezones);
+    }
+
+}
diff --git a/extensions-jvm/splunk/pom.xml b/extensions/splunk/pom.xml
similarity index 84%
rename from extensions-jvm/splunk/pom.xml
rename to extensions/splunk/pom.xml
index ffc07b5..f878d22 100644
--- a/extensions-jvm/splunk/pom.xml
+++ b/extensions/splunk/pom.xml
@@ -17,7 +17,9 @@
     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">
+<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>
@@ -33,6 +35,5 @@
     <modules>
         <module>deployment</module>
         <module>runtime</module>
-        <module>integration-test</module>
     </modules>
 </project>
diff --git a/extensions-jvm/splunk/runtime/pom.xml b/extensions/splunk/runtime/pom.xml
similarity index 91%
rename from extensions-jvm/splunk/runtime/pom.xml
rename to extensions/splunk/runtime/pom.xml
index 1cede50..b4567b7 100644
--- a/extensions-jvm/splunk/runtime/pom.xml
+++ b/extensions/splunk/runtime/pom.xml
@@ -17,7 +17,9 @@
     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">
+<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>
@@ -31,7 +33,8 @@
     <description>Publish or search for events in Splunk.</description>
 
     <properties>
-        <camel.quarkus.jvmSince>1.1.0</camel.quarkus.jvmSince>
+        <camel.quarkus.jvmSince>1.8.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>1.8.0</camel.quarkus.nativeSince>
     </properties>
 
     <dependencyManagement>
@@ -79,6 +82,7 @@
         </plugins>
     </build>
 
+
     <profiles>
         <profile>
             <id>full</id>
diff --git a/extensions-jvm/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
similarity index 97%
rename from extensions-jvm/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
rename to extensions/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index de4224a..1a24bcb 100644
--- a/extensions-jvm/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -24,9 +24,8 @@
 name: "Camel Splunk"
 description: "Publish or search for events in Splunk"
 metadata:
-  unlisted: true
   guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/splunk.html"
   categories:
   - "integration"
   status:
-  - "preview"
+  - "stable"
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 08fd199..e85d69f 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -184,6 +184,7 @@
         <module>smallrye-reactive-messaging</module>
         <module>soap</module>
         <module>solr</module>
+        <module>splunk</module>
         <module>spring-rabbitmq</module>
         <module>sql</module>
         <module>ssh</module>
diff --git a/extensions-jvm/splunk/integration-test/pom.xml b/integration-tests/splunk/pom.xml
similarity index 54%
rename from extensions-jvm/splunk/integration-test/pom.xml
rename to integration-tests/splunk/pom.xml
index cdc197b..a6d5639 100644
--- a/extensions-jvm/splunk/integration-test/pom.xml
+++ b/integration-tests/splunk/pom.xml
@@ -17,17 +17,19 @@
     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">
+<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-it</artifactId>
+        <artifactId>camel-quarkus-integration-tests</artifactId>
         <version>1.8.0-SNAPSHOT</version>
-        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-splunk-integration-test</artifactId>
-    <name>Camel Quarkus :: Splunk :: Integration Test</name>
+    <artifactId>camel-quarkus-integration-test-splunk</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Splunk</name>
     <description>Integration tests for Camel Quarkus Splunk extension</description>
 
     <dependencyManagement>
@@ -51,6 +53,14 @@
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy-jackson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-direct</artifactId>
+        </dependency>
 
         <!-- test dependencies -->
         <dependency>
@@ -63,10 +73,28 @@
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</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-direct-deployment</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-splunk-deployment</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
@@ -80,4 +108,34 @@
         </dependency>
     </dependencies>
 
+    <profiles>
+        <profile>
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </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/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java b/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
new file mode 100644
index 0000000..6a8dc72
--- /dev/null
+++ b/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
@@ -0,0 +1,207 @@
+/*
+ * 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.splunk.it;
+
+import java.net.URI;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.splunk.SplunkComponent;
+import org.apache.camel.component.splunk.SplunkConfiguration;
+import org.apache.camel.component.splunk.event.SplunkEvent;
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+
+@Path("/splunk")
+@ApplicationScoped
+public class SplunkResource {
+
+    public static final String PARAM_REMOTE_PORT = "org.apache.camel.quarkus.component.splunk.it.SplunkResource_remotePort";
+    public static final String PARAM_TCP_PORT = "org.apache.camel.quarkus.component.splunk.it.SplunkResource_tcpPort";
+    public static final String SOURCE = "test";
+    public static final String SOURCE_TYPE = "testSource";
+    public static final int LOCAL_TCP_PORT = 9998;
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    ConsumerTemplate consumerTemplate;
+
+    @ConfigProperty(name = PARAM_REMOTE_PORT)
+    Integer port;
+
+    @ConfigProperty(name = PARAM_TCP_PORT)
+    Integer tcpPort;
+
+    @Inject
+    CamelContext camelContext;
+
+    @Named
+    SplunkComponent splunk() {
+        SplunkComponent component = new SplunkComponent();
+        component.setSplunkConfigurationFactory(parameters -> new SplunkConfiguration());
+
+        return component;
+    }
+
+    @Path("/normal")
+    @POST
+    @Produces(MediaType.APPLICATION_JSON)
+    public List normal(String search) throws Exception {
+        String url = String.format(
+                "splunk://normal?scheme=http&port=%d&delay=5000&initEarliestTime=-10s&search="
+                        + search,
+                port);
+
+        final SplunkEvent m1 = consumerTemplate.receiveBody(url, 1000, SplunkEvent.class);
+        final SplunkEvent m2 = consumerTemplate.receiveBody(url, 1000, SplunkEvent.class);
+        final SplunkEvent m3 = consumerTemplate.receiveBody(url, 1000, SplunkEvent.class);
+
+        List result = Arrays.stream(new SplunkEvent[] { m1, m2, m3 })
+                .map(m -> m.getEventData().entrySet().stream()
+                        .filter(e -> !e.getKey().startsWith("_"))
+                        .collect(Collectors.toMap(
+                                Map.Entry::getKey,
+                                Map.Entry::getValue,
+                                (v1, v2) -> v1)))
+                .collect(Collectors.toList());
+
+        return result;
+    }
+
+    @Path("/savedSearch")
+    @POST
+    public String savedSearch(String name) throws Exception {
+        String url = String.format(
+                "splunk://savedsearch?scheme=http&port=%d&delay=500&initEarliestTime=-1m&savedsearch=%s",
+                port, name);
+
+        final SplunkEvent m1 = consumerTemplate.receiveBody(url, 5000, SplunkEvent.class);
+        final SplunkEvent m2 = consumerTemplate.receiveBody(url, 1000, SplunkEvent.class);
+        final SplunkEvent m3 = consumerTemplate.receiveBody(url, 1000, SplunkEvent.class);
+
+        List result = Arrays.stream(new SplunkEvent[] { m1, m2, m3 })
+                .map(m -> {
+                    if (m == null) {
+                        return "null";
+                    }
+                    return m.getEventData().get("_raw");
+                })
+                .collect(Collectors.toList());
+
+        return result.toString();
+    }
+
+    @Path("/directRealtimePolling")
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    public Map directRealtimePolling() throws Exception {
+        final SplunkEvent m1 = consumerTemplate.receiveBody("direct:realtimePolling", 3000, SplunkEvent.class);
+
+        if (m1 == null) {
+            return Collections.emptyMap();
+        }
+
+        Map result = m1.getEventData().entrySet().stream()
+                .filter(e -> !e.getKey().startsWith("_"))
+                .collect(Collectors.toMap(
+                        Map.Entry::getKey,
+                        Map.Entry::getValue,
+                        (v1, v2) -> v1));
+
+        return result;
+    }
+
+    @Path("/startRealtimePolling")
+    @POST
+    public void startPolling(String search) {
+        // use another thread for polling consumer to demonstrate that we can wait before
+        // the message is sent to the queue
+        Executors.newSingleThreadExecutor().execute(() -> {
+            String url = String.format(
+                    "splunk://realtime?scheme=http&port=%d&delay=3000&initEarliestTime=rt-10s&latestTime=RAW(rt+40s)&search="
+                            + search,
+                    port);
+            SplunkEvent body = consumerTemplate.receiveBody(url, SplunkEvent.class);
+            producerTemplate.sendBody("direct:realtimePolling", body);
+        });
+    }
+
+    @Path("/submit")
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response submit(Map<String, String> message, @QueryParam("index") String index) throws Exception {
+        return post(message, "submit", index, null);
+    }
+
+    @Path("/stream")
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response stream(Map<String, String> message, @QueryParam("index") String index) throws Exception {
+        return post(message, "stream", index, null);
+    }
+
+    @Path("/tcp")
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response tcp(Map<String, String> message, @QueryParam("index") String index) throws Exception {
+        return post(message, "tcp", index, tcpPort);
+    }
+
+    private Response post(Map<String, String> message, String endpoint, String index, Integer tcpPort) throws Exception {
+        SplunkEvent se = new SplunkEvent();
+        for (Map.Entry<String, String> e : message.entrySet()) {
+            se.addPair(e.getKey(), e.getValue());
+        }
+
+        String url = String.format(
+                "splunk:%s?scheme=http&port=%d&index=%s&sourceType=%s&source=%s",
+                endpoint, port, index, SOURCE_TYPE, SOURCE);
+        if (tcpPort != null) {
+            url = String.format(
+                    "splunk:%s?username=admin&password=changeit&scheme=http&port=%d&index=%s&sourceType=%s&source=%s&tcpReceiverLocalPort=%d&tcpReceiverPort=%d",
+                    endpoint, port, index, SOURCE_TYPE, SOURCE, LOCAL_TCP_PORT, tcpPort);
+        }
+        final String response = producerTemplate.requestBody(url, se, String.class);
+        return Response
+                .created(new URI("https://camel.apache.org/"))
+                .entity(response)
+                .build();
+    }
+}
diff --git a/extensions-jvm/splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java
similarity index 70%
rename from extensions-jvm/splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
rename to integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java
index 57ddf6d..00bc15c 100644
--- a/extensions-jvm/splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
+++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkIT.java
@@ -16,19 +16,9 @@
  */
 package org.apache.camel.quarkus.component.splunk.it;
 
-import io.quarkus.test.junit.QuarkusTest;
-import io.restassured.RestAssured;
-import org.junit.jupiter.api.Test;
+import io.quarkus.test.junit.NativeImageTest;
 
-@QuarkusTest
-class SplunkTest {
-
-    @Test
-    public void loadComponentSplunk() {
-        /* A simple autogenerated test */
-        RestAssured.get("/splunk/load/component/splunk")
-                .then()
-                .statusCode(200);
-    }
+@NativeImageTest
+class SplunkIT extends SplunkTest {
 
 }
diff --git a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
new file mode 100644
index 0000000..b1ad98f
--- /dev/null
+++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
@@ -0,0 +1,150 @@
+/*
+ * 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.splunk.it;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import io.restassured.http.ContentType;
+import org.apache.camel.util.CollectionHelper;
+import org.junit.Assert;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.anyOf;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+
+@QuarkusTest
+@QuarkusTestResource(SplunkTestResource.class)
+class SplunkTest {
+
+    @Test
+    public void testWriteTcpAndReadNormal() {
+        write("_normal", SplunkTestResource.TEST_INDEX, "tcp");
+
+        List<Map<String, String>> result = RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body(String.format(
+                        "search index=%s sourcetype=%s | rex field=_raw \"Name: (?<name>.*) From: (?<from>.*)\"",
+                        SplunkTestResource.TEST_INDEX, SplunkResource.SOURCE_TYPE))
+                .post("/splunk/normal")
+                .then()
+                .statusCode(200)
+                .extract().as(List.class);
+
+        Assert.assertEquals(3, result.size());
+        Assert.assertEquals("Irma_normal", result.get(0).get("name"));
+        Assert.assertEquals("Earth\"", result.get(0).get("from"));
+        Assert.assertEquals("Leonard_normal", result.get(1).get("name"));
+        Assert.assertEquals("Earth 2.0\"", result.get(1).get("from"));
+        Assert.assertEquals("Sheldon_normal", result.get(2).get("name"));
+        Assert.assertEquals("Alpha Centauri\"", result.get(2).get("from"));
+    }
+
+    @Test
+    public void testWriteSubmitAndReadRealtime() throws InterruptedException, ExecutionException {
+
+        RestAssured.given()
+                .body(String.format(
+                        "search index=%s sourcetype=%s | rex field=_raw \"Name: (?<name>.*) From: (?<from>.*)\"",
+                        SplunkTestResource.TEST_INDEX, SplunkResource.SOURCE_TYPE))
+                .post("/splunk/startRealtimePolling");
+
+        //wait some time to start polling
+        TimeUnit.SECONDS.sleep(3);
+        write("_realtime1", SplunkTestResource.TEST_INDEX, "submit");
+        TimeUnit.SECONDS.sleep(1);
+        write("_realtime2", SplunkTestResource.TEST_INDEX, "submit");
+        TimeUnit.SECONDS.sleep(1);
+        write("_realtime3", SplunkTestResource.TEST_INDEX, "submit");
+        //wait some time to gather the pulls from splunk server
+        TimeUnit.SECONDS.sleep(3);
+        //there should be some data from realtime search in direct (concrete values depends on the speed of writing into index)
+        //test is asserting that there are some
+        RestAssured.get("/splunk/directRealtimePolling")
+                .then()
+                .statusCode(200)
+                .body(containsString("_realtime"));
+    }
+
+    @Test
+    public void testWriteStreamAndReadSaved() throws InterruptedException {
+        int defaultPort = RestAssured.port;
+        String defaultUri = RestAssured.baseURI;
+
+        //create saved search
+        RestAssured.given()
+                .baseUri("http://localhost")
+                .port(Integer.parseInt(System.getProperty(SplunkResource.PARAM_REMOTE_PORT)))
+                .contentType(ContentType.JSON)
+                .param("name", SplunkTestResource.SAVED_SEARCH_NAME)
+                .param("disabled", "0")
+                .param("description", "descritionText")
+                .param("search",
+                        "index=" + SplunkTestResource.TEST_INDEX + " sourcetype=" + SplunkResource.SOURCE_TYPE)
+                .post("/services/saved/searches")
+                .then()
+                .statusCode(anyOf(is(201), is(409)));
+        write("_s", SplunkTestResource.TEST_INDEX, "stream");
+
+        RestAssured.given()
+                .contentType(ContentType.TEXT)
+                .body(SplunkTestResource.SAVED_SEARCH_NAME)
+                .post("/splunk/savedSearch")
+                .then()
+                .statusCode(200)
+                .body(containsString("Name: Sheldon_s"))
+                .body(containsString("Name: Leonard_s"))
+                .body(containsString("Name: Irma_s"));
+    }
+
+    private void write(String suffix, String index, String endpoint) {
+        write(CollectionHelper.mapOf("entity", "Name: Sheldon" + suffix + " From: Alpha Centauri"), "submit",
+                index);
+        write(CollectionHelper.mapOf("entity", "Name: Leonard" + suffix + " From: Earth 2.0"), "submit",
+                index);
+        write(CollectionHelper.mapOf("entity", "Name: Irma" + suffix + " From: Earth"), "submit", index);
+    }
+
+    private void write(Map<String, String> data, String endpoint, String index) {
+
+        String expectedResult = expectedResult(data);
+
+        RestAssured.given()
+                .contentType(ContentType.JSON)
+                .queryParam("index", index)
+                .body(data)
+                .post("/splunk/" + endpoint)
+                .then()
+                .statusCode(201)
+                .body(containsString(expectedResult));
+    }
+
+    private String expectedResult(Map<String, String> data) {
+        String expectedResult = data.entrySet().stream()
+                .map(e -> e.getKey() + "=\"" + e.getValue() + "\"")
+                .collect(Collectors.joining(" "));
+        return expectedResult;
+    }
+
+}
diff --git a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java
new file mode 100644
index 0000000..bf1f98e
--- /dev/null
+++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java
@@ -0,0 +1,79 @@
+/*
+ * 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.splunk.it;
+
+import java.time.Duration;
+import java.util.Map;
+
+import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
+import org.apache.camel.util.CollectionHelper;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.Wait;
+
+public class SplunkTestResource implements QuarkusTestResourceLifecycleManager {
+
+    public static String TEST_INDEX = "testindex";
+    public static String SAVED_SEARCH_NAME = "savedSearchForTest";
+    private static final int REMOTE_PORT = 8089;
+
+    private GenericContainer container;
+
+    @Override
+    public Map<String, String> start() {
+
+        try {
+            container = new GenericContainer("splunk/splunk:8.1.2")
+                    .withExposedPorts(REMOTE_PORT)
+                    .withExposedPorts(SplunkResource.LOCAL_TCP_PORT)
+                    .withEnv("SPLUNK_START_ARGS", "--accept-license")
+                    .withEnv("SPLUNK_PASSWORD", "changeit")
+                    .withEnv("SPLUNK_LICENSE_URI", "Free")
+                    .waitingFor(
+                            Wait.forLogMessage(".*Ansible playbook complete.*\\n", 1)
+                                    .withStartupTimeout(Duration.ofSeconds(120)));
+
+            container.start();
+
+            container.execInContainer("sudo", "sed", "-i", "s/allowRemoteLogin=requireSetPassword/allowRemoteLogin=always/",
+                    "/opt/splunk/etc/system/default/server.conf");
+            container.execInContainer("sudo", "sed", "-i", "s/enableSplunkdSSL = true/enableSplunkdSSL = false/",
+                    "/opt/splunk/etc/system/default/server.conf");
+            container.execInContainer("sudo", "./bin/splunk", "restart");
+            container.execInContainer("sudo", "./bin/splunk", "add", "index", TEST_INDEX);
+            container.execInContainer("sudo", "./bin/splunk", "add", "tcp", String.valueOf(SplunkResource.LOCAL_TCP_PORT),
+                    "-sourcetype",
+                    SplunkResource.SOURCE_TYPE);
+
+            return CollectionHelper.mapOf(
+                    SplunkResource.PARAM_REMOTE_PORT, container.getMappedPort(REMOTE_PORT).toString(),
+                    SplunkResource.PARAM_TCP_PORT, container.getMappedPort(SplunkResource.LOCAL_TCP_PORT).toString());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public void stop() {
+        try {
+            if (container != null) {
+                container.stop();
+            }
+        } catch (Exception e) {
+            // Ignored
+        }
+    }
+}
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 83a95ca..7384753 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -126,6 +126,7 @@ messaging-networking1:
   - kafka
   - messaging
   - nats
+  - splunk
   - spring-rabbitmq
   - rabbitmq
   - ftp

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

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

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

    Upgrade to Camel 3.9.0
---
 catalog/pom.xml                                    |  26 -----
 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-jvm/pom.xml                             |   1 -
 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                                            |   2 +-
 poms/bom/pom.xml                                   |  15 ---
 tooling/scripts/test-categories.yaml               |   1 -
 69 files changed, 211 insertions(+), 1167 deletions(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 54913c9..d8b04d5 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -270,19 +270,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-aws-xray</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-aws2-athena</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
@@ -530,19 +517,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-jvm/pom.xml b/extensions-jvm/pom.xml
index ec38785..97e7661 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -39,7 +39,6 @@
         <module>asterisk</module>
         <module>atmos</module>
         <module>atomix</module>
-        <module>aws-xray</module>
         <module>azure-storage-datalake</module>
         <module>barcode</module>
         <module>beanio</module>
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 30ea475..98c3c8f 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -69,7 +69,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..ed5d452 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
 
         <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.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 8f861cd..89e8007 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

[camel-quarkus] 02/13: Optaplanner : upgrade to 8.x extension #2243

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit cfc9edd5f0e974896bd23580bfef7634bea11507
Author: Zineb Bendhiba <be...@gmail.com>
AuthorDate: Tue Feb 16 11:52:48 2021 +0100

    Optaplanner : upgrade to 8.x extension #2243
---
 extensions/optaplanner/deployment/pom.xml          | 16 ++++-----------
 .../deployment/OptaplannerProcessor.java           |  2 --
 extensions/optaplanner/runtime/pom.xml             |  4 ++++
 integration-tests/optaplanner/pom.xml              |  4 ----
 .../optaplanner/it/bootstrap/DataGenerator.java    |  2 +-
 .../component/optaplanner/it/domain/Lesson.java    |  7 -------
 .../component/optaplanner/it/domain/Room.java      |  6 ------
 .../component/optaplanner/it/domain/Timeslot.java  |  7 -------
 pom.xml                                            |  2 +-
 poms/bom/pom.xml                                   | 23 +++++++++++-----------
 10 files changed, 22 insertions(+), 51 deletions(-)

diff --git a/extensions/optaplanner/deployment/pom.xml b/extensions/optaplanner/deployment/pom.xml
index 18f4640..f5882b2 100644
--- a/extensions/optaplanner/deployment/pom.xml
+++ b/extensions/optaplanner/deployment/pom.xml
@@ -29,18 +29,6 @@
     <artifactId>camel-quarkus-optaplanner-deployment</artifactId>
     <name>Camel Quarkus :: OptaPlanner :: Deployment</name>
 
-    <dependencyManagement>
-        <dependencies>
-          <dependency>
-                <groupId>org.optaplanner</groupId>
-                <artifactId>optaplanner-quarkus-deployment</artifactId>
-                <version>${optaplanner.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
     <dependencies>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
@@ -54,6 +42,10 @@
             <groupId>org.optaplanner</groupId>
             <artifactId>optaplanner-quarkus-deployment</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.optaplanner</groupId>
+            <artifactId>optaplanner-quarkus-jackson-deployment</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions/optaplanner/deployment/src/main/java/org/apache/camel/quarkus/component/optaplanner/deployment/OptaplannerProcessor.java b/extensions/optaplanner/deployment/src/main/java/org/apache/camel/quarkus/component/optaplanner/deployment/OptaplannerProcessor.java
index 3956d43..140c65b 100644
--- a/extensions/optaplanner/deployment/src/main/java/org/apache/camel/quarkus/component/optaplanner/deployment/OptaplannerProcessor.java
+++ b/extensions/optaplanner/deployment/src/main/java/org/apache/camel/quarkus/component/optaplanner/deployment/OptaplannerProcessor.java
@@ -18,11 +18,9 @@ package org.apache.camel.quarkus.component.optaplanner.deployment;
 
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
-import org.jboss.logging.Logger;
 
 class OptaplannerProcessor {
 
-    private static final Logger LOG = Logger.getLogger(OptaplannerProcessor.class);
     private static final String FEATURE = "camel-optaplanner";
 
     @BuildStep
diff --git a/extensions/optaplanner/runtime/pom.xml b/extensions/optaplanner/runtime/pom.xml
index 180c6e0c..e8a5a83 100644
--- a/extensions/optaplanner/runtime/pom.xml
+++ b/extensions/optaplanner/runtime/pom.xml
@@ -60,6 +60,10 @@
             <groupId>org.optaplanner</groupId>
             <artifactId>optaplanner-quarkus</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.optaplanner</groupId>
+            <artifactId>optaplanner-quarkus-jackson</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/integration-tests/optaplanner/pom.xml b/integration-tests/optaplanner/pom.xml
index ad1aed3..45d2c78 100644
--- a/integration-tests/optaplanner/pom.xml
+++ b/integration-tests/optaplanner/pom.xml
@@ -48,10 +48,6 @@
         </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-resteasy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy-jackson</artifactId>
         </dependency>
         <dependency>
diff --git a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/bootstrap/DataGenerator.java b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/bootstrap/DataGenerator.java
index 7538aeb..b162933 100644
--- a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/bootstrap/DataGenerator.java
+++ b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/bootstrap/DataGenerator.java
@@ -32,7 +32,7 @@ import org.apache.camel.quarkus.component.optaplanner.it.domain.Timeslot;
 
 /**
  * adapted from optaplanner quarkus quickstart :
- * https://github.com/quarkusio/quarkus-quickstarts/blob/master/optaplanner-quickstart/src/main/java/org/acme/optaplanner/bootstrap/DemoDataGenerator.java
+ * https://github.com/kiegroup/optaplanner-quickstarts/blob/stable/quarkus-school-timetabling/src/main/java/org/acme/schooltimetabling/bootstrap/DemoDataGenerator.java
  */
 @ApplicationScoped
 public class DataGenerator {
diff --git a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Lesson.java b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Lesson.java
index c749745..03db29e 100644
--- a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Lesson.java
+++ b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Lesson.java
@@ -18,9 +18,6 @@ package org.apache.camel.quarkus.component.optaplanner.it.domain;
 
 import java.util.concurrent.atomic.AtomicLong;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
 import org.optaplanner.core.api.domain.entity.PlanningEntity;
 import org.optaplanner.core.api.domain.lookup.PlanningId;
 import org.optaplanner.core.api.domain.variable.PlanningVariable;
@@ -33,14 +30,10 @@ import org.optaplanner.core.api.domain.variable.PlanningVariable;
 public class Lesson {
 
     @PlanningId
-    @NotNull
     private Long id;
 
-    @NotBlank
     private String subject;
-    @NotBlank
     private String teacher;
-    @NotBlank
     private String studentGroup;
 
     @PlanningVariable(valueRangeProviderRefs = "timeslotRange")
diff --git a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Room.java b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Room.java
index 4fed920..a7a5deb 100644
--- a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Room.java
+++ b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Room.java
@@ -18,9 +18,6 @@ package org.apache.camel.quarkus.component.optaplanner.it.domain;
 
 import java.util.concurrent.atomic.AtomicLong;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
 import org.optaplanner.core.api.domain.lookup.PlanningId;
 
 /**
@@ -30,10 +27,7 @@ import org.optaplanner.core.api.domain.lookup.PlanningId;
 public class Room {
 
     @PlanningId
-    @NotNull
     private Long id;
-
-    @NotBlank
     private String name;
     private static AtomicLong increment = new AtomicLong(1);
 
diff --git a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Timeslot.java b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Timeslot.java
index a14a5f4..1d44ef6 100644
--- a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Timeslot.java
+++ b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/domain/Timeslot.java
@@ -20,8 +20,6 @@ import java.time.DayOfWeek;
 import java.time.LocalTime;
 import java.util.concurrent.atomic.AtomicLong;
 
-import javax.validation.constraints.NotNull;
-
 import org.optaplanner.core.api.domain.lookup.PlanningId;
 
 /**
@@ -31,14 +29,9 @@ import org.optaplanner.core.api.domain.lookup.PlanningId;
 public class Timeslot {
 
     @PlanningId
-    @NotNull
     private Long id;
-
-    @NotNull
     private DayOfWeek dayOfWeek;
-    @NotNull
     private LocalTime startTime;
-    @NotNull
     private LocalTime endTime;
 
     private static AtomicLong increment = new AtomicLong(1);
diff --git a/pom.xml b/pom.xml
index ed5d452..31727a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -98,7 +98,7 @@
         <nimbus-jose-jwt.version>4.41.1</nimbus-jose-jwt.version><!-- Mess in hdfs transitive deps -->
         <okhttp.version>${squareup-okhttp-version}</okhttp.version><!-- keep in sync with okio -->
         <okio.version>${squareup-okio-version}</okio.version><!-- keep in sync with okhttp -->
-        <optaplanner.version>7.46.0.Final</optaplanner.version>
+        <optaplanner.version>8.2.0.Final</optaplanner.version>
         <quarkiverse.freemarker.version>0.2.2</quarkiverse.freemarker.version>
         <quarkiverse-minio.version>0.2.0</quarkiverse-minio.version>
         <quarkus.version>1.13.0.Final</quarkus.version>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 893e8da..993dfa7 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -17,7 +17,8 @@
     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">
+<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>
@@ -5866,16 +5867,6 @@
                 <version>${jsoup.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.kie.soup</groupId>
-                <artifactId>kie-soup-commons</artifactId>
-                <version>${optaplanner.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.kie.soup</groupId>
-                <artifactId>kie-soup-project-datamodel-commons</artifactId>
-                <version>${optaplanner.version}</version>
-            </dependency>
-            <dependency>
                 <groupId>org.mvel</groupId>
                 <artifactId>mvel2</artifactId>
                 <version>${mvel2.version}</version>
@@ -5891,6 +5882,16 @@
                 <version>${optaplanner.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.optaplanner</groupId>
+                <artifactId>optaplanner-quarkus-jackson</artifactId>
+                <version>${optaplanner.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.optaplanner</groupId>
+                <artifactId>optaplanner-quarkus-jackson-deployment</artifactId>
+                <version>${optaplanner.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-aop</artifactId>
                 <version>${spring.version}</version>