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/03/19 13:39:56 UTC

[camel-quarkus] branch master updated (5dbb79b -> 21b1ddc)

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 5dbb79b  Add Google Sheets extension
     new 1ee7cf7  Fix #915 Debezium MongoDB Connector support (JVM only)
     new c0064c4  Fix #916 Debezium PostgresSQL Connector support (JVM only)
     new b792a74  Fix #917 Debezium MySQL Connector support (JVM only)
     new 21b1ddc  Fix #918 Debezium SQL Server Connector support (JVM only)

The 4 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:
 .../pages/list-of-camel-quarkus-extensions.adoc    | 18 ++++-
 .../debezium-mongodb}/deployment/pom.xml           | 12 ++--
 .../deployment/DebeziumMongodbProcessor.java       |  7 +-
 .../integration-test/pom.xml                       | 12 ++--
 .../mongodb/it/DebeziumMongodbResource.java}       | 20 +++---
 .../debezium/mongodb/it/DebeziumMongodbTest.java}  |  8 +--
 .../{cassandraql => debezium-mongodb}/pom.xml      |  4 +-
 .../debezium-mongodb}/runtime/pom.xml              | 35 +++++-----
 .../main/resources/META-INF/quarkus-extension.yaml |  7 +-
 .../debezium-mysql}/deployment/pom.xml             | 14 ++--
 .../mysql/deployment/DebeziumMysqlProcessor.java   |  6 +-
 .../integration-test/pom.xml                       | 12 ++--
 .../debezium/mysql/it/DebeziumMysqlResource.java}  | 20 +++---
 .../debezium/mysql/it/DebeziumMysqlTest.java}      |  8 +--
 extensions-jvm/{couchdb => debezium-mysql}/pom.xml |  4 +-
 .../debezium-mysql}/runtime/pom.xml                | 16 ++---
 .../main/resources/META-INF/quarkus-extension.yaml |  9 +--
 .../debezium-postgres}/deployment/pom.xml          | 14 ++--
 .../deployment/DebeziumPostgresProcessor.java      |  7 +-
 .../integration-test/pom.xml                       | 12 ++--
 .../postgres/it/DebeziumPostgresResource.java}     | 20 +++---
 .../postgres/it/DebeziumPostgresTest.java}         |  8 +--
 .../pom.xml                                        |  4 +-
 .../debezium-postgres}/runtime/pom.xml             | 16 ++---
 .../main/resources/META-INF/quarkus-extension.yaml |  9 +--
 .../debezium-sqlserver}/deployment/pom.xml         | 14 ++--
 .../deployment/DebeziumSqlserverProcessor.java}    |  6 +-
 .../integration-test/pom.xml                       | 12 ++--
 .../sqlserver/it/DebeziumSqlserverResource.java}   | 20 +++---
 .../sqlserver/it/DebeziumSqlserverTest.java}       |  8 +--
 .../pom.xml                                        |  4 +-
 .../debezium-sqlserver}/runtime/pom.xml            | 16 ++---
 .../main/resources/META-INF/quarkus-extension.yaml |  9 +--
 extensions-jvm/pom.xml                             |  4 ++
 .../debezium}/deployment/pom.xml                   | 20 +++---
 .../support/debezium/DebeziumSupportFeature.java}  |  6 +-
 .../debezium}/pom.xml                              |  4 +-
 .../debezium}/runtime/pom.xml                      | 26 ++++----
 .../main/resources/META-INF/quarkus-extension.yaml |  4 +-
 extensions-support/pom.xml                         |  1 +
 pom.xml                                            |  1 +
 poms/bom-deployment/pom.xml                        | 33 +++++++++
 poms/bom/pom.xml                                   | 78 +++++++++++++++++-----
 43 files changed, 338 insertions(+), 230 deletions(-)
 copy {extensions/google-mail => extensions-jvm/debezium-mongodb}/deployment/pom.xml (86%)
 copy extensions-support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringFeature.java => extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java (85%)
 copy extensions-jvm/{couchdb => debezium-mongodb}/integration-test/pom.xml (85%)
 copy extensions-jvm/{cassandraql/integration-test/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlResource.java => debezium-mongodb/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbResource.java} (68%)
 copy extensions-jvm/{cassandraql/integration-test/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlTest.java => debezium-mongodb/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbTest.java} (82%)
 copy extensions-jvm/{cassandraql => debezium-mongodb}/pom.xml (92%)
 copy {extensions/soap => extensions-jvm/debezium-mongodb}/runtime/pom.xml (76%)
 copy extensions-jvm/{cassandraql => debezium-mongodb}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (74%)
 copy {extensions/google-mail => extensions-jvm/debezium-mysql}/deployment/pom.xml (85%)
 copy extensions/controlbus/deployment/src/main/java/org/apache/camel/quarkus/component/controlbus/deployment/ControlbusProcessor.java => extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java (86%)
 copy extensions-jvm/{cassandraql => debezium-mysql}/integration-test/pom.xml (85%)
 copy extensions-jvm/{cassandraql/integration-test/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlResource.java => debezium-mysql/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlResource.java} (69%)
 copy extensions-jvm/{cassandraql/integration-test/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlTest.java => debezium-mysql/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlTest.java} (83%)
 copy extensions-jvm/{couchdb => debezium-mysql}/pom.xml (92%)
 copy {extensions/google-mail => extensions-jvm/debezium-mysql}/runtime/pom.xml (83%)
 copy extensions-jvm/{cassandraql => debezium-mysql}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (74%)
 copy {extensions/google-mail => extensions-jvm/debezium-postgres}/deployment/pom.xml (85%)
 copy extensions-support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringFeature.java => extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java (85%)
 copy extensions-jvm/{cassandraql => debezium-postgres}/integration-test/pom.xml (84%)
 copy extensions-jvm/{couchbase/integration-test/src/main/java/org/apache/camel/quarkus/component/couchbase/it/CouchbaseResource.java => debezium-postgres/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresResource.java} (68%)
 copy extensions-jvm/{cassandraql/integration-test/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlTest.java => debezium-postgres/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresTest.java} (82%)
 copy extensions-jvm/{elasticsearch-rest => debezium-postgres}/pom.xml (92%)
 copy {extensions/google-mail => extensions-jvm/debezium-postgres}/runtime/pom.xml (82%)
 copy extensions-jvm/{cassandraql => debezium-postgres}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (72%)
 copy {extensions/google-mail => extensions-jvm/debezium-sqlserver}/deployment/pom.xml (85%)
 copy extensions-jvm/{elasticsearch-rest/deployment/src/main/java/org/apache/camel/quarkus/component/elasticsearch/rest/deployment/ElasticsearchRestProcessor.java => debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java} (85%)
 copy extensions-jvm/{elasticsearch-rest => debezium-sqlserver}/integration-test/pom.xml (87%)
 copy extensions-jvm/{elasticsearch-rest/integration-test/src/main/java/org/apache/camel/quarkus/component/elasticsearch/rest/it/ElasticsearchRestResource.java => debezium-sqlserver/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverResource.java} (71%)
 copy extensions-jvm/{elasticsearch-rest/integration-test/src/test/java/org/apache/camel/quarkus/component/elasticsearch/rest/it/ElasticsearchRestTest.java => debezium-sqlserver/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverTest.java} (82%)
 copy extensions-jvm/{elasticsearch-rest => debezium-sqlserver}/pom.xml (92%)
 copy {extensions/google-mail => extensions-jvm/debezium-sqlserver}/runtime/pom.xml (82%)
 copy extensions-jvm/{cassandraql => debezium-sqlserver}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (72%)
 copy {extensions/box => extensions-support/debezium}/deployment/pom.xml (84%)
 copy extensions-support/{xalan/deployment/src/main/java/org/apache/camel/quarkus/support/xalan/deployment/XalanFeature.java => debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/DebeziumSupportFeature.java} (87%)
 copy {extensions/reactive-streams => extensions-support/debezium}/pom.xml (92%)
 copy {extensions/pdf => extensions-support/debezium}/runtime/pom.xml (82%)
 copy extensions-support/{policy => debezium}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)


