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/20 10:58:55 UTC

[camel-quarkus] branch master updated (8af5644 -> b525a2f)

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 8af5644  Fix lingering reference to Maven 3.5.3
     new f1104a0  Fix #931 PubNub support (JVM only)
     new b525a2f  Fix #675 RabbitMQ support (JVM only)

The 2 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    | 10 ++++++++-
 extensions-jvm/pom.xml                             |  2 ++
 extensions-jvm/{kudu => pubnub}/deployment/pom.xml |  8 +++----
 .../pubnub/deployment/PubnubProcessor.java         |  6 +++---
 .../{kudu => pubnub}/integration-test/pom.xml      | 12 +++++------
 .../component/pubnub/it/PubnubResource.java}       | 20 ++++++++---------
 .../quarkus/component/pubnub/it/PubnubTest.java}   |  8 +++----
 extensions-jvm/{kudu => pubnub}/pom.xml            |  4 ++--
 .../{mongodb-gridfs => pubnub}/runtime/pom.xml     | 10 ++++-----
 .../main/resources/META-INF/quarkus-extension.yaml |  9 ++++----
 .../{couchdb => rabbitmq}/deployment/pom.xml       |  8 +++----
 .../rabbitmq/deployment/RabbitmqProcessor.java}    |  6 +++---
 .../integration-test/pom.xml                       | 12 +++++------
 .../component/rabbitmq/it/RabbitmqResource.java}   | 20 ++++++++---------
 .../component/rabbitmq/it/RabbitmqTest.java}       |  8 +++----
 extensions-jvm/{kudu => rabbitmq}/pom.xml          |  4 ++--
 .../{nitrite => rabbitmq}/runtime/pom.xml          | 10 ++++-----
 .../main/resources/META-INF/quarkus-extension.yaml |  8 +++----
 poms/bom-deployment/pom.xml                        | 10 +++++++++
 poms/bom/pom.xml                                   | 25 ++++++++++++++++++++++
 20 files changed, 123 insertions(+), 77 deletions(-)
 copy extensions-jvm/{kudu => pubnub}/deployment/pom.xml (91%)
 copy extensions/ahc/deployment/src/main/java/org/apache/camel/quarkus/component/ahc/deployment/AhcProcessor.java => extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java (87%)
 copy extensions-jvm/{kudu => pubnub}/integration-test/pom.xml (86%)
 copy extensions-jvm/{kudu/integration-test/src/main/java/org/apache/camel/quarkus/component/kudu/it/KuduResource.java => pubnub/integration-test/src/main/java/org/apache/camel/quarkus/component/pubnub/it/PubnubResource.java} (72%)
 copy extensions-jvm/{kudu/integration-test/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java => pubnub/integration-test/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubTest.java} (86%)
 copy extensions-jvm/{kudu => pubnub}/pom.xml (94%)
 copy extensions-jvm/{mongodb-gridfs => pubnub}/runtime/pom.xml (89%)
 copy extensions-jvm/{openstack => pubnub}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (80%)
 copy extensions-jvm/{couchdb => rabbitmq}/deployment/pom.xml (91%)
 copy extensions-jvm/{influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java => rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java} (87%)
 copy extensions-jvm/{influxdb => rabbitmq}/integration-test/pom.xml (89%)
 copy extensions-jvm/{influxdb/integration-test/src/main/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbResource.java => rabbitmq/integration-test/src/main/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqResource.java} (74%)
 copy extensions-jvm/{cassandraql/integration-test/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlTest.java => rabbitmq/integration-test/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqTest.java} (85%)
 copy extensions-jvm/{kudu => rabbitmq}/pom.xml (93%)
 copy extensions-jvm/{nitrite => rabbitmq}/runtime/pom.xml (89%)
 copy extensions-jvm/{influxdb => rabbitmq}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (81%)


