You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2020/09/07 19:17:48 UTC

[camel-quarkus] branch master updated (2e475bd -> 0846758)

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

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


    from 2e475bd  Fixed bean parameter bindings using language annotations in native mode #1685
     new a25c53e  SSH JVM support
     new fde5a67  Nagios JVM support
     new 1e405cb  MyBatis JVM support
     new 8be0b7c  MVEL JVM support
     new 0846758  MSV JVM support

The 5 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:
 catalog/pom.xml                                    |  65 ++++++++++
 docs/modules/ROOT/nav.adoc                         |   5 +
 docs/modules/ROOT/pages/reference/components.adoc  |  18 +++
 .../ROOT/pages/reference/extensions/msv.adoc       |  29 +++++
 .../ROOT/pages/reference/extensions/mvel.adoc      |  30 +++++
 .../ROOT/pages/reference/extensions/mybatis.adoc   |  30 +++++
 .../ROOT/pages/reference/extensions/nagios.adoc    |  29 +++++
 .../ROOT/pages/reference/extensions/ssh.adoc       |  29 +++++
 docs/modules/ROOT/pages/reference/index.adoc       |  15 +++
 docs/modules/ROOT/pages/reference/languages.adoc   |   3 +
 extensions-jvm/msv/deployment/pom.xml              |  63 ++++++++++
 .../component/msv/deployment/MsvProcessor.java     |  46 +++++++
 extensions-jvm/msv/integration-test/pom.xml        | 100 +++++++++++++++
 .../quarkus/component/msv/it/MsvResource.java      |  51 ++++++++
 .../camel/quarkus/component/msv/it/MsvTest.java    |  34 +++++
 extensions-jvm/msv/pom.xml                         |  40 ++++++
 extensions-jvm/msv/runtime/pom.xml                 |  94 ++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++
 extensions-jvm/mvel/deployment/pom.xml             |  63 ++++++++++
 .../component/mvel/deployment/MvelProcessor.java   |  46 +++++++
 extensions-jvm/mvel/integration-test/pom.xml       | 100 +++++++++++++++
 .../quarkus/component/mvel/it/MvelResource.java    |  64 ++++++++++
 .../camel/quarkus/component/mvel/it/MvelTest.java  |  42 +++++++
 extensions-jvm/mvel/pom.xml                        |  40 ++++++
 extensions-jvm/mvel/runtime/pom.xml                |  94 ++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++
 extensions-jvm/mybatis/deployment/pom.xml          |  63 ++++++++++
 .../mybatis/deployment/MybatisProcessor.java       |  46 +++++++
 extensions-jvm/mybatis/integration-test/pom.xml    | 104 ++++++++++++++++
 .../component/mybatis/it/MybatisResource.java      |  64 ++++++++++
 .../component/mybatis/it/bean/AccountService.java  |  41 ++++++
 .../component/mybatis/it/entity/Account.java       |  61 +++++++++
 .../src/main/resources/SqlMapConfig.xml            |  55 ++++++++
 .../component/mybatis/it/entity/Account.xml        | 138 +++++++++++++++++++++
 .../quarkus/component/mybatis/it/MybatisTest.java  |  42 +++++++
 extensions-jvm/mybatis/pom.xml                     |  40 ++++++
 extensions-jvm/mybatis/runtime/pom.xml             |  94 ++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++
 extensions-jvm/nagios/deployment/pom.xml           |  63 ++++++++++
 .../nagios/deployment/NagiosProcessor.java         |  46 +++++++
 extensions-jvm/nagios/integration-test/pom.xml     | 100 +++++++++++++++
 .../component/nagios/it/NagiosResource.java        |  51 ++++++++
 .../quarkus/component/nagios/it/NagiosTest.java    |  34 +++++
 extensions-jvm/nagios/pom.xml                      |  40 ++++++
 extensions-jvm/nagios/runtime/pom.xml              |  94 ++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++
 extensions-jvm/pom.xml                             |   5 +
 extensions-jvm/ssh/deployment/pom.xml              |  63 ++++++++++
 .../component/ssh/deployment/SshProcessor.java     |  46 +++++++
 extensions-jvm/ssh/integration-test/pom.xml        | 100 +++++++++++++++
 .../quarkus/component/ssh/it/SshResource.java      |  51 ++++++++
 .../camel/quarkus/component/ssh/it/SshTest.java    |  34 +++++
 extensions-jvm/ssh/pom.xml                         |  40 ++++++
 extensions-jvm/ssh/runtime/pom.xml                 |  94 ++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++
 poms/bom/pom.xml                                   |  75 +++++++++++
 56 files changed, 2974 insertions(+)
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/msv.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/mvel.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/mybatis.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/nagios.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/ssh.adoc
 create mode 100644 extensions-jvm/msv/deployment/pom.xml
 create mode 100644 extensions-jvm/msv/deployment/src/main/java/org/apache/camel/quarkus/component/msv/deployment/MsvProcessor.java
 create mode 100644 extensions-jvm/msv/integration-test/pom.xml
 create mode 100644 extensions-jvm/msv/integration-test/src/main/java/org/apache/camel/quarkus/component/msv/it/MsvResource.java
 create mode 100644 extensions-jvm/msv/integration-test/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvTest.java
 create mode 100644 extensions-jvm/msv/pom.xml
 create mode 100644 extensions-jvm/msv/runtime/pom.xml
 create mode 100644 extensions-jvm/msv/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/mvel/deployment/pom.xml
 create mode 100644 extensions-jvm/mvel/deployment/src/main/java/org/apache/camel/quarkus/component/mvel/deployment/MvelProcessor.java
 create mode 100644 extensions-jvm/mvel/integration-test/pom.xml
 create mode 100644 extensions-jvm/mvel/integration-test/src/main/java/org/apache/camel/quarkus/component/mvel/it/MvelResource.java
 create mode 100644 extensions-jvm/mvel/integration-test/src/test/java/org/apache/camel/quarkus/component/mvel/it/MvelTest.java
 create mode 100644 extensions-jvm/mvel/pom.xml
 create mode 100644 extensions-jvm/mvel/runtime/pom.xml
 create mode 100644 extensions-jvm/mvel/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/mybatis/deployment/pom.xml
 create mode 100644 extensions-jvm/mybatis/deployment/src/main/java/org/apache/camel/quarkus/component/mybatis/deployment/MybatisProcessor.java
 create mode 100644 extensions-jvm/mybatis/integration-test/pom.xml
 create mode 100644 extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/MybatisResource.java
 create mode 100644 extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/bean/AccountService.java
 create mode 100644 extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/entity/Account.java
 create mode 100644 extensions-jvm/mybatis/integration-test/src/main/resources/SqlMapConfig.xml
 create mode 100644 extensions-jvm/mybatis/integration-test/src/main/resources/org/apache/camel/quarkus/component/mybatis/it/entity/Account.xml
 create mode 100644 extensions-jvm/mybatis/integration-test/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MybatisTest.java
 create mode 100644 extensions-jvm/mybatis/pom.xml
 create mode 100644 extensions-jvm/mybatis/runtime/pom.xml
 create mode 100644 extensions-jvm/mybatis/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/nagios/deployment/pom.xml
 create mode 100644 extensions-jvm/nagios/deployment/src/main/java/org/apache/camel/quarkus/component/nagios/deployment/NagiosProcessor.java
 create mode 100644 extensions-jvm/nagios/integration-test/pom.xml
 create mode 100644 extensions-jvm/nagios/integration-test/src/main/java/org/apache/camel/quarkus/component/nagios/it/NagiosResource.java
 create mode 100644 extensions-jvm/nagios/integration-test/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosTest.java
 create mode 100644 extensions-jvm/nagios/pom.xml
 create mode 100644 extensions-jvm/nagios/runtime/pom.xml
 create mode 100644 extensions-jvm/nagios/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/ssh/deployment/pom.xml
 create mode 100644 extensions-jvm/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
 create mode 100644 extensions-jvm/ssh/integration-test/pom.xml
 create mode 100644 extensions-jvm/ssh/integration-test/src/main/java/org/apache/camel/quarkus/component/ssh/it/SshResource.java
 create mode 100644 extensions-jvm/ssh/integration-test/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java
 create mode 100644 extensions-jvm/ssh/pom.xml
 create mode 100644 extensions-jvm/ssh/runtime/pom.xml
 create mode 100644 extensions-jvm/ssh/runtime/src/main/resources/META-INF/quarkus-extension.yaml