[camel-quarkus] 03/04: Fix #917 Debezium MySQL Connector support (JVM only)

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 b792a740ea393896c83243f2477c8e1764bfd6ee
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 12:52:55 2020 +0100

    Fix #917 Debezium MySQL Connector support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/debezium-mysql/deployment/pom.xml   | 83 ++++++++++++++++++++
 .../mysql/deployment/DebeziumMysqlProcessor.java   | 31 ++++++++
 .../debezium-mysql/integration-test/pom.xml        | 82 +++++++++++++++++++
 .../debezium/mysql/it/DebeziumMysqlResource.java   | 51 ++++++++++++
 .../debezium/mysql/it/DebeziumMysqlTest.java       | 34 ++++++++
 extensions-jvm/{ => debezium-mysql}/pom.xml        | 25 +++---
 extensions-jvm/debezium-mysql/runtime/pom.xml      | 91 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 30 +++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        | 13 ++++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 441 insertions(+), 16 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 56b6a85..682415a 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 89 in 76 JAR artifacts (0 deprecated)
+Number of Camel components: 90 in 77 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -141,6 +141,10 @@ Level | Since | Description
 `debezium-mongodb:name` | JVM +
  Preview | 1.0.0-M6 | Represents a Debezium MongoDB endpoint which is used to capture changes in MongoDB database so that that applications can see those changes and respond to them.
 
+| link:https://camel.apache.org/components/latest/debezium-mysql-component.html[Debezium MySQL Connector] (camel-quarkus-debezium-mysql) +
+`debezium-mysql:name` | JVM +
+ Preview | 1.0.0-M6 | Represents a Debezium MySQL endpoint which is used to capture changes in MySQL database so that that applications can see those changes and respond to them.
+
 | link:https://camel.apache.org/components/latest/debezium-postgres-component.html[Debezium PostgresSQL Connector] (camel-quarkus-debezium-postgres) +
 `debezium-postgres:name` | JVM +
  Preview | 1.0.0-M6 | Represents a Debezium PostgresSQL endpoint which is used to capture changes in PostgresSQL database so that that applications can see those changes and respond to them.