[camel-quarkus] 01/02: Fix #931 PubNub 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 f1104a00b494aa35111c7121538be15dd1f6a115
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Fri Mar 20 10:04:26 2020 +0100

    Fix #931 PubNub support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/pom.xml                             |  1 +
 extensions-jvm/pubnub/deployment/pom.xml           | 75 +++++++++++++++++++
 .../pubnub/deployment/PubnubProcessor.java         | 31 ++++++++
 extensions-jvm/pubnub/integration-test/pom.xml     | 82 +++++++++++++++++++++
 .../component/pubnub/it/PubnubResource.java        | 51 +++++++++++++
 .../quarkus/component/pubnub/it/PubnubTest.java    | 34 +++++++++
 extensions-jvm/{ => pubnub}/pom.xml                | 32 +++------
 extensions-jvm/pubnub/runtime/pom.xml              | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 30 ++++++++
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 15 ++++
 12 files changed, 422 insertions(+), 23 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 ab8c423..a91e7c3 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: 101 in 83 JAR artifacts (0 deprecated)
+Number of Camel components: 102 in 84 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -333,6 +333,10 @@ Level | Since | Description
 `platform-http:path` | Native +
  Stable | 0.3.0 | HTTP service leveraging existing runtime platform HTTP server
 
+| link:https://camel.apache.org/components/latest/pubnub-component.html[PubNub] (camel-quarkus-pubnub) +
+`pubnub:channel` | JVM +
+ Preview | 1.0.0-M6 | To send and receive messages to PubNub data stream network for connected devices.
+
 | link:https://camel.apache.org/components/latest/reactive-streams-component.html[Reactive Streams] (camel-quarkus-reactive-streams) +
 `reactive-streams:stream` | Native +
  Stable | 1.0.0-M3 | Reactive Camel using reactive streams
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index ac19103..4a2e12c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -47,6 +47,7 @@
         <module>mongodb-gridfs</module>
         <module>nitrite</module>
         <module>openstack</module>
+        <module>pubnub</module>
     </modules>
 
 </project>
