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 07:35:38 UTC

[camel-quarkus] branch master updated (01d63dc -> 71e6e72)

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 01d63dc  Merge pull request #923 from djcoleman/patch-1
     new 5badb3f  Fix #925 InfluxDB support (JVM only)
     new efdc75d  Fix #926 Kudu support (JVM only)
     new e6a360c  Fix #927 MongoDB GridFS support (JVM only)
     new 71e6e72  Fix #928 Nitrite 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 +++++++++-
 .../{couchdb => influxdb}/deployment/pom.xml       |  8 ++---
 .../influxdb/deployment/InfluxdbProcessor.java     |  6 ++--
 .../{couchdb => influxdb}/integration-test/pom.xml | 12 +++----
 .../component/influxdb/it/InfluxdbResource.java}   | 20 +++++------
 .../component/influxdb/it/InfluxdbTest.java}       |  8 ++---
 extensions-jvm/{couchdb => influxdb}/pom.xml       |  4 +--
 .../{couchdb => influxdb}/runtime/pom.xml          | 10 +++---
 .../main/resources/META-INF/quarkus-extension.yaml |  7 ++--
 .../{couchdb => kudu}/deployment/pom.xml           |  8 ++---
 .../component/kudu/deployment/KuduProcessor.java   |  6 ++--
 .../{couchdb => kudu}/integration-test/pom.xml     | 12 +++----
 .../quarkus/component/kudu/it/KuduResource.java}   | 20 +++++------
 .../camel/quarkus/component/kudu/it/KuduTest.java} |  8 ++---
 extensions-jvm/{couchdb => kudu}/pom.xml           |  4 +--
 .../{elasticsearch-rest => kudu}/runtime/pom.xml   | 10 +++---
 .../main/resources/META-INF/quarkus-extension.yaml |  9 ++---
 .../deployment/pom.xml                             |  8 ++---
 .../gridfs/deployment/MongodbGridfsProcessor.java} |  6 ++--
 .../integration-test/pom.xml                       | 12 +++----
 .../mongodb/gridfs/it/MongodbGridfsResource.java}  | 20 +++++------
 .../mongodb/gridfs/it/MongodbGridfsTest.java}      |  8 ++---
 extensions-jvm/{couchdb => mongodb-gridfs}/pom.xml |  4 +--
 .../{couchdb => mongodb-gridfs}/runtime/pom.xml    | 10 +++---
 .../main/resources/META-INF/quarkus-extension.yaml |  6 ++--
 .../{couchdb => nitrite}/deployment/pom.xml        |  8 ++---
 .../nitrite/deployment/NitriteProcessor.java       |  6 ++--
 .../{couchdb => nitrite}/integration-test/pom.xml  | 12 +++----
 .../component/nitrite/it/NitriteResource.java}     | 20 +++++------
 .../quarkus/component/nitrite/it/NitriteTest.java} |  8 ++---
 extensions-jvm/{couchdb => nitrite}/pom.xml        |  4 +--
 .../{couchdb => nitrite}/runtime/pom.xml           | 10 +++---
 .../main/resources/META-INF/quarkus-extension.yaml |  6 ++--
 extensions-jvm/pom.xml                             |  4 +++
 poms/bom-deployment/pom.xml                        | 20 +++++++++++
 poms/bom/pom.xml                                   | 40 ++++++++++++++++++++++
 36 files changed, 231 insertions(+), 151 deletions(-)
 copy extensions-jvm/{couchdb => influxdb}/deployment/pom.xml (91%)
 copy extensions/ahc-ws/deployment/src/main/java/org/apache/camel/quarkus/component/ahc/ws/deployment/AhcWsProcessor.java => extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java (87%)
 copy extensions-jvm/{couchdb => influxdb}/integration-test/pom.xml (86%)
 copy extensions-jvm/{cassandraql/integration-test/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlResource.java => influxdb/integration-test/src/main/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbResource.java} (71%)
 copy extensions-jvm/{cassandraql/integration-test/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlTest.java => influxdb/integration-test/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java} (85%)
 copy extensions-jvm/{couchdb => influxdb}/pom.xml (93%)
 copy extensions-jvm/{couchdb => influxdb}/runtime/pom.xml (89%)
 copy extensions-jvm/{couchdb => influxdb}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (82%)
 copy extensions-jvm/{couchdb => kudu}/deployment/pom.xml (91%)
 copy extensions/csv/deployment/src/main/java/org/apache/camel/quarkus/component/csv/deployment/CsvProcessor.java => extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java (88%)
 copy extensions-jvm/{couchdb => kudu}/integration-test/pom.xml (86%)
 copy extensions-jvm/{cassandraql/integration-test/src/main/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlResource.java => kudu/integration-test/src/main/java/org/apache/camel/quarkus/component/kudu/it/KuduResource.java} (72%)
 copy extensions-jvm/{couchdb/integration-test/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTest.java => kudu/integration-test/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java} (85%)
 copy extensions-jvm/{couchdb => kudu}/pom.xml (93%)
 copy extensions-jvm/{elasticsearch-rest => kudu}/runtime/pom.xml (87%)
 copy extensions-jvm/{cassandraql => kudu}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (75%)
 copy extensions-jvm/{cassandraql => mongodb-gridfs}/deployment/pom.xml (90%)
 copy extensions-jvm/{debezium-mysql/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/deployment/DebeziumMysqlProcessor.java => mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java} (86%)
 copy extensions-jvm/{debezium-mysql => mongodb-gridfs}/integration-test/pom.xml (87%)
 copy extensions-jvm/{debezium-mysql/integration-test/src/main/java/org/apache/camel/quarkus/component/debezium/mysql/it/DebeziumMysqlResource.java => mongodb-gridfs/integration-test/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsResource.java} (72%)
 copy extensions-jvm/{cassandraql/integration-test/src/test/java/org/apache/camel/quarkus/component/cassandraql/it/CassandraqlTest.java => mongodb-gridfs/integration-test/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsTest.java} (83%)
 copy extensions-jvm/{couchdb => mongodb-gridfs}/pom.xml (93%)
 copy extensions-jvm/{couchdb => mongodb-gridfs}/runtime/pom.xml (90%)
 copy extensions-jvm/{couchdb => mongodb-gridfs}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (83%)
 copy extensions-jvm/{couchdb => nitrite}/deployment/pom.xml (91%)
 copy extensions/ahc-ws/deployment/src/main/java/org/apache/camel/quarkus/component/ahc/ws/deployment/AhcWsProcessor.java => extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java (87%)
 copy extensions-jvm/{couchdb => nitrite}/integration-test/pom.xml (89%)
 copy extensions-jvm/{couchdb/integration-test/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbResource.java => nitrite/integration-test/src/main/java/org/apache/camel/quarkus/component/nitrite/it/NitriteResource.java} (75%)
 copy extensions-jvm/{couchdb/integration-test/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTest.java => nitrite/integration-test/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteTest.java} (85%)
 copy extensions-jvm/{couchdb => nitrite}/pom.xml (93%)
 copy extensions-jvm/{couchdb => nitrite}/runtime/pom.xml (90%)
 copy extensions-jvm/{couchdb => nitrite}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (84%)