[camel-quarkus] 02/05: Nagios JVM support

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

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

commit fde5a675b03509e6a3c0aa45e75fee2f3a8deb8f
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 18:03:09 2020 +0200

    Nagios JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/nagios.adoc    |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/nagios/deployment/pom.xml           |  63 +++++++++++++
 .../nagios/deployment/NagiosProcessor.java         |  46 ++++++++++
 extensions-jvm/nagios/integration-test/pom.xml     | 100 +++++++++++++++++++++
 .../component/nagios/it/NagiosResource.java        |  51 +++++++++++
 .../quarkus/component/nagios/it/NagiosTest.java    |  34 +++++++
 extensions-jvm/nagios/pom.xml                      |  40 +++++++++
 extensions-jvm/nagios/runtime/pom.xml              |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/pom.xml                             |   1 +
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 78a2ada..4ab86bb 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2181,6 +2181,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-nagios</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-nats</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index d6f79d5..0f491d5 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -178,6 +178,7 @@
 *** xref:reference/extensions/mongodb.adoc[MongoDB]
 *** xref:reference/extensions/mongodb-gridfs.adoc[MongoDB GridFS]
 *** xref:reference/extensions/mustache.adoc[Mustache]
+*** xref:reference/extensions/nagios.adoc[Nagios]
 *** xref:reference/extensions/nats.adoc[Nats]
 *** xref:reference/extensions/netty.adoc[Netty]
 *** xref:reference/extensions/netty-http.adoc[Netty HTTP]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 40d3573..b7df960 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -565,6 +565,9 @@ Stable | 1.0.0 | Interact with MongoDB GridFS.
 | xref:reference/extensions/mustache.adoc[Mustache] | [.camel-element-artifact]##camel-quarkus-mustache## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
+| xref:reference/extensions/nagios.adoc[Nagios] | [.camel-element-artifact]##camel-quarkus-nagios## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send passive checks to Nagios using JSendNSCA.
+
 | xref:reference/extensions/nats.adoc[Nats] | [.camel-element-artifact]##camel-quarkus-nats## | [.camel-element-Native]##Native## +
 Stable | 1.1.0 | Send and receive messages from NATS messaging system.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/nagios.adoc b/docs/modules/ROOT/pages/reference/extensions/nagios.adoc
new file mode 100644
index 0000000..1ce516a
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/nagios.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[nagios]]
+= Nagios
+:page-aliases: extensions/nagios.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Send passive checks to Nagios using JSendNSCA.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/nagios-component.html[Nagios component], URI syntax: `nagios:host:port`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-nagios</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index cb61e19..b193cf2 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -512,6 +512,9 @@ Stable | 1.0.0 | Interact with MongoDB GridFS.
 |  xref:reference/extensions/mustache.adoc[Mustache]  | camel-quarkus-mustache | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
+|  xref:reference/extensions/nagios.adoc[Nagios]  | camel-quarkus-nagios | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send passive checks to Nagios using JSendNSCA.
+
 |  xref:reference/extensions/nats.adoc[Nats]  | camel-quarkus-nats | [.camel-element-Native]##Native## +
 Stable | 1.1.0 | Send and receive messages from NATS messaging system.
 