diff --git a/extensions-jvm/pubnub/deployment/pom.xml b/extensions-jvm/pubnub/deployment/pom.xml
new file mode 100644
index 0000000..5017c34
--- /dev/null
+++ b/extensions-jvm/pubnub/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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-pubnub-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-pubnub-deployment</artifactId>
+    <name>Camel Quarkus :: PubNub :: 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-pubnub</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/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java b/extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.java
new file mode 100644
index 0000000..6a43482
--- /dev/null
+++ b/extensions-jvm/pubnub/deployment/src/main/java/org/apache/camel/quarkus/component/pubnub/deployment/PubnubProcessor.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.pubnub.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class PubnubProcessor {
+
+    private static final String FEATURE = "camel-pubnub";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/pubnub/integration-test/pom.xml b/extensions-jvm/pubnub/integration-test/pom.xml
new file mode 100644
index 0000000..4b5f7d9
--- /dev/null
+++ b/extensions-jvm/pubnub/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-pubnub-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-pubnub-integration-test</artifactId>
+    <name>Camel Quarkus :: PubNub :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus PubNub 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-pubnub-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-pubnub</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/pubnub/integration-test/src/main/java/org/apache/camel/quarkus/component/pubnub/it/PubnubResource.java b/extensions-jvm/pubnub/integration-test/src/main/java/org/apache/camel/quarkus/component/pubnub/it/PubnubResource.java
new file mode 100644
index 0000000..e1ed7de
--- /dev/null
+++ b/extensions-jvm/pubnub/integration-test/src/main/java/org/apache/camel/quarkus/component/pubnub/it/PubnubResource.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.pubnub.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("/pubnub")
+@ApplicationScoped
+public class PubnubResource {
+
+    private static final Logger LOG = Logger.getLogger(PubnubResource.class);
+
+    private static final String COMPONENT_PUBNUB = "pubnub";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/pubnub")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentPubnub() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_PUBNUB) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_PUBNUB);
+        return Response.status(500, COMPONENT_PUBNUB + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/pubnub/integration-test/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubTest.java b/extensions-jvm/pubnub/integration-test/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubTest.java
new file mode 100644
index 0000000..dc4bfbf
--- /dev/null
+++ b/extensions-jvm/pubnub/integration-test/src/test/java/org/apache/camel/quarkus/component/pubnub/it/PubnubTest.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.pubnub.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class PubnubTest {
+
+    @Test
+    public void loadComponentPubnub() {
+        /* A simple autogenerated test */
+        RestAssured.get("/pubnub/load/component/pubnub")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pubnub/pom.xml
similarity index 50%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/pubnub/pom.xml
index ac19103..fff1eb4 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pubnub/pom.xml
@@ -17,36 +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-pubnub-parent</artifactId>
+    <name>Camel Quarkus :: PubNub</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>debezium-sqlserver</module>
-        <module>elasticsearch-rest</module>
-        <module>influxdb</module>
-        <module>kudu</module>
-        <module>mongodb-gridfs</module>
-        <module>nitrite</module>
-        <module>openstack</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/pubnub/runtime/pom.xml b/extensions-jvm/pubnub/runtime/pom.xml
new file mode 100644
index 0000000..ef8d82f
--- /dev/null
+++ b/extensions-jvm/pubnub/runtime/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-pubnub-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-pubnub</artifactId>
+    <name>Camel Quarkus :: PubNub :: Runtime</name>
+    <description>To send and receive messages to PubNub data stream network for connected devices.</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</groupId>
+            <artifactId>camel-pubnub</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/pubnub/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/pubnub/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..4e54162
--- /dev/null
+++ b/extensions-jvm/pubnub/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: "PubNub"
+description: "To send and receive messages to PubNub data stream network for connected devices."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "iot"
+  - "messaging"
+  guide: "https://camel.apache.org/components/latest/pubnub-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index f481fe8..91937c7 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -494,6 +494,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-pubnub-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-qute-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 71f93a2..a6b3c88 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -642,6 +642,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-pubnub</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-reactive-executor-vertx</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1250,6 +1255,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-pubnub</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-qute</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -1511,6 +1521,11 @@
                 <version>${jackson.version}</version>
             </dependency>
             <dependency>
+                <groupId>com.google.code.gson</groupId>
+                <artifactId>gson</artifactId>
+                <version>${gson.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>com.google.guava</groupId>
                 <artifactId>guava</artifactId>
                 <version>${guava.version}</version>


[camel-quarkus] 02/02: Fix #675 RabbitMQ 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 b525a2faacd519d0279377c82c57c044ad70c619
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Fri Mar 20 10:10:02 2020 +0100

    Fix #675 RabbitMQ support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/pom.xml                             |  1 +
 extensions-jvm/rabbitmq/deployment/pom.xml         | 75 +++++++++++++++++++
 .../rabbitmq/deployment/RabbitmqProcessor.java     | 31 ++++++++
 extensions-jvm/rabbitmq/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/rabbitmq/it/RabbitmqResource.java    | 51 +++++++++++++
 .../component/rabbitmq/it/RabbitmqTest.java        | 34 +++++++++
 extensions-jvm/rabbitmq/pom.xml                    | 40 +++++++++++
 extensions-jvm/rabbitmq/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 28 ++++++++
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 445 insertions(+), 1 deletion(-)

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 a91e7c3..e2cbe34 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: 102 in 84 JAR artifacts (0 deprecated)
+Number of Camel components: 103 in 85 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -337,6 +337,10 @@ Level | Since | Description
 `pubnub:channel` | JVM +
  Preview | 1.0.0-M6 | To send and receive messages to PubNub data stream network for connected devices.
 
+| link:https://camel.apache.org/components/latest/rabbitmq-component.html[RabbitMQ] (camel-quarkus-rabbitmq) +
+`rabbitmq:exchangeName` | JVM +
+ Preview | 1.0.0-M6 | The rabbitmq component allows you produce and consume messages from RabbitMQ instances.
+
 | link:https://camel.apache.org/components/latest/reactive-streams-component.html[Reactive Streams] (camel-quarkus-reactive-streams) +
 `reactive-streams:stream` | Native +
  Stable | 1.0.0-M3 | Reactive Camel using reactive streams
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 4a2e12c..77b8a2c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -48,6 +48,7 @@
         <module>nitrite</module>
         <module>openstack</module>
         <module>pubnub</module>
+        <module>rabbitmq</module>
     </modules>
 
 </project>
diff --git a/extensions-jvm/rabbitmq/deployment/pom.xml b/extensions-jvm/rabbitmq/deployment/pom.xml
new file mode 100644
index 0000000..430eb5e
--- /dev/null
+++ b/extensions-jvm/rabbitmq/deployment/pom.xml
@@ -0,0 +1,75 @@
+<?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-rabbitmq-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-rabbitmq-deployment</artifactId>
+    <name>Camel Quarkus :: RabbitMQ :: 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-rabbitmq</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/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java b/extensions-jvm/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.java
new file mode 100644
index 0000000..3a4e54a
--- /dev/null
+++ b/extensions-jvm/rabbitmq/deployment/src/main/java/org/apache/camel/quarkus/component/rabbitmq/deployment/RabbitmqProcessor.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.rabbitmq.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class RabbitmqProcessor {
+
+    private static final String FEATURE = "camel-rabbitmq";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/rabbitmq/integration-test/pom.xml b/extensions-jvm/rabbitmq/integration-test/pom.xml
new file mode 100644
index 0000000..142f042
--- /dev/null
+++ b/extensions-jvm/rabbitmq/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-rabbitmq-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-rabbitmq-integration-test</artifactId>
+    <name>Camel Quarkus :: RabbitMQ :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus RabbitMQ 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-rabbitmq-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-rabbitmq</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/rabbitmq/integration-test/src/main/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqResource.java b/extensions-jvm/rabbitmq/integration-test/src/main/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqResource.java
new file mode 100644
index 0000000..610d9b0
--- /dev/null
+++ b/extensions-jvm/rabbitmq/integration-test/src/main/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqResource.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.rabbitmq.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("/rabbitmq")
+@ApplicationScoped
+public class RabbitmqResource {
+
+    private static final Logger LOG = Logger.getLogger(RabbitmqResource.class);
+
+    private static final String COMPONENT_RABBITMQ = "rabbitmq";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/rabbitmq")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentRabbitmq() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_RABBITMQ) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_RABBITMQ);
+        return Response.status(500, COMPONENT_RABBITMQ + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/rabbitmq/integration-test/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqTest.java b/extensions-jvm/rabbitmq/integration-test/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqTest.java
new file mode 100644
index 0000000..35ed6d4
--- /dev/null
+++ b/extensions-jvm/rabbitmq/integration-test/src/test/java/org/apache/camel/quarkus/component/rabbitmq/it/RabbitmqTest.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.rabbitmq.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class RabbitmqTest {
+
+    @Test
+    public void loadComponentRabbitmq() {
+        /* A simple autogenerated test */
+        RestAssured.get("/rabbitmq/load/component/rabbitmq")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/rabbitmq/pom.xml b/extensions-jvm/rabbitmq/pom.xml
new file mode 100644
index 0000000..3e5dbd1
--- /dev/null
+++ b/extensions-jvm/rabbitmq/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-rabbitmq-parent</artifactId>
+    <name>Camel Quarkus :: RabbitMQ</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/rabbitmq/runtime/pom.xml b/extensions-jvm/rabbitmq/runtime/pom.xml
new file mode 100644
index 0000000..3651809
--- /dev/null
+++ b/extensions-jvm/rabbitmq/runtime/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-rabbitmq-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-rabbitmq</artifactId>
+    <name>Camel Quarkus :: RabbitMQ :: Runtime</name>
+    <description>The rabbitmq component allows you produce and consume messages from RabbitMQ instances.</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</groupId>
+            <artifactId>camel-rabbitmq</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/rabbitmq/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/rabbitmq/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..d6076eb
--- /dev/null
+++ b/extensions-jvm/rabbitmq/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "RabbitMQ"
+description: "The rabbitmq component allows you produce and consume messages from RabbitMQ instances."
+metadata:
+  unlisted: true
+  keywords:
+  - "messaging"
+  guide: "https://camel.apache.org/components/latest/rabbitmq-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 91937c7..f73d8cd 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -504,6 +504,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-rabbitmq-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-reactive-executor-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index a6b3c88..06cabb8 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -647,6 +647,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-rabbitmq</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-reactive-executor-vertx</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1270,6 +1275,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-rabbitmq</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-reactive-executor</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>