[camel-quarkus] 04/04: Fix #928 Nitrite 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 71e6e7223673811f52975b99a2e9ceaf05527ccd
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 23:26:02 2020 +0100

    Fix #928 Nitrite support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/nitrite/deployment/pom.xml          | 75 +++++++++++++++++++
 .../nitrite/deployment/NitriteProcessor.java       | 31 ++++++++
 extensions-jvm/nitrite/integration-test/pom.xml    | 82 +++++++++++++++++++++
 .../component/nitrite/it/NitriteResource.java      | 51 +++++++++++++
 .../quarkus/component/nitrite/it/NitriteTest.java  | 34 +++++++++
 extensions-jvm/{ => nitrite}/pom.xml               | 30 +++-----
 extensions-jvm/nitrite/runtime/pom.xml             | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 416 insertions(+), 21 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 873152f..611ba0d 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: 94 in 81 JAR artifacts (0 deprecated)
+Number of Camel components: 95 in 82 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -289,6 +289,10 @@ Level | Since | Description
 `netty-http:protocol:host:port/path` | Native +
  Stable | 0.2.0 | Netty HTTP server and client using the Netty 4.x library.
 
+| link:https://camel.apache.org/components/latest/nitrite-component.html[Nitrite] (camel-quarkus-nitrite) +
+`nitrite:database` | JVM +
+ Preview | 1.0.0-M6 | Used for integrating Camel with Nitrite databases.
+
 | link:https://camel.apache.org/components/latest/olingo4-component.html[Olingo4] (camel-quarkus-olingo4) +
 `olingo4:apiName/methodName` | Native +
  Stable | 1.0.0-M4 | Communicates with OData 4.0 services using Apache Olingo OData API.