diff --git a/extensions-jvm/nagios/deployment/pom.xml b/extensions-jvm/nagios/deployment/pom.xml
new file mode 100644
index 0000000..b398c70
--- /dev/null
+++ b/extensions-jvm/nagios/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?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-nagios-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-nagios-deployment</artifactId>
+    <name>Camel Quarkus :: Nagios :: 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-nagios</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-jvm/nagios/deployment/src/main/java/org/apache/camel/quarkus/component/nagios/deployment/NagiosProcessor.java b/extensions-jvm/nagios/deployment/src/main/java/org/apache/camel/quarkus/component/nagios/deployment/NagiosProcessor.java
new file mode 100644
index 0000000..9e0402d
--- /dev/null
+++ b/extensions-jvm/nagios/deployment/src/main/java/org/apache/camel/quarkus/component/nagios/deployment/NagiosProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * 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.nagios.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 NagiosProcessor {
+
+    private static final Logger LOG = Logger.getLogger(NagiosProcessor.class);
+    private static final String FEATURE = "camel-nagios";
+
+    @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/nagios/integration-test/pom.xml b/extensions-jvm/nagios/integration-test/pom.xml
new file mode 100644
index 0000000..1ab1055
--- /dev/null
+++ b/extensions-jvm/nagios/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-nagios-integration-test</artifactId>
+    <name>Camel Quarkus :: Nagios :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Nagios extension</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-nagios</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>
+
+        <!-- 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-nagios-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/nagios/integration-test/src/main/java/org/apache/camel/quarkus/component/nagios/it/NagiosResource.java b/extensions-jvm/nagios/integration-test/src/main/java/org/apache/camel/quarkus/component/nagios/it/NagiosResource.java
new file mode 100644
index 0000000..eb51edf
--- /dev/null
+++ b/extensions-jvm/nagios/integration-test/src/main/java/org/apache/camel/quarkus/component/nagios/it/NagiosResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.nagios.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("/nagios")
+@ApplicationScoped
+public class NagiosResource {
+
+    private static final Logger LOG = Logger.getLogger(NagiosResource.class);
+
+    private static final String COMPONENT_NAGIOS = "nagios";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/nagios")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentNagios() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_NAGIOS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_NAGIOS);
+        return Response.status(500, COMPONENT_NAGIOS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/nagios/integration-test/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosTest.java b/extensions-jvm/nagios/integration-test/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosTest.java
new file mode 100644
index 0000000..04cb033
--- /dev/null
+++ b/extensions-jvm/nagios/integration-test/src/test/java/org/apache/camel/quarkus/component/nagios/it/NagiosTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.nagios.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class NagiosTest {
+
+    @Test
+    public void loadComponentNagios() {
+        /* A simple autogenerated test */
+        RestAssured.get("/nagios/load/component/nagios")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/nagios/pom.xml b/extensions-jvm/nagios/pom.xml
new file mode 100644
index 0000000..e5a9814
--- /dev/null
+++ b/extensions-jvm/nagios/pom.xml
@@ -0,0 +1,40 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-nagios-parent</artifactId>
+    <name>Camel Quarkus :: Nagios</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/nagios/runtime/pom.xml b/extensions-jvm/nagios/runtime/pom.xml
new file mode 100644
index 0000000..c0b6bd0
--- /dev/null
+++ b/extensions-jvm/nagios/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?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-nagios-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-nagios</artifactId>
+    <name>Camel Quarkus :: Nagios :: Runtime</name>
+    <description>Send passive checks to Nagios using JSendNSCA.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </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-nagios</artifactId>
+        </dependency>
+    </dependencies>
+
+    <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>
+            <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>
+</project>
diff --git a/extensions-jvm/nagios/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/nagios/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..bb8b9dd
--- /dev/null
+++ b/extensions-jvm/nagios/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# 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 Nagios"
+description: "Send passive checks to Nagios using JSendNSCA"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/nagios.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 6dd3aa1..33bce27 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -88,6 +88,7 @@
         <module>jbpm</module>
         <module>jooq</module>
         <module>jsch</module>
+        <module>nagios</module>
         <module>nitrite</module>
         <module>nsq</module>
         <module>ognl</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index d727673..ea2708a 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1219,6 +1219,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-nagios</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-nats</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3401,6 +3406,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-nagios</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-nagios-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-nats</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 04/05: MVEL JVM support

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

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

commit 8be0b7cbcff6d3837b17f75fefddc02089983dde
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 18:44:30 2020 +0200

    MVEL JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/mvel.adoc      |  30 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 docs/modules/ROOT/pages/reference/languages.adoc   |   3 +
 extensions-jvm/mvel/deployment/pom.xml             |  63 +++++++++++++
 .../component/mvel/deployment/MvelProcessor.java   |  46 ++++++++++
 extensions-jvm/mvel/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/mvel/it/MvelResource.java    |  64 +++++++++++++
 .../camel/quarkus/component/mvel/it/MvelTest.java  |  42 +++++++++
 extensions-jvm/mvel/pom.xml                        |  40 +++++++++
 extensions-jvm/mvel/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/pom.xml                             |   1 +
 poms/bom/pom.xml                                   |  15 ++++
 16 files changed, 550 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 1139f9a..64c0dbd 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2181,6 +2181,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-mvel</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-mybatis</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index bff048e..6aef426 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -178,6 +178,7 @@
 *** xref:reference/extensions/mongodb.adoc[MongoDB]
 *** xref:reference/extensions/mongodb-gridfs.adoc[MongoDB GridFS]
 *** xref:reference/extensions/mustache.adoc[Mustache]
+*** xref:reference/extensions/mvel.adoc[MVEL]
 *** xref:reference/extensions/mybatis.adoc[MyBatis]
 *** xref:reference/extensions/nagios.adoc[Nagios]
 *** xref:reference/extensions/nats.adoc[Nats]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index daf9463..1440f16 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -565,6 +565,9 @@ Stable | 1.0.0 | Interact with MongoDB GridFS.
 | xref:reference/extensions/mustache.adoc[Mustache] | [.camel-element-artifact]##camel-quarkus-mustache## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
+| xref:reference/extensions/mvel.adoc[MVEL] | [.camel-element-artifact]##camel-quarkus-mvel## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Transform messages using an MVEL template.
+
 | xref:reference/extensions/mybatis.adoc[MyBatis] | [.camel-element-artifact]##camel-quarkus-mybatis## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/mvel.adoc b/docs/modules/ROOT/pages/reference/extensions/mvel.adoc
new file mode 100644
index 0000000..2982d5e
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/mvel.adoc
@@ -0,0 +1,30 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[mvel]]
+= MVEL
+:page-aliases: extensions/mvel.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Transform messages using an MVEL template.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/mvel-component.html[MVEL component], URI syntax: `mvel:resourceUri`
+* https://camel.apache.org/components/latest/languages/mvel-language.html[MVEL language]
+
+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-mvel</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 680e641..6227dd8 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -512,6 +512,9 @@ Stable | 1.0.0 | Interact with MongoDB GridFS.
 |  xref:reference/extensions/mustache.adoc[Mustache]  | camel-quarkus-mustache | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
+|  xref:reference/extensions/mvel.adoc[MVEL]  | camel-quarkus-mvel | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Transform messages using an MVEL template.
+
 |  xref:reference/extensions/mybatis.adoc[MyBatis]  | camel-quarkus-mybatis | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.
 
diff --git a/docs/modules/ROOT/pages/reference/languages.adoc b/docs/modules/ROOT/pages/reference/languages.adoc
index aa2932a..2e92978 100644
--- a/docs/modules/ROOT/pages/reference/languages.adoc
+++ b/docs/modules/ROOT/pages/reference/languages.adoc
@@ -31,6 +31,9 @@ Stable | 0.2.0 | Get the value of the named Camel Message header.
 | xref:reference/extensions/jsonpath.adoc[JsonPath] | [.camel-element-artifact]##camel-quarkus-jsonpath## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Evaluate a JsonPath expression against a JSON message body.
 
+| xref:reference/extensions/mvel.adoc[MVEL] | [.camel-element-artifact]##camel-quarkus-mvel## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Evaluate an MVEL template against the Camel Exchange.
+
 | xref:reference/extensions/ognl.adoc[OGNL] | [.camel-element-artifact]##camel-quarkus-ognl## | [.camel-element-JVM]##JVM## +
 Preview | 1.0.0 | Evaluate an Apache Commons Object Graph Navigation Library (OGNL) expression against the Camel Exchange.
 
diff --git a/extensions-jvm/mvel/deployment/pom.xml b/extensions-jvm/mvel/deployment/pom.xml
new file mode 100644
index 0000000..98790ab
--- /dev/null
+++ b/extensions-jvm/mvel/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?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-mvel-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mvel-deployment</artifactId>
+    <name>Camel Quarkus :: MVEL :: 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-mvel</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-jvm/mvel/deployment/src/main/java/org/apache/camel/quarkus/component/mvel/deployment/MvelProcessor.java b/extensions-jvm/mvel/deployment/src/main/java/org/apache/camel/quarkus/component/mvel/deployment/MvelProcessor.java
new file mode 100644
index 0000000..778385b
--- /dev/null
+++ b/extensions-jvm/mvel/deployment/src/main/java/org/apache/camel/quarkus/component/mvel/deployment/MvelProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * 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.mvel.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 MvelProcessor {
+
+    private static final Logger LOG = Logger.getLogger(MvelProcessor.class);
+    private static final String FEATURE = "camel-mvel";
+
+    @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/mvel/integration-test/pom.xml b/extensions-jvm/mvel/integration-test/pom.xml
new file mode 100644
index 0000000..f620cdc
--- /dev/null
+++ b/extensions-jvm/mvel/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mvel-integration-test</artifactId>
+    <name>Camel Quarkus :: MVEL :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus MVEL extension</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-mvel</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>
+
+        <!-- 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-mvel-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/mvel/integration-test/src/main/java/org/apache/camel/quarkus/component/mvel/it/MvelResource.java b/extensions-jvm/mvel/integration-test/src/main/java/org/apache/camel/quarkus/component/mvel/it/MvelResource.java
new file mode 100644
index 0000000..c4582c6
--- /dev/null
+++ b/extensions-jvm/mvel/integration-test/src/main/java/org/apache/camel/quarkus/component/mvel/it/MvelResource.java
@@ -0,0 +1,64 @@
+/*
+ * 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.mvel.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("/mvel")
+@ApplicationScoped
+public class MvelResource {
+
+    private static final Logger LOG = Logger.getLogger(MvelResource.class);
+
+    private static final String COMPONENT_MVEL = "mvel";
+    private static final String LANGUAGE_MVEL = "mvel";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/mvel")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentMvel() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_MVEL) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_MVEL);
+        return Response.status(500, COMPONENT_MVEL + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/language/mvel")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadLanguageMvel() throws Exception {
+        /* This is an autogenerated test */
+        if (context.resolveLanguage(LANGUAGE_MVEL) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", LANGUAGE_MVEL);
+        return Response.status(500, LANGUAGE_MVEL + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/mvel/integration-test/src/test/java/org/apache/camel/quarkus/component/mvel/it/MvelTest.java b/extensions-jvm/mvel/integration-test/src/test/java/org/apache/camel/quarkus/component/mvel/it/MvelTest.java
new file mode 100644
index 0000000..99a7b39
--- /dev/null
+++ b/extensions-jvm/mvel/integration-test/src/test/java/org/apache/camel/quarkus/component/mvel/it/MvelTest.java
@@ -0,0 +1,42 @@
+/*
+ * 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.mvel.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class MvelTest {
+
+    @Test
+    public void loadComponentMvel() {
+        /* A simple autogenerated test */
+        RestAssured.get("/mvel/load/component/mvel")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadLanguageMvel() {
+        /* A simple autogenerated test */
+        RestAssured.get("/mvel/load/language/mvel")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/mvel/pom.xml b/extensions-jvm/mvel/pom.xml
new file mode 100644
index 0000000..3e56433
--- /dev/null
+++ b/extensions-jvm/mvel/pom.xml
@@ -0,0 +1,40 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mvel-parent</artifactId>
+    <name>Camel Quarkus :: MVEL</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/mvel/runtime/pom.xml b/extensions-jvm/mvel/runtime/pom.xml
new file mode 100644
index 0000000..01626e3
--- /dev/null
+++ b/extensions-jvm/mvel/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?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-mvel-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mvel</artifactId>
+    <name>Camel Quarkus :: MVEL :: Runtime</name>
+    <description>Transform messages using an MVEL template.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </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-mvel</artifactId>
+        </dependency>
+    </dependencies>
+
+    <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>
+            <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>
+</project>
diff --git a/extensions-jvm/mvel/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/mvel/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..ca237a5
--- /dev/null
+++ b/extensions-jvm/mvel/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# 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 MVEL"
+description: "Transform messages using an MVEL template"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/mvel.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 58bcb9c..1ff5c15 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -88,6 +88,7 @@
         <module>jbpm</module>
         <module>jooq</module>
         <module>jsch</module>
+        <module>mvel</module>
         <module>mybatis</module>
         <module>nagios</module>
         <module>nitrite</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 384c6bb..3835bdb 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1219,6 +1219,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-mvel</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-mybatis</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3411,6 +3416,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-mvel</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-mvel-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-mybatis</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 03/05: MyBatis JVM support

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

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

commit 1e405cb2a6cbe0b50ec6a298347113e7eedce52c
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 18:05:00 2020 +0200

    MyBatis JVM support
---
 catalog/pom.xml                                    |  13 ++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   6 +
 .../ROOT/pages/reference/extensions/mybatis.adoc   |  30 +++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/mybatis/deployment/pom.xml          |  63 ++++++++++
 .../mybatis/deployment/MybatisProcessor.java       |  46 +++++++
 extensions-jvm/mybatis/integration-test/pom.xml    | 104 ++++++++++++++++
 .../component/mybatis/it/MybatisResource.java      |  64 ++++++++++
 .../component/mybatis/it/bean/AccountService.java  |  41 ++++++
 .../component/mybatis/it/entity/Account.java       |  61 +++++++++
 .../src/main/resources/SqlMapConfig.xml            |  55 ++++++++
 .../component/mybatis/it/entity/Account.xml        | 138 +++++++++++++++++++++
 .../quarkus/component/mybatis/it/MybatisTest.java  |  42 +++++++
 extensions-jvm/mybatis/pom.xml                     |  40 ++++++
 extensions-jvm/mybatis/runtime/pom.xml             |  94 ++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++
 extensions-jvm/pom.xml                             |   1 +
 poms/bom/pom.xml                                   |  15 +++
 19 files changed, 849 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 4ab86bb..1139f9a 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2181,6 +2181,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-mybatis</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-nagios</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 0f491d5..bff048e 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -178,6 +178,7 @@
 *** xref:reference/extensions/mongodb.adoc[MongoDB]
 *** xref:reference/extensions/mongodb-gridfs.adoc[MongoDB GridFS]
 *** xref:reference/extensions/mustache.adoc[Mustache]
+*** xref:reference/extensions/mybatis.adoc[MyBatis]
 *** xref:reference/extensions/nagios.adoc[Nagios]
 *** xref:reference/extensions/nats.adoc[Nats]
 *** xref:reference/extensions/netty.adoc[Netty]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index b7df960..daf9463 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -565,6 +565,12 @@ Stable | 1.0.0 | Interact with MongoDB GridFS.
 | xref:reference/extensions/mustache.adoc[Mustache] | [.camel-element-artifact]##camel-quarkus-mustache## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
+| xref:reference/extensions/mybatis.adoc[MyBatis] | [.camel-element-artifact]##camel-quarkus-mybatis## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.
+
+| xref:reference/extensions/mybatis.adoc[MyBatis Bean] | [.camel-element-artifact]##camel-quarkus-mybatis## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Perform queries, inserts, updates or deletes in a relational database using MyBatis.
+
 | xref:reference/extensions/nagios.adoc[Nagios] | [.camel-element-artifact]##camel-quarkus-nagios## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send passive checks to Nagios using JSendNSCA.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/mybatis.adoc b/docs/modules/ROOT/pages/reference/extensions/mybatis.adoc
new file mode 100644
index 0000000..006042b
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/mybatis.adoc
@@ -0,0 +1,30 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[mybatis]]
+= MyBatis
+:page-aliases: extensions/mybatis.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Performs a query, poll, insert, update or delete in a relational database using MyBatis.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/mybatis-component.html[MyBatis component], URI syntax: `mybatis:statement`
+* https://camel.apache.org/components/latest/mybatis-bean-component.html[MyBatis Bean component], URI syntax: `mybatis-bean:beanName:methodName`
+
+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-mybatis</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index b193cf2..680e641 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -512,6 +512,9 @@ Stable | 1.0.0 | Interact with MongoDB GridFS.
 |  xref:reference/extensions/mustache.adoc[Mustache]  | camel-quarkus-mustache | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
+|  xref:reference/extensions/mybatis.adoc[MyBatis]  | camel-quarkus-mybatis | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.
+
 |  xref:reference/extensions/nagios.adoc[Nagios]  | camel-quarkus-nagios | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send passive checks to Nagios using JSendNSCA.
 
diff --git a/extensions-jvm/mybatis/deployment/pom.xml b/extensions-jvm/mybatis/deployment/pom.xml
new file mode 100644
index 0000000..c4567e6
--- /dev/null
+++ b/extensions-jvm/mybatis/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?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-mybatis-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mybatis-deployment</artifactId>
+    <name>Camel Quarkus :: MyBatis :: 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-mybatis</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-jvm/mybatis/deployment/src/main/java/org/apache/camel/quarkus/component/mybatis/deployment/MybatisProcessor.java b/extensions-jvm/mybatis/deployment/src/main/java/org/apache/camel/quarkus/component/mybatis/deployment/MybatisProcessor.java
new file mode 100644
index 0000000..9a9bbd6
--- /dev/null
+++ b/extensions-jvm/mybatis/deployment/src/main/java/org/apache/camel/quarkus/component/mybatis/deployment/MybatisProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * 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.mybatis.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 MybatisProcessor {
+
+    private static final Logger LOG = Logger.getLogger(MybatisProcessor.class);
+    private static final String FEATURE = "camel-mybatis";
+
+    @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/mybatis/integration-test/pom.xml b/extensions-jvm/mybatis/integration-test/pom.xml
new file mode 100644
index 0000000..05c805a
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/pom.xml
@@ -0,0 +1,104 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mybatis-integration-test</artifactId>
+    <name>Camel Quarkus :: MyBatis :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus MyBatis extension</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-mybatis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-h2</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>
+
+        <!-- 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-mybatis-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/MybatisResource.java b/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/MybatisResource.java
new file mode 100644
index 0000000..0a22a20
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/MybatisResource.java
@@ -0,0 +1,64 @@
+/*
+ * 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.mybatis.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("/mybatis")
+@ApplicationScoped
+public class MybatisResource {
+
+    private static final Logger LOG = Logger.getLogger(MybatisResource.class);
+
+    private static final String COMPONENT_MYBATIS = "mybatis";
+    private static final String COMPONENT_MYBATIS_BEAN = "mybatis-bean";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/mybatis")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentMybatis() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_MYBATIS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_MYBATIS);
+        return Response.status(500, COMPONENT_MYBATIS + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/mybatis-bean")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentMybatisBean() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_MYBATIS_BEAN) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_MYBATIS_BEAN);
+        return Response.status(500, COMPONENT_MYBATIS_BEAN + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/bean/AccountService.java b/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/bean/AccountService.java
new file mode 100644
index 0000000..1f5c905
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/bean/AccountService.java
@@ -0,0 +1,41 @@
+/*
+ * 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.mybatis.it.bean;
+
+import java.util.List;
+
+import org.apache.camel.quarkus.component.mybatis.it.entity.Account;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.ResultMap;
+import org.apache.ibatis.annotations.Select;
+
+public interface AccountService {
+
+    @Select("select ACC_ID as id, ACC_FIRST_NAME as firstName, ACC_LAST_NAME as lastName"
+            + ", ACC_EMAIL as emailAddress from ACCOUNT where ACC_ID = #{id}")
+    Account selectBeanAccountById(@Param("id") int no);
+
+    @Select("select * from ACCOUNT order by ACC_ID")
+    @ResultMap("Account.AccountResult")
+    List<Account> selectBeanAllAccounts();
+
+    @Insert("insert into ACCOUNT (ACC_ID,ACC_FIRST_NAME,ACC_LAST_NAME,ACC_EMAIL)"
+            + " values (#{id}, #{firstName}, #{lastName}, #{emailAddress})")
+    void insertBeanAccount(Account account);
+
+}
diff --git a/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/entity/Account.java b/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/entity/Account.java
new file mode 100644
index 0000000..f086fd3
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/src/main/java/org/apache/camel/quarkus/component/mybatis/it/entity/Account.java
@@ -0,0 +1,61 @@
+/*
+ * 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.mybatis.it.entity;
+
+public class Account {
+    private int id;
+    private String firstName;
+    private String lastName;
+    private String emailAddress;
+
+    @Override
+    public String toString() {
+        return "Account[id: " + id + " name: " + firstName + " " + lastName + " email: " + emailAddress + "]";
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getFirstName() {
+        return firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getEmailAddress() {
+        return emailAddress;
+    }
+
+    public void setEmailAddress(String emailAddress) {
+        this.emailAddress = emailAddress;
+    }
+}
diff --git a/extensions-jvm/mybatis/integration-test/src/main/resources/SqlMapConfig.xml b/extensions-jvm/mybatis/integration-test/src/main/resources/SqlMapConfig.xml
new file mode 100644
index 0000000..3ea2992
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/src/main/resources/SqlMapConfig.xml
@@ -0,0 +1,55 @@
+<?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.
+
+-->
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+
+<configuration>
+
+    <settings>
+        <setting name="useGeneratedKeys" value="false"/>
+    </settings>
+
+    <!-- Use type aliases to avoid typing the full classname every time. -->
+    <typeAliases>
+        <typeAlias alias="Account" type="org.apache.camel.quarkus.component.mybatis.it.entity.Account"/>
+        <typeAlias alias="AccountService" type="org.apache.camel.quarkus.component.mybatis.it.bean.AccountService"/>
+    </typeAliases>
+
+    <!-- setup environment with JDBC data source -->
+    <environments default="development">
+        <environment id="development">
+            <transactionManager type="JDBC"/>
+            <dataSource type="POOLED">
+                <property name="driver" value="org.h2.Driver" />
+                <property name="url" value="jdbc:h2:database/h2db" />
+                <property name="username" value="root" />
+                <property name="password" value="" />
+            </dataSource>
+        </environment>
+    </environments>
+
+    <!-- mapping files -->
+    <mappers>
+        <mapper resource="org/apache/camel/quarkus/component/mybatis/it/entity/Account.xml"/>
+        <package name="org.apache.camel.quarkus.component.mybatis.it.bean"/>
+    </mappers>
+
+</configuration>
\ No newline at end of file
diff --git a/extensions-jvm/mybatis/integration-test/src/main/resources/org/apache/camel/quarkus/component/mybatis/it/entity/Account.xml b/extensions-jvm/mybatis/integration-test/src/main/resources/org/apache/camel/quarkus/component/mybatis/it/entity/Account.xml
new file mode 100644
index 0000000..207064d
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/src/main/resources/org/apache/camel/quarkus/component/mybatis/it/entity/Account.xml
@@ -0,0 +1,138 @@
+<?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.
+
+-->
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="Account">
+
+    <!-- Result maps describe the mapping between the columns returned
+   from a query, and the class properties.  A result map isn't
+   necessary if the columns (or aliases) match to the properties
+   exactly. -->
+    <resultMap id="AccountResult" type="Account">
+        <result property="id" column="ACC_ID"/>
+        <result property="firstName" column="ACC_FIRST_NAME"/>
+        <result property="lastName" column="ACC_LAST_NAME"/>
+        <result property="emailAddress" column="ACC_EMAIL"/>
+    </resultMap>
+
+    <!-- Select with no parameters using the result map for Account class. -->
+    <select id="selectAllAccounts" resultMap="AccountResult">
+        select * from ACCOUNT order by ACC_ID
+    </select>
+
+    <!-- A simpler select example without the result map.  Note the
+aliases to match the properties of the target result class. -->
+    <select id="selectAccountById" parameterType="int" resultType="Account">
+        select
+        ACC_ID as id,
+        ACC_FIRST_NAME as firstName,
+        ACC_LAST_NAME as lastName,
+        ACC_EMAIL as emailAddress
+        from ACCOUNT
+        where ACC_ID = #{id}
+    </select>
+
+    <!-- Insert example, using the Account parameter class -->
+    <insert id="insertAccount" parameterType="Account">
+        insert into ACCOUNT (
+        ACC_ID,
+        ACC_FIRST_NAME,
+        ACC_LAST_NAME,
+        ACC_EMAIL
+        )
+        values (
+        #{id}, #{firstName}, #{lastName}, #{emailAddress}
+        )
+    </insert>
+
+    <!-- START SNIPPET: insertList -->
+    <!-- Batch Insert example, using the Account parameter class -->
+    <insert id="batchInsertAccount" parameterType="java.util.List">
+        insert into ACCOUNT (
+        ACC_ID,
+        ACC_FIRST_NAME,
+        ACC_LAST_NAME,
+        ACC_EMAIL
+        )
+        values (
+        <foreach item="Account" collection="list" open="" close="" separator="),(">
+            #{Account.id}, #{Account.firstName}, #{Account.lastName}, #{Account.emailAddress}
+        </foreach>
+        )
+    </insert>
+    <!-- END SNIPPET: insertList -->
+
+  <!-- Update example, using the Account parameter class -->
+    <update id="updateAccount" parameterType="Account">
+        update ACCOUNT set
+        ACC_FIRST_NAME = #{firstName},
+        ACC_LAST_NAME = #{lastName},
+        ACC_EMAIL = #{emailAddress}
+        where
+        ACC_ID = #{id}
+    </update>
+
+    <update id="batchUpdateAccount" parameterType="java.util.Map">
+        update ACCOUNT set
+        ACC_EMAIL = #{emailAddress}
+        where
+        ACC_ID in
+        <foreach item="Account" collection="list" open="(" close=")" separator=",">
+            #{Account.id}
+        </foreach>
+    </update>
+
+    <!-- Delete example, using an integer as the parameter class -->
+    <delete id="deleteAccountById" parameterType="int">
+        delete from ACCOUNT where ACC_ID = #{id}
+    </delete>
+
+    <delete id="batchDeleteAccountById" parameterType="java.util.List">
+        delete from ACCOUNT
+        where
+        ACC_ID in
+        <foreach item="AccountID" collection="list" open="(" close=")" separator=",">
+            #{AccountID}
+        </foreach>
+    </delete>
+
+    <!-- START SNIPPET: e1 -->
+    <select id="selectUnprocessedAccounts" resultMap="AccountResult">
+        select * from ACCOUNT where PROCESSED = false
+    </select>
+    <!-- END SNIPPET: e1 -->
+
+    <select id="selectProcessedAccounts" resultMap="AccountResult">
+        select * from ACCOUNT where PROCESSED = true
+    </select>
+
+    <!-- START SNIPPET: e2 -->
+    <update id="consumeAccount" parameterType="Account">
+        update ACCOUNT set PROCESSED = true where ACC_ID = #{id}
+    </update>
+    <!-- END SNIPPET: e2 -->
+
+    <select id="count" resultType="int">
+        select count(*) from ACCOUNT
+    </select>
+
+</mapper>
diff --git a/extensions-jvm/mybatis/integration-test/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MybatisTest.java b/extensions-jvm/mybatis/integration-test/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MybatisTest.java
new file mode 100644
index 0000000..6dda833
--- /dev/null
+++ b/extensions-jvm/mybatis/integration-test/src/test/java/org/apache/camel/quarkus/component/mybatis/it/MybatisTest.java
@@ -0,0 +1,42 @@
+/*
+ * 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.mybatis.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class MybatisTest {
+
+    @Test
+    public void loadComponentMybatis() {
+        /* A simple autogenerated test */
+        RestAssured.get("/mybatis/load/component/mybatis")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentMybatisBean() {
+        /* A simple autogenerated test */
+        RestAssured.get("/mybatis/load/component/mybatis-bean")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/mybatis/pom.xml b/extensions-jvm/mybatis/pom.xml
new file mode 100644
index 0000000..3825318
--- /dev/null
+++ b/extensions-jvm/mybatis/pom.xml
@@ -0,0 +1,40 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mybatis-parent</artifactId>
+    <name>Camel Quarkus :: MyBatis</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/mybatis/runtime/pom.xml b/extensions-jvm/mybatis/runtime/pom.xml
new file mode 100644
index 0000000..4d0a945
--- /dev/null
+++ b/extensions-jvm/mybatis/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?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-mybatis-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mybatis</artifactId>
+    <name>Camel Quarkus :: MyBatis :: Runtime</name>
+    <description>Performs a query, poll, insert, update or delete in a relational database using MyBatis.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </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-mybatis</artifactId>
+        </dependency>
+    </dependencies>
+
+    <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>
+            <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>
+</project>
diff --git a/extensions-jvm/mybatis/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/mybatis/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..bfefcd0
--- /dev/null
+++ b/extensions-jvm/mybatis/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# 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 MyBatis"
+description: "Performs a query, poll, insert, update or delete in a relational database using MyBatis"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/mybatis.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 33bce27..58bcb9c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -88,6 +88,7 @@
         <module>jbpm</module>
         <module>jooq</module>
         <module>jsch</module>
+        <module>mybatis</module>
         <module>nagios</module>
         <module>nitrite</module>
         <module>nsq</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index ea2708a..384c6bb 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1219,6 +1219,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-mybatis</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-nagios</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3406,6 +3411,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-mybatis</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-mybatis-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-nagios</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 05/05: MSV JVM support

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

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

commit 084675820d4a53b804c15d3a323d372097db3600
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 18:46:36 2020 +0200

    MSV JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/msv.adoc       |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/msv/deployment/pom.xml              |  63 +++++++++++++
 .../component/msv/deployment/MsvProcessor.java     |  46 ++++++++++
 extensions-jvm/msv/integration-test/pom.xml        | 100 +++++++++++++++++++++
 .../quarkus/component/msv/it/MsvResource.java      |  51 +++++++++++
 .../camel/quarkus/component/msv/it/MsvTest.java    |  34 +++++++
 extensions-jvm/msv/pom.xml                         |  40 +++++++++
 extensions-jvm/msv/runtime/pom.xml                 |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/pom.xml                             |   1 +
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 64c0dbd..3fd80c3 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2168,6 +2168,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-msv</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-mustache</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 6aef426..96fc30a 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -177,6 +177,7 @@
 *** xref:reference/extensions/mock.adoc[Mock]
 *** xref:reference/extensions/mongodb.adoc[MongoDB]
 *** xref:reference/extensions/mongodb-gridfs.adoc[MongoDB GridFS]
+*** xref:reference/extensions/msv.adoc[MSV]
 *** xref:reference/extensions/mustache.adoc[Mustache]
 *** xref:reference/extensions/mvel.adoc[MVEL]
 *** xref:reference/extensions/mybatis.adoc[MyBatis]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 1440f16..2cf606b 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -562,6 +562,9 @@ Stable | 1.0.0 | Perform operations on MongoDB documents and collections.
 | xref:reference/extensions/mongodb-gridfs.adoc[MongoDB GridFS] | [.camel-element-artifact]##camel-quarkus-mongodb-gridfs## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Interact with MongoDB GridFS.
 
+| xref:reference/extensions/msv.adoc[MSV] | [.camel-element-artifact]##camel-quarkus-msv## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Validate XML payloads using Multi-Schema Validator (MSV).
+
 | xref:reference/extensions/mustache.adoc[Mustache] | [.camel-element-artifact]##camel-quarkus-mustache## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/msv.adoc b/docs/modules/ROOT/pages/reference/extensions/msv.adoc
new file mode 100644
index 0000000..bc66dd9
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/msv.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[msv]]
+= MSV
+:page-aliases: extensions/msv.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Validate XML payloads using Multi-Schema Validator (MSV).
+
+== What's inside
+
+* https://camel.apache.org/components/latest/msv-component.html[MSV component], URI syntax: `msv:resourceUri`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-msv</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 6227dd8..ca76d6d 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -509,6 +509,9 @@ Stable | 1.0.0 | Perform operations on MongoDB documents and collections.
 |  xref:reference/extensions/mongodb-gridfs.adoc[MongoDB GridFS]  | camel-quarkus-mongodb-gridfs | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Interact with MongoDB GridFS.
 
+|  xref:reference/extensions/msv.adoc[MSV]  | camel-quarkus-msv | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Validate XML payloads using Multi-Schema Validator (MSV).
+
 |  xref:reference/extensions/mustache.adoc[Mustache]  | camel-quarkus-mustache | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Transform messages using a Mustache template.
 
diff --git a/extensions-jvm/msv/deployment/pom.xml b/extensions-jvm/msv/deployment/pom.xml
new file mode 100644
index 0000000..3233f7c
--- /dev/null
+++ b/extensions-jvm/msv/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?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-msv-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-msv-deployment</artifactId>
+    <name>Camel Quarkus :: MSV :: 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-msv</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-jvm/msv/deployment/src/main/java/org/apache/camel/quarkus/component/msv/deployment/MsvProcessor.java b/extensions-jvm/msv/deployment/src/main/java/org/apache/camel/quarkus/component/msv/deployment/MsvProcessor.java
new file mode 100644
index 0000000..b1d1be9
--- /dev/null
+++ b/extensions-jvm/msv/deployment/src/main/java/org/apache/camel/quarkus/component/msv/deployment/MsvProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * 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.msv.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 MsvProcessor {
+
+    private static final Logger LOG = Logger.getLogger(MsvProcessor.class);
+    private static final String FEATURE = "camel-msv";
+
+    @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/msv/integration-test/pom.xml b/extensions-jvm/msv/integration-test/pom.xml
new file mode 100644
index 0000000..9b5fb18
--- /dev/null
+++ b/extensions-jvm/msv/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-msv-integration-test</artifactId>
+    <name>Camel Quarkus :: MSV :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus MSV extension</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-msv</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>
+
+        <!-- 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-msv-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/msv/integration-test/src/main/java/org/apache/camel/quarkus/component/msv/it/MsvResource.java b/extensions-jvm/msv/integration-test/src/main/java/org/apache/camel/quarkus/component/msv/it/MsvResource.java
new file mode 100644
index 0000000..9efcce2
--- /dev/null
+++ b/extensions-jvm/msv/integration-test/src/main/java/org/apache/camel/quarkus/component/msv/it/MsvResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.msv.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("/msv")
+@ApplicationScoped
+public class MsvResource {
+
+    private static final Logger LOG = Logger.getLogger(MsvResource.class);
+
+    private static final String COMPONENT_MSV = "msv";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/msv")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentMsv() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_MSV) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_MSV);
+        return Response.status(500, COMPONENT_MSV + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/msv/integration-test/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvTest.java b/extensions-jvm/msv/integration-test/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvTest.java
new file mode 100644
index 0000000..5a0bd7c
--- /dev/null
+++ b/extensions-jvm/msv/integration-test/src/test/java/org/apache/camel/quarkus/component/msv/it/MsvTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.msv.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class MsvTest {
+
+    @Test
+    public void loadComponentMsv() {
+        /* A simple autogenerated test */
+        RestAssured.get("/msv/load/component/msv")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/msv/pom.xml b/extensions-jvm/msv/pom.xml
new file mode 100644
index 0000000..11318a2
--- /dev/null
+++ b/extensions-jvm/msv/pom.xml
@@ -0,0 +1,40 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-msv-parent</artifactId>
+    <name>Camel Quarkus :: MSV</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/msv/runtime/pom.xml b/extensions-jvm/msv/runtime/pom.xml
new file mode 100644
index 0000000..b55615f
--- /dev/null
+++ b/extensions-jvm/msv/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?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-msv-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-msv</artifactId>
+    <name>Camel Quarkus :: MSV :: Runtime</name>
+    <description>Validate XML payloads using Multi-Schema Validator (MSV).</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </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-msv</artifactId>
+        </dependency>
+    </dependencies>
+
+    <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>
+            <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>
+</project>
diff --git a/extensions-jvm/msv/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/msv/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..dc97da5
--- /dev/null
+++ b/extensions-jvm/msv/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# 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 MSV"
+description: "Validate XML payloads using Multi-Schema Validator (MSV)"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/msv.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 1ff5c15..5baffb4 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -88,6 +88,7 @@
         <module>jbpm</module>
         <module>jooq</module>
         <module>jsch</module>
+        <module>msv</module>
         <module>mvel</module>
         <module>mybatis</module>
         <module>nagios</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 3835bdb..de1f853 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1214,6 +1214,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-msv</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-mustache</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3406,6 +3411,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-msv</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-msv-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-mustache</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/05: SSH JVM support

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

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

commit a25c53ebc84c78fef3d3dfcf85d758c008fee340
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 17:47:42 2020 +0200

    SSH JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/ssh.adoc       |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/ssh/deployment/pom.xml              |  63 +++++++++++++
 .../component/ssh/deployment/SshProcessor.java     |  46 ++++++++++
 extensions-jvm/ssh/integration-test/pom.xml        | 100 +++++++++++++++++++++
 .../quarkus/component/ssh/it/SshResource.java      |  51 +++++++++++
 .../camel/quarkus/component/ssh/it/SshTest.java    |  34 +++++++
 extensions-jvm/ssh/pom.xml                         |  40 +++++++++
 extensions-jvm/ssh/runtime/pom.xml                 |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index eaa4910..78a2ada 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2883,6 +2883,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-ssh</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-stax</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index d430993..d6f79d5 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -231,6 +231,7 @@
 *** xref:reference/extensions/splunk.adoc[Splunk]
 *** xref:reference/extensions/splunk-hec.adoc[Splunk HEC]
 *** xref:reference/extensions/sql.adoc[SQL]
+*** xref:reference/extensions/ssh.adoc[SSH]
 *** xref:reference/extensions/stax.adoc[StAX]
 *** xref:reference/extensions/stomp.adoc[Stomp]
 *** xref:reference/extensions/stream.adoc[Stream]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 3a9e71a..40d3573 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -733,6 +733,9 @@ Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 | xref:reference/extensions/sql.adoc[SQL Stored Procedure] | [.camel-element-artifact]##camel-quarkus-sql## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries as a JDBC Stored Procedures using Spring JDBC.
 
+| xref:reference/extensions/ssh.adoc[SSH] | [.camel-element-artifact]##camel-quarkus-ssh## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Execute commands on remote hosts using SSH.
+
 | xref:reference/extensions/stax.adoc[StAX] | [.camel-element-artifact]##camel-quarkus-stax## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Process XML payloads by a SAX ContentHandler.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/ssh.adoc b/docs/modules/ROOT/pages/reference/extensions/ssh.adoc
new file mode 100644
index 0000000..183d030
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/ssh.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[ssh]]
+= SSH
+:page-aliases: extensions/ssh.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Execute commands on remote hosts using SSH.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/ssh-component.html[SSH component], URI syntax: `ssh:host:port`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-ssh</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 0355b32..cb61e19 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -671,6 +671,9 @@ Preview | 1.1.0 | The splunk component allows to publish events in Splunk using
 |  xref:reference/extensions/sql.adoc[SQL]  | camel-quarkus-sql | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 
+|  xref:reference/extensions/ssh.adoc[SSH]  | camel-quarkus-ssh | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Execute commands on remote hosts using SSH.
+
 |  xref:reference/extensions/stax.adoc[StAX]  | camel-quarkus-stax | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Process XML payloads by a SAX ContentHandler.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 9ec384b..6dd3aa1 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -112,6 +112,7 @@
         <module>soroush</module>
         <module>splunk</module>
         <module>splunk-hec</module>
+        <module>ssh</module>
         <module>stax</module>
         <module>stomp</module>
         <module>stringtemplate</module>
diff --git a/extensions-jvm/ssh/deployment/pom.xml b/extensions-jvm/ssh/deployment/pom.xml
new file mode 100644
index 0000000..55b681b
--- /dev/null
+++ b/extensions-jvm/ssh/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?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-ssh-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-ssh-deployment</artifactId>
+    <name>Camel Quarkus :: SSH :: 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-ssh</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-jvm/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java b/extensions-jvm/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
new file mode 100644
index 0000000..baccfa3
--- /dev/null
+++ b/extensions-jvm/ssh/deployment/src/main/java/org/apache/camel/quarkus/component/ssh/deployment/SshProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * 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.ssh.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 SshProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SshProcessor.class);
+    private static final String FEATURE = "camel-ssh";
+
+    @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/ssh/integration-test/pom.xml b/extensions-jvm/ssh/integration-test/pom.xml
new file mode 100644
index 0000000..dd617f4
--- /dev/null
+++ b/extensions-jvm/ssh/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-ssh-integration-test</artifactId>
+    <name>Camel Quarkus :: SSH :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus SSH extension</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</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-ssh</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>
+
+        <!-- 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-ssh-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/ssh/integration-test/src/main/java/org/apache/camel/quarkus/component/ssh/it/SshResource.java b/extensions-jvm/ssh/integration-test/src/main/java/org/apache/camel/quarkus/component/ssh/it/SshResource.java
new file mode 100644
index 0000000..e64c138
--- /dev/null
+++ b/extensions-jvm/ssh/integration-test/src/main/java/org/apache/camel/quarkus/component/ssh/it/SshResource.java
@@ -0,0 +1,51 @@
+/*
+ * 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.ssh.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("/ssh")
+@ApplicationScoped
+public class SshResource {
+
+    private static final Logger LOG = Logger.getLogger(SshResource.class);
+
+    private static final String COMPONENT_SSH = "ssh";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/ssh")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSsh() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SSH) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SSH);
+        return Response.status(500, COMPONENT_SSH + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/ssh/integration-test/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java b/extensions-jvm/ssh/integration-test/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java
new file mode 100644
index 0000000..d419f4e
--- /dev/null
+++ b/extensions-jvm/ssh/integration-test/src/test/java/org/apache/camel/quarkus/component/ssh/it/SshTest.java
@@ -0,0 +1,34 @@
+/*
+ * 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.ssh.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SshTest {
+
+    @Test
+    public void loadComponentSsh() {
+        /* A simple autogenerated test */
+        RestAssured.get("/ssh/load/component/ssh")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/ssh/pom.xml b/extensions-jvm/ssh/pom.xml
new file mode 100644
index 0000000..8f1b191
--- /dev/null
+++ b/extensions-jvm/ssh/pom.xml
@@ -0,0 +1,40 @@
+<?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.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-ssh-parent</artifactId>
+    <name>Camel Quarkus :: SSH</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/ssh/runtime/pom.xml b/extensions-jvm/ssh/runtime/pom.xml
new file mode 100644
index 0000000..1bc8bd8
--- /dev/null
+++ b/extensions-jvm/ssh/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?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-ssh-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-ssh</artifactId>
+    <name>Camel Quarkus :: SSH :: Runtime</name>
+    <description>Execute commands on remote hosts using SSH.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </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-ssh</artifactId>
+        </dependency>
+    </dependencies>
+
+    <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>
+            <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>
+</project>
diff --git a/extensions-jvm/ssh/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/ssh/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..fe5b03b
--- /dev/null
+++ b/extensions-jvm/ssh/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# 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 SSH"
+description: "Execute commands on remote hosts using SSH"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/ssh.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 8a3281d..d727673 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1529,6 +1529,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-ssh</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-stax</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3941,6 +3946,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-ssh</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-ssh-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-stax</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>