diff --git a/extensions-jvm/debezium-mysql/deployment/pom.xml b/extensions-jvm/debezium-mysql/deployment/pom.xml
new file mode 100644
index 0000000..46de779
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/deployment/pom.xml
@@ -0,0 +1,83 @@
+<?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-debezium-mysql-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-mysql-deployment</artifactId>
+    <name>Camel Quarkus :: Debezium MySQL Connector :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</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-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-mysql-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-mysql</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/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java b/extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java
new file mode 100644
index 0000000..9afc894
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.debezium.mysql.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class DebeziumMysqlProcessor {
+
+    private static final String FEATURE = "camel-debezium-mysql";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/debezium-mysql/integration-test/pom.xml b/extensions-jvm/debezium-mysql/integration-test/pom.xml
new file mode 100644
index 0000000..ee15b03
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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-debezium-mysql-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-mysql-integration-test</artifactId>
+    <name>Camel Quarkus :: Debezium MySQL Connector :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Debezium MySQL Connector extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-debezium-mysql-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-mysql</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>
+    </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/debezium-mysql/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlResource.java b/extensions-jvm/debezium-mysql/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlResource.java
new file mode 100644
index 0000000..5eac075
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlResource.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.debezium.mysql.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("/debezium-mysql")
+@ApplicationScoped
+public class DebeziumMysqlResource {
+
+    private static final Logger LOG = Logger.getLogger(DebeziumMysqlResource.class);
+
+    private static final String COMPONENT_DEBEZIUM_MYSQL = "debezium-mysql";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/debezium-mysql")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentDebeziumMysql() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_DEBEZIUM_MYSQL) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_DEBEZIUM_MYSQL);
+        return Response.status(500, COMPONENT_DEBEZIUM_MYSQL + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/debezium-mysql/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlTest.java b/extensions-jvm/debezium-mysql/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlTest.java
new file mode 100644
index 0000000..557b23c
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlTest.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.debezium.mysql.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class DebeziumMysqlTest {
+
+    @Test
+    public void loadComponentDebeziumMysql() {
+        /* A simple autogenerated test */
+        RestAssured.get("/debezium-mysql/load/component/debezium-mysql")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/debezium-mysql/pom.xml
similarity index 57%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/debezium-mysql/pom.xml
index f8c9806..686f478 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/debezium-mysql/pom.xml
@@ -17,29 +17,24 @@
     limitations under the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-parent</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-jvm</artifactId>
+    <artifactId>camel-quarkus-debezium-mysql-parent</artifactId>
+    <name>Camel Quarkus :: Debezium MySQL Connector</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions JVM</name>
-    <description>Autogenerated extensions not yet tested in the native mode</description>
-
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>cassandraql</module>
-        <module>couchbase</module>
-        <module>couchdb</module>
-        <module>debezium-mongodb</module>
-        <module>debezium-postgres</module>
-        <module>elasticsearch-rest</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/debezium-mysql/runtime/pom.xml b/extensions-jvm/debezium-mysql/runtime/pom.xml
new file mode 100644
index 0000000..37fc2ae
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/runtime/pom.xml
@@ -0,0 +1,91 @@
+<?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-debezium-mysql-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-mysql</artifactId>
+    <name>Camel Quarkus :: Debezium MySQL Connector :: Runtime</name>
+    <description>Represents a Debezium MySQL endpoint which is used to capture changes in MySQL database so that that applications can see those changes and respond to them.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</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.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-mysql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-debezium-mysql</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/debezium-mysql/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/debezium-mysql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..e75408d
--- /dev/null
+++ b/extensions-jvm/debezium-mysql/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,30 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Debezium MySQL Connector"
+description: "Represents a Debezium MySQL endpoint which is used to capture changes in MySQL database so that that applications can see those changes and respond to them."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  - "mysql"
+  - "sql"
+  guide: "https://camel.apache.org/components/latest/debezium-mysql-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index f8c9806..db7e664 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -38,6 +38,7 @@
         <module>couchbase</module>
         <module>couchdb</module>
         <module>debezium-mongodb</module>
+        <module>debezium-mysql</module>
         <module>debezium-postgres</module>
         <module>elasticsearch-rest</module>
     </modules>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 7a6a784..c3f3adb 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -55,6 +55,14 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+
+            <!-- A temporary workaround for https://github.com/quarkusio/quarkus/issues/7964 -->
+            <dependency>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-jdbc-mysql-deployment</artifactId>
+                <version>${quarkus.version}</version>
+            </dependency>
+
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jira-deployment</artifactId>
@@ -231,6 +239,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-mysql-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-debezium-postgres-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 9a1dfdb..d736d17 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -276,6 +276,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-debezium-mysql</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-debezium-postgres</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -949,6 +954,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-mysql</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-debezium-postgres</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/04: Fix #916 Debezium PostgresSQL Connector support (JVM only)

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 c0064c4b9543ecf9de4fa523479bf5e68ad39a47
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 12:36:20 2020 +0100

    Fix #916 Debezium PostgresSQL Connector support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 .../debezium-postgres/deployment/pom.xml           | 83 ++++++++++++++++++++
 .../deployment/DebeziumPostgresProcessor.java      | 31 ++++++++
 .../debezium-postgres/integration-test/pom.xml     | 82 +++++++++++++++++++
 .../postgres/it/DebeziumPostgresResource.java      | 51 ++++++++++++
 .../debezium/postgres/it/DebeziumPostgresTest.java | 34 ++++++++
 extensions-jvm/{ => debezium-postgres}/pom.xml     | 24 +++---
 extensions-jvm/debezium-postgres/runtime/pom.xml   | 91 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 30 +++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 433 insertions(+), 15 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 2d54923..56b6a85 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 88 in 75 JAR artifacts (0 deprecated)
+Number of Camel components: 89 in 76 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -141,6 +141,10 @@ Level | Since | Description
 `debezium-mongodb:name` | JVM +
  Preview | 1.0.0-M6 | Represents a Debezium MongoDB endpoint which is used to capture changes in MongoDB database so that that applications can see those changes and respond to them.
 
+| link:https://camel.apache.org/components/latest/debezium-postgres-component.html[Debezium PostgresSQL Connector] (camel-quarkus-debezium-postgres) +
+`debezium-postgres:name` | JVM +
+ Preview | 1.0.0-M6 | Represents a Debezium PostgresSQL endpoint which is used to capture changes in PostgresSQL database so that that applications can see those changes and respond to them.
+
 | link:https://camel.apache.org/components/latest/direct-component.html[Direct] (camel-quarkus-direct) +
 `direct:name` | Native +
  Stable | 0.2.0 | The direct component provides direct, synchronous call to another endpoint from the same CamelContext.
diff --git a/extensions-jvm/debezium-postgres/deployment/pom.xml b/extensions-jvm/debezium-postgres/deployment/pom.xml
new file mode 100644
index 0000000..1741456
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/deployment/pom.xml
@@ -0,0 +1,83 @@
+<?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-debezium-postgres-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-postgres-deployment</artifactId>
+    <name>Camel Quarkus :: Debezium PostgresSQL Connector :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</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-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-postgresql-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-postgres</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/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java b/extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
new file mode 100644
index 0000000..083a7e3
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.debezium.postgres.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class DebeziumPostgresProcessor {
+
+    private static final String FEATURE = "camel-debezium-postgres";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/debezium-postgres/integration-test/pom.xml b/extensions-jvm/debezium-postgres/integration-test/pom.xml
new file mode 100644
index 0000000..d76ea78
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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-debezium-postgres-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-postgres-integration-test</artifactId>
+    <name>Camel Quarkus :: Debezium PostgresSQL Connector :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Debezium PostgresSQL Connector extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-debezium-postgres-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-postgres</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>
+    </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/debezium-postgres/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresResource.java b/extensions-jvm/debezium-postgres/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresResource.java
new file mode 100644
index 0000000..870bad2
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresResource.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.debezium.postgres.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("/debezium-postgres")
+@ApplicationScoped
+public class DebeziumPostgresResource {
+
+    private static final Logger LOG = Logger.getLogger(DebeziumPostgresResource.class);
+
+    private static final String COMPONENT_DEBEZIUM_POSTGRES = "debezium-postgres";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/debezium-postgres")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentDebeziumPostgres() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_DEBEZIUM_POSTGRES) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_DEBEZIUM_POSTGRES);
+        return Response.status(500, COMPONENT_DEBEZIUM_POSTGRES + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/debezium-postgres/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresTest.java b/extensions-jvm/debezium-postgres/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresTest.java
new file mode 100644
index 0000000..f5df048
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/postgres/it/DebeziumPostgresTest.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.debezium.postgres.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class DebeziumPostgresTest {
+
+    @Test
+    public void loadComponentDebeziumPostgres() {
+        /* A simple autogenerated test */
+        RestAssured.get("/debezium-postgres/load/component/debezium-postgres")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/debezium-postgres/pom.xml
similarity index 58%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/debezium-postgres/pom.xml
index f3e998d..37ffe9f 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/debezium-postgres/pom.xml
@@ -17,28 +17,24 @@
     limitations under the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-parent</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-jvm</artifactId>
+    <artifactId>camel-quarkus-debezium-postgres-parent</artifactId>
+    <name>Camel Quarkus :: Debezium PostgresSQL Connector</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions JVM</name>
-    <description>Autogenerated extensions not yet tested in the native mode</description>
-
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>cassandraql</module>
-        <module>couchbase</module>
-        <module>couchdb</module>
-        <module>debezium-mongodb</module>
-        <module>elasticsearch-rest</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/debezium-postgres/runtime/pom.xml b/extensions-jvm/debezium-postgres/runtime/pom.xml
new file mode 100644
index 0000000..a92335d
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/runtime/pom.xml
@@ -0,0 +1,91 @@
+<?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-debezium-postgres-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-postgres</artifactId>
+    <name>Camel Quarkus :: Debezium PostgresSQL Connector :: Runtime</name>
+    <description>Represents a Debezium PostgresSQL endpoint which is used to capture changes in PostgresSQL database so that that applications can see those changes and respond to them.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</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.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-postgresql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-debezium-postgres</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/debezium-postgres/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/debezium-postgres/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..71ef20f
--- /dev/null
+++ b/extensions-jvm/debezium-postgres/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,30 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Debezium PostgresSQL Connector"
+description: "Represents a Debezium PostgresSQL endpoint which is used to capture changes in PostgresSQL database so that that applications can see those changes and respond to them."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  - "postgres"
+  - "sql"
+  guide: "https://camel.apache.org/components/latest/debezium-postgres-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index f3e998d..f8c9806 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -38,6 +38,7 @@
         <module>couchbase</module>
         <module>couchdb</module>
         <module>debezium-mongodb</module>
+        <module>debezium-postgres</module>
         <module>elasticsearch-rest</module>
     </modules>
 
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 41fca4f..7a6a784 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -231,6 +231,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-postgres-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-direct-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index f8117c6..9a1dfdb 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -276,6 +276,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-debezium-postgres</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-direct</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -944,6 +949,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-postgres</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-direct</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 04/04: Fix #918 Debezium SQL Server Connector support (JVM only)

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 21b1ddc6aa715f97e9d97821da6f86313a747237
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 13:07:47 2020 +0100

    Fix #918 Debezium SQL Server Connector support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 .../debezium-sqlserver/deployment/pom.xml          | 83 ++++++++++++++++++++
 .../deployment/DebeziumSqlserverProcessor.java     | 31 ++++++++
 .../debezium-sqlserver/integration-test/pom.xml    | 82 +++++++++++++++++++
 .../sqlserver/it/DebeziumSqlserverResource.java    | 51 ++++++++++++
 .../sqlserver/it/DebeziumSqlserverTest.java        | 34 ++++++++
 extensions-jvm/{ => debezium-sqlserver}/pom.xml    | 26 +++----
 extensions-jvm/debezium-sqlserver/runtime/pom.xml  | 91 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 30 +++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 433 insertions(+), 17 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index 682415a..fd2b8fb 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 90 in 77 JAR artifacts (0 deprecated)
+Number of Camel components: 91 in 78 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -149,6 +149,10 @@ Level | Since | Description
 `debezium-postgres:name` | JVM +
  Preview | 1.0.0-M6 | Represents a Debezium PostgresSQL endpoint which is used to capture changes in PostgresSQL database so that that applications can see those changes and respond to them.
 
+| link:https://camel.apache.org/components/latest/debezium-sqlserver-component.html[Debezium SQL Server Connector] (camel-quarkus-debezium-sqlserver) +
+`debezium-sqlserver:name` | JVM +
+ Preview | 1.0.0-M6 | Represents a Debezium SQL Server endpoint which is used to capture changes in SQL Server database so that that applications can see those changes and respond to them.
+
 | link:https://camel.apache.org/components/latest/direct-component.html[Direct] (camel-quarkus-direct) +
 `direct:name` | Native +
  Stable | 0.2.0 | The direct component provides direct, synchronous call to another endpoint from the same CamelContext.
diff --git a/extensions-jvm/debezium-sqlserver/deployment/pom.xml b/extensions-jvm/debezium-sqlserver/deployment/pom.xml
new file mode 100644
index 0000000..26c5ff7
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/deployment/pom.xml
@@ -0,0 +1,83 @@
+<?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-debezium-sqlserver-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-sqlserver-deployment</artifactId>
+    <name>Camel Quarkus :: Debezium SQL Server Connector :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</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-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-mssql-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-sqlserver</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/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java b/extensions-jvm/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java
new file mode 100644
index 0000000..908de57
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/deployment/DebeziumSqlserverProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.debezium.sqlserver.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class DebeziumSqlserverProcessor {
+
+    private static final String FEATURE = "camel-debezium-sqlserver";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/debezium-sqlserver/integration-test/pom.xml b/extensions-jvm/debezium-sqlserver/integration-test/pom.xml
new file mode 100644
index 0000000..fc5f667
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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-debezium-sqlserver-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-sqlserver-integration-test</artifactId>
+    <name>Camel Quarkus :: Debezium SQL Server Connector :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Debezium SQL Server Connector extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-debezium-sqlserver-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-sqlserver</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>
+    </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/debezium-sqlserver/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverResource.java b/extensions-jvm/debezium-sqlserver/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverResource.java
new file mode 100644
index 0000000..8fccc6a
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverResource.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.debezium.sqlserver.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("/debezium-sqlserver")
+@ApplicationScoped
+public class DebeziumSqlserverResource {
+
+    private static final Logger LOG = Logger.getLogger(DebeziumSqlserverResource.class);
+
+    private static final String COMPONENT_DEBEZIUM_SQLSERVER = "debezium-sqlserver";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/debezium-sqlserver")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentDebeziumSqlserver() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_DEBEZIUM_SQLSERVER) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_DEBEZIUM_SQLSERVER);
+        return Response.status(500, COMPONENT_DEBEZIUM_SQLSERVER + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/debezium-sqlserver/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverTest.java b/extensions-jvm/debezium-sqlserver/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverTest.java
new file mode 100644
index 0000000..d91fe56
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/sqlserver/it/DebeziumSqlserverTest.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.debezium.sqlserver.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class DebeziumSqlserverTest {
+
+    @Test
+    public void loadComponentDebeziumSqlserver() {
+        /* A simple autogenerated test */
+        RestAssured.get("/debezium-sqlserver/load/component/debezium-sqlserver")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/debezium-sqlserver/pom.xml
similarity index 55%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/debezium-sqlserver/pom.xml
index db7e664..2201342 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/debezium-sqlserver/pom.xml
@@ -17,30 +17,24 @@
     limitations under the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-parent</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-jvm</artifactId>
+    <artifactId>camel-quarkus-debezium-sqlserver-parent</artifactId>
+    <name>Camel Quarkus :: Debezium SQL Server Connector</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions JVM</name>
-    <description>Autogenerated extensions not yet tested in the native mode</description>
-
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>cassandraql</module>
-        <module>couchbase</module>
-        <module>couchdb</module>
-        <module>debezium-mongodb</module>
-        <module>debezium-mysql</module>
-        <module>debezium-postgres</module>
-        <module>elasticsearch-rest</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/debezium-sqlserver/runtime/pom.xml b/extensions-jvm/debezium-sqlserver/runtime/pom.xml
new file mode 100644
index 0000000..4d7f326
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/runtime/pom.xml
@@ -0,0 +1,91 @@
+<?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-debezium-sqlserver-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-sqlserver</artifactId>
+    <name>Camel Quarkus :: Debezium SQL Server Connector :: Runtime</name>
+    <description>Represents a Debezium SQL Server endpoint which is used to capture changes in SQL Server database so that that applications can see those changes and respond to them.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</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.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-jdbc-mssql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-debezium-sqlserver</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/debezium-sqlserver/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/debezium-sqlserver/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..f7b354d
--- /dev/null
+++ b/extensions-jvm/debezium-sqlserver/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,30 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Debezium SQL Server Connector"
+description: "Represents a Debezium SQL Server endpoint which is used to capture changes in SQL Server database so that that applications can see those changes and respond to them."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  - "sql"
+  - "sqlserver"
+  guide: "https://camel.apache.org/components/latest/debezium-sqlserver-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index db7e664..fce4d6b 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -40,6 +40,7 @@
         <module>debezium-mongodb</module>
         <module>debezium-mysql</module>
         <module>debezium-postgres</module>
+        <module>debezium-sqlserver</module>
         <module>elasticsearch-rest</module>
     </modules>
 
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index c3f3adb..94e0bec 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -249,6 +249,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-sqlserver-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-direct-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index d736d17..28dbadd 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -286,6 +286,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-debezium-sqlserver</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-direct</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -964,6 +969,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-sqlserver</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-direct</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/04: Fix #915 Debezium MongoDB Connector support (JVM only)

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 1ee7cf768e4f186ad6cc335128ea10cd32bc5250
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 12:29:14 2020 +0100

    Fix #915 Debezium MongoDB Connector support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |   6 +-
 extensions-jvm/debezium-mongodb/deployment/pom.xml |  83 +++++++++++++++++
 .../deployment/DebeziumMongodbProcessor.java       |  31 +++++++
 .../debezium-mongodb/integration-test/pom.xml      |  82 +++++++++++++++++
 .../mongodb/it/DebeziumMongodbResource.java        |  51 +++++++++++
 .../debezium/mongodb/it/DebeziumMongodbTest.java   |  34 +++++++
 extensions-jvm/{ => debezium-mongodb}/pom.xml      |  23 ++---
 extensions-jvm/debezium-mongodb/runtime/pom.xml    | 101 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  30 ++++++
 extensions-jvm/pom.xml                             |   1 +
 extensions-support/debezium/deployment/pom.xml     |  79 ++++++++++++++++
 .../support/debezium/DebeziumSupportFeature.java   |  29 ++++++
 .../debezium}/pom.xml                              |  18 ++--
 extensions-support/debezium/runtime/pom.xml        |  90 ++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  27 ++++++
 extensions-support/pom.xml                         |   1 +
 pom.xml                                            |   1 +
 poms/bom-deployment/pom.xml                        |  10 ++
 poms/bom/pom.xml                                   |  48 ++++++----
 19 files changed, 701 insertions(+), 44 deletions(-)

diff --git a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
index a27a61b..2d54923 100644
--- a/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
+++ b/docs/modules/ROOT/pages/list-of-camel-quarkus-extensions.adoc
@@ -18,7 +18,7 @@ In case you are missing some Camel feature in the list:
 == Camel Components
 
 // components: START
-Number of Camel components: 87 in 74 JAR artifacts (0 deprecated)
+Number of Camel components: 88 in 75 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -137,6 +137,10 @@ Level | Since | Description
 `dataformat:name:operation` | Native +
  Stable | 0.4.0 | The dataformat component is used for working with Data Formats as if it was a regular Component supporting Endpoints and URIs.
 
+| link:https://camel.apache.org/components/latest/debezium-mongodb-component.html[Debezium MongoDB Connector] (camel-quarkus-debezium-mongodb) +
+`debezium-mongodb:name` | JVM +
+ Preview | 1.0.0-M6 | Represents a Debezium MongoDB endpoint which is used to capture changes in MongoDB database so that that applications can see those changes and respond to them.
+
 | link:https://camel.apache.org/components/latest/direct-component.html[Direct] (camel-quarkus-direct) +
 `direct:name` | Native +
  Stable | 0.2.0 | The direct component provides direct, synchronous call to another endpoint from the same CamelContext.
diff --git a/extensions-jvm/debezium-mongodb/deployment/pom.xml b/extensions-jvm/debezium-mongodb/deployment/pom.xml
new file mode 100644
index 0000000..390665c
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/deployment/pom.xml
@@ -0,0 +1,83 @@
+<?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-debezium-mongodb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-mongodb-deployment</artifactId>
+    <name>Camel Quarkus :: Debezium MongoDB Connector :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</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-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-mongodb-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-mongodb</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/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java b/extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java
new file mode 100644
index 0000000..0545c2c
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/deployment/DebeziumMongodbProcessor.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.debezium.mongodb.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class DebeziumMongodbProcessor {
+
+    private static final String FEATURE = "camel-debezium-mongodb";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/debezium-mongodb/integration-test/pom.xml b/extensions-jvm/debezium-mongodb/integration-test/pom.xml
new file mode 100644
index 0000000..5c481c4
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/integration-test/pom.xml
@@ -0,0 +1,82 @@
+<?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-debezium-mongodb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-mongodb-integration-test</artifactId>
+    <name>Camel Quarkus :: Debezium MongoDB Connector :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Debezium MongoDB Connector extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/gnodet/mvnd -->
+        <!-- The following rule tells mvnd to build the listed deployment modules before this module. -->
+        <!-- This is important because mvnd builds modules in parallel by default. The deployment modules are not -->
+        <!-- explicit dependencies of this module in the Maven sense, although they are required by the Quarkus Maven plugin. -->
+        <!-- Please update rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-debezium-mongodb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-debezium-mongodb</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>
+    </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/debezium-mongodb/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbResource.java b/extensions-jvm/debezium-mongodb/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbResource.java
new file mode 100644
index 0000000..6341702
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbResource.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.debezium.mongodb.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("/debezium-mongodb")
+@ApplicationScoped
+public class DebeziumMongodbResource {
+
+    private static final Logger LOG = Logger.getLogger(DebeziumMongodbResource.class);
+
+    private static final String COMPONENT_DEBEZIUM_MONGODB = "debezium-mongodb";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/debezium-mongodb")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentDebeziumMongodb() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_DEBEZIUM_MONGODB) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_DEBEZIUM_MONGODB);
+        return Response.status(500, COMPONENT_DEBEZIUM_MONGODB + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/debezium-mongodb/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbTest.java b/extensions-jvm/debezium-mongodb/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbTest.java
new file mode 100644
index 0000000..f14194a
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/integration-test/src/test/java/org/apache/camel/quarkus/component/debezium/mongodb/it/DebeziumMongodbTest.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.debezium.mongodb.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class DebeziumMongodbTest {
+
+    @Test
+    public void loadComponentDebeziumMongodb() {
+        /* A simple autogenerated test */
+        RestAssured.get("/debezium-mongodb/load/component/debezium-mongodb")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/debezium-mongodb/pom.xml
similarity index 59%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/debezium-mongodb/pom.xml
index 396840f..f649eb7 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/debezium-mongodb/pom.xml
@@ -17,27 +17,24 @@
     limitations under the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-parent</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-jvm</artifactId>
+    <artifactId>camel-quarkus-debezium-mongodb-parent</artifactId>
+    <name>Camel Quarkus :: Debezium MongoDB Connector</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions JVM</name>
-    <description>Autogenerated extensions not yet tested in the native mode</description>
-
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>cassandraql</module>
-        <module>couchbase</module>
-        <module>couchdb</module>
-        <module>elasticsearch-rest</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/debezium-mongodb/runtime/pom.xml b/extensions-jvm/debezium-mongodb/runtime/pom.xml
new file mode 100644
index 0000000..d7cc775
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/runtime/pom.xml
@@ -0,0 +1,101 @@
+<?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-debezium-mongodb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-debezium-mongodb</artifactId>
+    <name>Camel Quarkus :: Debezium MongoDB Connector :: Runtime</name>
+    <description>Represents a Debezium MongoDB endpoint which is used to capture changes in MongoDB database so that that applications can see those changes and respond to them.</description>
+
+    <properties>
+        <firstVersion>1.0.0-M6</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.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-mongodb</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-debezium-mongodb</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.mongodb</groupId>
+                    <artifactId>bson</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.mongodb</groupId>
+                    <artifactId>mongodb-driver-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/debezium-mongodb/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/debezium-mongodb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..5f55b88
--- /dev/null
+++ b/extensions-jvm/debezium-mongodb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,30 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Debezium MongoDB Connector"
+description: "Represents a Debezium MongoDB endpoint which is used to capture changes in MongoDB database so that that applications can see those changes and respond to them."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  - "mongodb"
+  - "nosql"
+  guide: "https://camel.apache.org/components/latest/debezium-mongodb-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 396840f..f3e998d 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -37,6 +37,7 @@
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>couchdb</module>
+        <module>debezium-mongodb</module>
         <module>elasticsearch-rest</module>
     </modules>
 
diff --git a/extensions-support/debezium/deployment/pom.xml b/extensions-support/debezium/deployment/pom.xml
new file mode 100644
index 0000000..aac6a4d
--- /dev/null
+++ b/extensions-support/debezium/deployment/pom.xml
@@ -0,0 +1,79 @@
+<?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-support-debezium-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-support-debezium-deployment</artifactId>
+    <name>Camel Quarkus :: Support :: Debezium :: Deployment</name>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-deployment</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-debezium</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>maven-artifact</artifactId>
+                </exclusion>
+            </exclusions>
+        </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-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/DebeziumSupportFeature.java b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/DebeziumSupportFeature.java
new file mode 100644
index 0000000..a2f40e0
--- /dev/null
+++ b/extensions-support/debezium/deployment/src/main/java/org/apache/camel/quarkus/support/debezium/DebeziumSupportFeature.java
@@ -0,0 +1,29 @@
+/*
+ * 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.support.debezium;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+public class DebeziumSupportFeature {
+    static final String FEATURE = "camel-support-debezium";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+}
diff --git a/extensions-jvm/pom.xml b/extensions-support/debezium/pom.xml
similarity index 70%
copy from extensions-jvm/pom.xml
copy to extensions-support/debezium/pom.xml
index 396840f..cfc4ef5 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-support/debezium/pom.xml
@@ -18,26 +18,20 @@
 
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-parent</artifactId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
         <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-extensions-jvm</artifactId>
+    <artifactId>camel-quarkus-support-debezium-parent</artifactId>
+    <name>Camel Quarkus :: Support :: Debezium</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions JVM</name>
-    <description>Autogenerated extensions not yet tested in the native mode</description>
-
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>cassandraql</module>
-        <module>couchbase</module>
-        <module>couchdb</module>
-        <module>elasticsearch-rest</module>
+        <module>deployment</module>
+        <module>runtime</module>
     </modules>
-
 </project>
diff --git a/extensions-support/debezium/runtime/pom.xml b/extensions-support/debezium/runtime/pom.xml
new file mode 100644
index 0000000..cde95af
--- /dev/null
+++ b/extensions-support/debezium/runtime/pom.xml
@@ -0,0 +1,90 @@
+<?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-support-debezium-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-support-debezium</artifactId>
+    <name>Camel Quarkus :: Support :: Debezium :: Runtime</name>
+
+    <properties>
+        <firstVersion>1.0.0-M6</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>io.quarkus</groupId>
+            <artifactId>quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-debezium-common</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.javassist</groupId>
+                    <artifactId>javassist</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-support/debezium/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/debezium/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..df8cbb7
--- /dev/null
+++ b/extensions-support/debezium/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,27 @@
+#
+# 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.
+#
+
+---
+name: "Camel Quarkus Support Debezium"
+description: "Camel Quarkus Support Debezium"
+metadata:
+  unlisted: true
+  keywords:
+  - "camel"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+  - "integration"
diff --git a/extensions-support/pom.xml b/extensions-support/pom.xml
index e6fc68f..bb88ef0 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/pom.xml
@@ -38,6 +38,7 @@
         <module>common</module>
         <module>commons-logging</module>
         <module>consul-client</module>
+        <module>debezium</module>
         <module>google-http-client</module>
         <module>httpclient</module>
         <module>jackson-dataformat-xml</module>
diff --git a/pom.xml b/pom.xml
index 29f2a19..3439c3c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,7 @@
         <hapi.version>4.1.0</hapi.version>
         <quarkus.version>1.3.0.Final</quarkus.version>
         <httpmime.version>4.1.3</httpmime.version>
+        <javassist.version>3.22.0-CR2</javassist.version><!-- debezium -->
         <jackson.version>2.10.2</jackson.version>
         <jetty.version>9.4.18.v20190429</jetty.version>
         <xstream.version>1.4.11</xstream.version>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index b4205e3..41fca4f 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -226,6 +226,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-mongodb-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-direct-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -546,6 +551,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-debezium-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-google-http-client-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 1bf7340..f8117c6 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -47,6 +47,13 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-bom</artifactId>
+                <version>${jetty.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
 
             <!-- Dependencies a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
 
@@ -259,6 +266,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-debezium-common</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-debezium-mongodb</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-direct</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -922,6 +939,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-debezium-mongodb</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-direct</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -1252,6 +1274,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-debezium</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-google-http-client</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -1471,24 +1498,9 @@
                 <version>${stax2.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-client</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-io</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-util</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-util-ajax</artifactId>
-                <version>${jetty.version}</version>
+                <groupId>org.javassist</groupId>
+                <artifactId>javassist</artifactId>
+                <version>${javassist.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.jetbrains.kotlin</groupId>