diff --git a/extensions-jvm/nitrite/deployment/pom.xml b/extensions-jvm/nitrite/deployment/pom.xml
new file mode 100644
index 0000000..1609bed
--- /dev/null
+++ b/extensions-jvm/nitrite/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-nitrite-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-nitrite-deployment</artifactId>
+    <name>Camel Quarkus :: Nitrite :: 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-nitrite</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/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java b/extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.java
new file mode 100644
index 0000000..3c0aa21
--- /dev/null
+++ b/extensions-jvm/nitrite/deployment/src/main/java/org/apache/camel/quarkus/component/nitrite/deployment/NitriteProcessor.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.nitrite.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class NitriteProcessor {
+
+    private static final String FEATURE = "camel-nitrite";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/nitrite/integration-test/pom.xml b/extensions-jvm/nitrite/integration-test/pom.xml
new file mode 100644
index 0000000..6c5b1fc
--- /dev/null
+++ b/extensions-jvm/nitrite/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-nitrite-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-nitrite-integration-test</artifactId>
+    <name>Camel Quarkus :: Nitrite :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Nitrite 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-nitrite-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-nitrite</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/nitrite/integration-test/src/main/java/org/apache/camel/quarkus/component/nitrite/it/NitriteResource.java b/extensions-jvm/nitrite/integration-test/src/main/java/org/apache/camel/quarkus/component/nitrite/it/NitriteResource.java
new file mode 100644
index 0000000..044594e
--- /dev/null
+++ b/extensions-jvm/nitrite/integration-test/src/main/java/org/apache/camel/quarkus/component/nitrite/it/NitriteResource.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.nitrite.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("/nitrite")
+@ApplicationScoped
+public class NitriteResource {
+
+    private static final Logger LOG = Logger.getLogger(NitriteResource.class);
+
+    private static final String COMPONENT_NITRITE = "nitrite";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/nitrite")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentNitrite() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_NITRITE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_NITRITE);
+        return Response.status(500, COMPONENT_NITRITE + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/nitrite/integration-test/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteTest.java b/extensions-jvm/nitrite/integration-test/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteTest.java
new file mode 100644
index 0000000..9d00557
--- /dev/null
+++ b/extensions-jvm/nitrite/integration-test/src/test/java/org/apache/camel/quarkus/component/nitrite/it/NitriteTest.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.nitrite.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class NitriteTest {
+
+    @Test
+    public void loadComponentNitrite() {
+        /* A simple autogenerated test */
+        RestAssured.get("/nitrite/load/component/nitrite")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/nitrite/pom.xml
similarity index 51%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/nitrite/pom.xml
index 40c95f2..ace1545 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/nitrite/pom.xml
@@ -17,34 +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-nitrite-parent</artifactId>
+    <name>Camel Quarkus :: Nitrite</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>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/nitrite/runtime/pom.xml b/extensions-jvm/nitrite/runtime/pom.xml
new file mode 100644
index 0000000..4745cf9
--- /dev/null
+++ b/extensions-jvm/nitrite/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-nitrite-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-nitrite</artifactId>
+    <name>Camel Quarkus :: Nitrite :: Runtime</name>
+    <description>Used for integrating Camel with Nitrite databases.</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-nitrite</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/nitrite/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/nitrite/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..789bf12
--- /dev/null
+++ b/extensions-jvm/nitrite/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -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.
+#
+
+---
+name: "Nitrite"
+description: "Used for integrating Camel with Nitrite databases."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  - "nosql"
+  guide: "https://camel.apache.org/components/latest/nitrite-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 40c95f2..da04d59 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -45,6 +45,7 @@
         <module>influxdb</module>
         <module>kudu</module>
         <module>mongodb-gridfs</module>
+        <module>nitrite</module>
     </modules>
 
 </project>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index d47f454..683cbc0 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -459,6 +459,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-nitrite-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-olingo4-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 587b85d..1b881fd 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -595,6 +595,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-nitrite</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-olingo4</artifactId>
                 <version>${camel.version}</version>
                 <exclusions>
@@ -1199,6 +1204,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-nitrite</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-olingo4</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/04: Fix #926 Kudu 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 efdc75d06977c2c87e0da4a0890acce5e0f50e99
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 23:14:42 2020 +0100

    Fix #926 Kudu support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/kudu/deployment/pom.xml             | 75 +++++++++++++++++++
 .../component/kudu/deployment/KuduProcessor.java   | 31 ++++++++
 extensions-jvm/kudu/integration-test/pom.xml       | 82 +++++++++++++++++++++
 .../quarkus/component/kudu/it/KuduResource.java    | 51 +++++++++++++
 .../camel/quarkus/component/kudu/it/KuduTest.java  | 34 +++++++++
 extensions-jvm/{ => kudu}/pom.xml                  | 28 +++-----
 extensions-jvm/kudu/runtime/pom.xml                | 83 ++++++++++++++++++++++
 .../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, 417 insertions(+), 19 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 64ef673..4223a4e 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: 92 in 79 JAR artifacts (0 deprecated)
+Number of Camel components: 93 in 80 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -253,6 +253,10 @@ Level | Since | Description
 `kafka:topic` | Native +
  Stable | 1.0.0-M1 | The kafka component allows messages to be sent to (or consumed from) Apache Kafka brokers.
 
+| link:https://camel.apache.org/components/latest/kudu-component.html[Kudu] (camel-quarkus-kudu) +
+`kudu:host:port/tableName` | JVM +
+ Preview | 1.0.0-M6 | Represents a Kudu endpoint. A kudu endpoint allows you to interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem.
+
 | link:https://camel.apache.org/components/latest/log-component.html[Log] (camel-quarkus-log) +
 `log:loggerName` | Native +
  Stable | 0.2.0 | The log component logs message exchanges to the underlying logging mechanism.
diff --git a/extensions-jvm/kudu/deployment/pom.xml b/extensions-jvm/kudu/deployment/pom.xml
new file mode 100644
index 0000000..4ff8fd4
--- /dev/null
+++ b/extensions-jvm/kudu/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-kudu-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-kudu-deployment</artifactId>
+    <name>Camel Quarkus :: Kudu :: 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-kudu</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/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java b/extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.java
new file mode 100644
index 0000000..831b9ca
--- /dev/null
+++ b/extensions-jvm/kudu/deployment/src/main/java/org/apache/camel/quarkus/component/kudu/deployment/KuduProcessor.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.kudu.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class KuduProcessor {
+
+    private static final String FEATURE = "camel-kudu";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/kudu/integration-test/pom.xml b/extensions-jvm/kudu/integration-test/pom.xml
new file mode 100644
index 0000000..2d67cc9
--- /dev/null
+++ b/extensions-jvm/kudu/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-kudu-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-kudu-integration-test</artifactId>
+    <name>Camel Quarkus :: Kudu :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Kudu 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-kudu-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-kudu</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/kudu/integration-test/src/main/java/org/apache/camel/quarkus/component/kudu/it/KuduResource.java b/extensions-jvm/kudu/integration-test/src/main/java/org/apache/camel/quarkus/component/kudu/it/KuduResource.java
new file mode 100644
index 0000000..f07dfdb
--- /dev/null
+++ b/extensions-jvm/kudu/integration-test/src/main/java/org/apache/camel/quarkus/component/kudu/it/KuduResource.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.kudu.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("/kudu")
+@ApplicationScoped
+public class KuduResource {
+
+    private static final Logger LOG = Logger.getLogger(KuduResource.class);
+
+    private static final String COMPONENT_KUDU = "kudu";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/kudu")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentKudu() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_KUDU) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_KUDU);
+        return Response.status(500, COMPONENT_KUDU + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/kudu/integration-test/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java b/extensions-jvm/kudu/integration-test/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.java
new file mode 100644
index 0000000..c0cb41e
--- /dev/null
+++ b/extensions-jvm/kudu/integration-test/src/test/java/org/apache/camel/quarkus/component/kudu/it/KuduTest.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.kudu.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class KuduTest {
+
+    @Test
+    public void loadComponentKudu() {
+        /* A simple autogenerated test */
+        RestAssured.get("/kudu/load/component/kudu")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/kudu/pom.xml
similarity index 53%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/kudu/pom.xml
index 8a4b5ab..7e7bd98 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/kudu/pom.xml
@@ -17,32 +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-kudu-parent</artifactId>
+    <name>Camel Quarkus :: Kudu</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>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/kudu/runtime/pom.xml b/extensions-jvm/kudu/runtime/pom.xml
new file mode 100644
index 0000000..54c4e5b
--- /dev/null
+++ b/extensions-jvm/kudu/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-kudu-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-kudu</artifactId>
+    <name>Camel Quarkus :: Kudu :: Runtime</name>
+    <description>Represents a Kudu endpoint. A kudu endpoint allows you to interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem.</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-kudu</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/kudu/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/kudu/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..0d556d2
--- /dev/null
+++ b/extensions-jvm/kudu/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: "Kudu"
+description: "Represents a Kudu endpoint. A kudu endpoint allows you to interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "database"
+  - "iot"
+  guide: "https://camel.apache.org/components/latest/kudu-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 8a4b5ab..2bd3ab8 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -43,6 +43,7 @@
         <module>debezium-sqlserver</module>
         <module>elasticsearch-rest</module>
         <module>influxdb</module>
+        <module>kudu</module>
     </modules>
 
 </project>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index a9b083d..ec54beb 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -404,6 +404,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-kudu-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-log-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 25a3387..737eb78 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -506,6 +506,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-kudu</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-log</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1134,6 +1139,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-kudu</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-log</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 03/04: Fix #927 MongoDB GridFS 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 e6a360c72a0907ab620dd8b81458d00692063df7
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 23:21:59 2020 +0100

    Fix #927 MongoDB GridFS support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/mongodb-gridfs/deployment/pom.xml   | 75 +++++++++++++++++++
 .../gridfs/deployment/MongodbGridfsProcessor.java  | 31 ++++++++
 .../mongodb-gridfs/integration-test/pom.xml        | 82 +++++++++++++++++++++
 .../mongodb/gridfs/it/MongodbGridfsResource.java   | 51 +++++++++++++
 .../mongodb/gridfs/it/MongodbGridfsTest.java       | 34 +++++++++
 extensions-jvm/{ => mongodb-gridfs}/pom.xml        | 29 +++-----
 extensions-jvm/mongodb-gridfs/runtime/pom.xml      | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 416 insertions(+), 20 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 4223a4e..873152f 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: 93 in 80 JAR artifacts (0 deprecated)
+Number of Camel components: 94 in 81 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -273,6 +273,10 @@ Level | Since | Description
 `mongodb:connectionBean` | Native +
  Stable | 1.0.0-M1 | Component for working with documents stored in MongoDB database.
 
+| link:https://camel.apache.org/components/latest/mongodb-gridfs-component.html[MongoDB GridFS] (camel-quarkus-mongodb-gridfs) +
+`mongodb-gridfs:connectionBean` | JVM +
+ Preview | 1.0.0-M6 | Component for working with MongoDB GridFS.
+
 | link:https://camel.apache.org/components/latest/mustache-component.html[Mustache] (camel-quarkus-mustache) +
 `mustache:resourceUri` | Native +
  Stable | 1.0.0-M5 | Transforms the message using a Mustache template.
diff --git a/extensions-jvm/mongodb-gridfs/deployment/pom.xml b/extensions-jvm/mongodb-gridfs/deployment/pom.xml
new file mode 100644
index 0000000..986d243
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/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-mongodb-gridfs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mongodb-gridfs-deployment</artifactId>
+    <name>Camel Quarkus :: MongoDB GridFS :: 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-mongodb-gridfs</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/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java b/extensions-jvm/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.java
new file mode 100644
index 0000000..6a33f5c
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/deployment/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/deployment/MongodbGridfsProcessor.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.mongodb.gridfs.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class MongodbGridfsProcessor {
+
+    private static final String FEATURE = "camel-mongodb-gridfs";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/mongodb-gridfs/integration-test/pom.xml b/extensions-jvm/mongodb-gridfs/integration-test/pom.xml
new file mode 100644
index 0000000..da51b5d
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/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-mongodb-gridfs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-mongodb-gridfs-integration-test</artifactId>
+    <name>Camel Quarkus :: MongoDB GridFS :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus MongoDB GridFS 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-mongodb-gridfs-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-mongodb-gridfs</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/mongodb-gridfs/integration-test/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsResource.java b/extensions-jvm/mongodb-gridfs/integration-test/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsResource.java
new file mode 100644
index 0000000..ebce1fa
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/integration-test/src/main/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsResource.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.mongodb.gridfs.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("/mongodb-gridfs")
+@ApplicationScoped
+public class MongodbGridfsResource {
+
+    private static final Logger LOG = Logger.getLogger(MongodbGridfsResource.class);
+
+    private static final String COMPONENT_MONGODB_GRIDFS = "mongodb-gridfs";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/mongodb-gridfs")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentMongodbGridfs() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_MONGODB_GRIDFS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_MONGODB_GRIDFS);
+        return Response.status(500, COMPONENT_MONGODB_GRIDFS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/mongodb-gridfs/integration-test/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsTest.java b/extensions-jvm/mongodb-gridfs/integration-test/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsTest.java
new file mode 100644
index 0000000..3f88415
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/integration-test/src/test/java/org/apache/camel/quarkus/component/mongodb/gridfs/it/MongodbGridfsTest.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.mongodb.gridfs.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class MongodbGridfsTest {
+
+    @Test
+    public void loadComponentMongodbGridfs() {
+        /* A simple autogenerated test */
+        RestAssured.get("/mongodb-gridfs/load/component/mongodb-gridfs")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/mongodb-gridfs/pom.xml
similarity index 52%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/mongodb-gridfs/pom.xml
index 2bd3ab8..2d1e02c 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/mongodb-gridfs/pom.xml
@@ -17,33 +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-mongodb-gridfs-parent</artifactId>
+    <name>Camel Quarkus :: MongoDB GridFS</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>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/mongodb-gridfs/runtime/pom.xml b/extensions-jvm/mongodb-gridfs/runtime/pom.xml
new file mode 100644
index 0000000..cbc59fb
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/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-mongodb-gridfs-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-mongodb-gridfs</artifactId>
+    <name>Camel Quarkus :: MongoDB GridFS :: Runtime</name>
+    <description>Component for working with MongoDB GridFS.</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-mongodb-gridfs</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/mongodb-gridfs/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/mongodb-gridfs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..2f87a25
--- /dev/null
+++ b/extensions-jvm/mongodb-gridfs/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -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.
+#
+
+---
+name: "MongoDB GridFS"
+description: "Component for working with MongoDB GridFS."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  - "nosql"
+  guide: "https://camel.apache.org/components/latest/mongodb-gridfs-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 2bd3ab8..40c95f2 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -44,6 +44,7 @@
         <module>elasticsearch-rest</module>
         <module>influxdb</module>
         <module>kudu</module>
+        <module>mongodb-gridfs</module>
     </modules>
 
 </project>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index ec54beb..d47f454 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -439,6 +439,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-mongodb-gridfs-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-mustache-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 737eb78..587b85d 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -569,6 +569,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-mongodb-gridfs</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-mustache</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1174,6 +1179,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-mongodb-gridfs</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-mustache</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/04: Fix #925 InfluxDB 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 5badb3f9566d09e5aefa5e6d066b223f291b39b3
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Thu Mar 19 23:12:34 2020 +0100

    Fix #925 InfluxDB support (JVM only)
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  6 +-
 extensions-jvm/influxdb/deployment/pom.xml         | 75 +++++++++++++++++++
 .../influxdb/deployment/InfluxdbProcessor.java     | 31 ++++++++
 extensions-jvm/influxdb/integration-test/pom.xml   | 82 +++++++++++++++++++++
 .../component/influxdb/it/InfluxdbResource.java    | 51 +++++++++++++
 .../component/influxdb/it/InfluxdbTest.java        | 34 +++++++++
 extensions-jvm/{ => influxdb}/pom.xml              | 27 +++----
 extensions-jvm/influxdb/runtime/pom.xml            | 83 ++++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 28 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom-deployment/pom.xml                        |  5 ++
 poms/bom/pom.xml                                   | 10 +++
 12 files changed, 415 insertions(+), 18 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 fd2b8fb..64ef673 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: 91 in 78 JAR artifacts (0 deprecated)
+Number of Camel components: 92 in 79 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -229,6 +229,10 @@ Level | Since | Description
 `infinispan:cacheName` | Native +
  Stable | 0.2.0 | For reading/writing from/to Infinispan distributed key/value store and data grid.
 
+| link:https://camel.apache.org/components/latest/influxdb-component.html[InfluxDB] (camel-quarkus-influxdb) +
+`influxdb:connectionBean` | JVM +
+ Preview | 1.0.0-M6 | The influxdb component allows you to interact with InfluxDB, a time series database.
+
 | xref:extensions/websocket-jsr356.adoc[Javax Websocket] (camel-quarkus-websocket-jsr356) +
 `websocket-jsr356:uri` | Native +
  Stable | 1.0.0-M4 | Camel WebSocket using JSR356 (javax)
diff --git a/extensions-jvm/influxdb/deployment/pom.xml b/extensions-jvm/influxdb/deployment/pom.xml
new file mode 100644
index 0000000..8ded0ab
--- /dev/null
+++ b/extensions-jvm/influxdb/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-influxdb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-influxdb-deployment</artifactId>
+    <name>Camel Quarkus :: InfluxDB :: 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-influxdb</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/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java b/extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.java
new file mode 100644
index 0000000..bb359aa
--- /dev/null
+++ b/extensions-jvm/influxdb/deployment/src/main/java/org/apache/camel/quarkus/component/influxdb/deployment/InfluxdbProcessor.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.influxdb.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class InfluxdbProcessor {
+
+    private static final String FEATURE = "camel-influxdb";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/influxdb/integration-test/pom.xml b/extensions-jvm/influxdb/integration-test/pom.xml
new file mode 100644
index 0000000..e50a428
--- /dev/null
+++ b/extensions-jvm/influxdb/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-influxdb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-influxdb-integration-test</artifactId>
+    <name>Camel Quarkus :: InfluxDB :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus InfluxDB 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-influxdb-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-influxdb</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/influxdb/integration-test/src/main/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbResource.java b/extensions-jvm/influxdb/integration-test/src/main/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbResource.java
new file mode 100644
index 0000000..23d07fa
--- /dev/null
+++ b/extensions-jvm/influxdb/integration-test/src/main/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbResource.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.influxdb.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("/influxdb")
+@ApplicationScoped
+public class InfluxdbResource {
+
+    private static final Logger LOG = Logger.getLogger(InfluxdbResource.class);
+
+    private static final String COMPONENT_INFLUXDB = "influxdb";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/influxdb")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentInfluxdb() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_INFLUXDB) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_INFLUXDB);
+        return Response.status(500, COMPONENT_INFLUXDB + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/influxdb/integration-test/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java b/extensions-jvm/influxdb/integration-test/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.java
new file mode 100644
index 0000000..d5b458c
--- /dev/null
+++ b/extensions-jvm/influxdb/integration-test/src/test/java/org/apache/camel/quarkus/component/influxdb/it/InfluxdbTest.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.influxdb.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class InfluxdbTest {
+
+    @Test
+    public void loadComponentInfluxdb() {
+        /* A simple autogenerated test */
+        RestAssured.get("/influxdb/load/component/influxdb")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/influxdb/pom.xml
similarity index 54%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/influxdb/pom.xml
index fce4d6b..5292b02 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/influxdb/pom.xml
@@ -17,31 +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-influxdb-parent</artifactId>
+    <name>Camel Quarkus :: InfluxDB</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>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/influxdb/runtime/pom.xml b/extensions-jvm/influxdb/runtime/pom.xml
new file mode 100644
index 0000000..02587c4
--- /dev/null
+++ b/extensions-jvm/influxdb/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-influxdb-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-influxdb</artifactId>
+    <name>Camel Quarkus :: InfluxDB :: Runtime</name>
+    <description>The influxdb component allows you to interact with InfluxDB, a time series database.</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-influxdb</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/influxdb/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/influxdb/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..d198b0d
--- /dev/null
+++ b/extensions-jvm/influxdb/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: "InfluxDB"
+description: "The influxdb component allows you to interact with InfluxDB, a time series database."
+metadata:
+  unlisted: true
+  keywords:
+  - "database"
+  guide: "https://camel.apache.org/components/latest/influxdb-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index fce4d6b..8a4b5ab 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -42,6 +42,7 @@
         <module>debezium-postgres</module>
         <module>debezium-sqlserver</module>
         <module>elasticsearch-rest</module>
+        <module>influxdb</module>
     </modules>
 
 </project>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 94e0bec..a9b083d 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -354,6 +354,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-influxdb-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jackson-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 28dbadd..25a3387 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -428,6 +428,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-influxdb</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jackson</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1074,6 +1079,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-influxdb</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jackson</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>