You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2020/03/20 09:10:25 UTC

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

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

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


    from 71e6e72  Fix #928 Nitrite support (JVM only)
     new 4f2a14e  OpenStack support (JVM only)
     new 8af5644  Fix lingering reference to Maven 3.5.3

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


Summary of changes:
 docs/modules/ROOT/pages/contributor-guide.adoc     |   2 +-
 .../pages/list-of-camel-quarkus-extensions.adoc    |  26 ++++-
 .../{couchdb => openstack}/deployment/pom.xml      |   8 +-
 .../openstack/deployment/OpenstackProcessor.java   |   6 +-
 .../integration-test/pom.xml                       |  12 +--
 .../component/openstack/it/OpenstackResource.java  | 116 +++++++++++++++++++++
 .../component/openstack/it/OpenstackTest.java      |  74 +++++++++++++
 extensions-jvm/{kudu => openstack}/pom.xml         |   4 +-
 .../{mongodb-gridfs => openstack}/runtime/pom.xml  |  10 +-
 .../main/resources/META-INF/quarkus-extension.yaml |  10 +-
 extensions-jvm/pom.xml                             |   1 +
 poms/bom-deployment/pom.xml                        |   5 +
 poms/bom/pom.xml                                   |  16 +++
 13 files changed, 263 insertions(+), 27 deletions(-)
 copy extensions-jvm/{couchdb => openstack}/deployment/pom.xml (91%)
 copy extensions/scheduler/deployment/src/main/java/org/apache/camel/quarkus/component/scheduler/deployment/SchedulerProcessor.java => extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java (87%)
 copy extensions-jvm/{couchbase => openstack}/integration-test/pom.xml (89%)
 create mode 100644 extensions-jvm/openstack/integration-test/src/main/java/org/apache/camel/quarkus/component/openstack/it/OpenstackResource.java
 create mode 100644 extensions-jvm/openstack/integration-test/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackTest.java
 copy extensions-jvm/{kudu => openstack}/pom.xml (93%)
 copy extensions-jvm/{mongodb-gridfs => openstack}/runtime/pom.xml (89%)
 copy extensions-jvm/{nitrite => openstack}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (81%)


[camel-quarkus] 02/02: Fix lingering reference to Maven 3.5.3

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

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

commit 8af5644b976db1708880e446e049dc6fe90662e1
Author: James Netherton <ja...@gmail.com>
AuthorDate: Fri Mar 20 07:48:55 2020 +0000

    Fix lingering reference to Maven 3.5.3
---
 docs/modules/ROOT/pages/contributor-guide.adoc    | 2 +-
 extensions-jvm/openstack/integration-test/pom.xml | 2 +-
 extensions-jvm/openstack/runtime/pom.xml          | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/modules/ROOT/pages/contributor-guide.adoc b/docs/modules/ROOT/pages/contributor-guide.adoc
index 8e61d00..b8051c0 100644
--- a/docs/modules/ROOT/pages/contributor-guide.adoc
+++ b/docs/modules/ROOT/pages/contributor-guide.adoc
@@ -11,7 +11,7 @@
 * If your are on Linux, `docker` is sufficient for the native mode too. Use `-Pnative,docker` instead of `-Pnative`
   if you choose this option.
 * Java 8
-* Maven 3.5.3+ (unless you use the Maven Wrapper, a.k.a. `mvnw` available in the source tree).
+* Maven 3.6.2+ (unless you use the Maven Wrapper, a.k.a. `mvnw` available in the source tree).
 
 [[how-to-build]]
 == How to build
diff --git a/extensions-jvm/openstack/integration-test/pom.xml b/extensions-jvm/openstack/integration-test/pom.xml
index 3bf0725..0a3e3c7 100644
--- a/extensions-jvm/openstack/integration-test/pom.xml
+++ b/extensions-jvm/openstack/integration-test/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>camel-quarkus-openstack-integration-test</artifactId>
-    <name>Camel Quarkus :: OpenStack Cinder :: Integration Test</name>
+    <name>Camel Quarkus :: OpenStack :: Integration Test</name>
     <description>Integration tests for Camel Quarkus OpenStack extension</description>
 
     <properties>
diff --git a/extensions-jvm/openstack/runtime/pom.xml b/extensions-jvm/openstack/runtime/pom.xml
index 32e6072..6f28885 100644
--- a/extensions-jvm/openstack/runtime/pom.xml
+++ b/extensions-jvm/openstack/runtime/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>camel-quarkus-openstack</artifactId>
-    <name>Camel Quarkus :: OpenStack Cinder :: Runtime</name>
+    <name>Camel Quarkus :: OpenStack :: Runtime</name>
     <description>The openstack component allows you to interact with OpenStack APIs.</description>
 
     <properties>


[camel-quarkus] 01/02: OpenStack support (JVM only)

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

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

commit 4f2a14eaa8999eff114352d4a02563cc2c0fab22
Author: James Netherton <ja...@gmail.com>
AuthorDate: Fri Mar 20 07:30:02 2020 +0000

    OpenStack support (JVM only)
    
    Fixes #922
---
 .../pages/list-of-camel-quarkus-extensions.adoc    |  26 ++++-
 extensions-jvm/openstack/deployment/pom.xml        |  75 +++++++++++++
 .../openstack/deployment/OpenstackProcessor.java   |  31 ++++++
 extensions-jvm/openstack/integration-test/pom.xml  |  82 +++++++++++++++
 .../component/openstack/it/OpenstackResource.java  | 116 +++++++++++++++++++++
 .../component/openstack/it/OpenstackTest.java      |  74 +++++++++++++
 extensions-jvm/{ => openstack}/pom.xml             |  31 ++----
 extensions-jvm/openstack/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                                   |  16 +++
 12 files changed, 547 insertions(+), 22 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 611ba0d..ab8c423 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: 95 in 82 JAR artifacts (0 deprecated)
+Number of Camel components: 101 in 83 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,1,5",options="header"]
 |===
@@ -297,6 +297,30 @@ Level | Since | Description
 `olingo4:apiName/methodName` | Native +
  Stable | 1.0.0-M4 | Communicates with OData 4.0 services using Apache Olingo OData API.
 
+| link:https://camel.apache.org/components/latest/openstack-cinder-component.html[OpenStack Cinder] (camel-quarkus-openstack) +
+`openstack-cinder:host` | JVM +
+ Preview | 1.0.0-M6 | The openstack-cinder component allows messages to be sent to an OpenStack block storage services.
+
+| link:https://camel.apache.org/components/latest/openstack-glance-component.html[OpenStack Glance] (camel-quarkus-openstack) +
+`openstack-glance:host` | JVM +
+ Preview | 1.0.0-M6 | The openstack-glance component allows messages to be sent to an OpenStack image services.
+
+| link:https://camel.apache.org/components/latest/openstack-keystone-component.html[OpenStack Keystone] (camel-quarkus-openstack) +
+`openstack-keystone:host` | JVM +
+ Preview | 1.0.0-M6 | The openstack-keystone component allows messages to be sent to an OpenStack identity services.
+
+| link:https://camel.apache.org/components/latest/openstack-neutron-component.html[OpenStack Neutron] (camel-quarkus-openstack) +
+`openstack-neutron:host` | JVM +
+ Preview | 1.0.0-M6 | The openstack-neutron component allows messages to be sent to an OpenStack network services.
+
+| link:https://camel.apache.org/components/latest/openstack-nova-component.html[OpenStack Nova] (camel-quarkus-openstack) +
+`openstack-nova:host` | JVM +
+ Preview | 1.0.0-M6 | The openstack-nova component allows messages to be sent to an OpenStack compute services.
+
+| link:https://camel.apache.org/components/latest/openstack-swift-component.html[OpenStack Swift] (camel-quarkus-openstack) +
+`openstack-swift:host` | JVM +
+ Preview | 1.0.0-M6 | The openstack-swift component allows messages to be sent to an OpenStack object storage services.
+
 | link:https://camel.apache.org/components/latest/paho-component.html[Paho] (camel-quarkus-paho) +
 `paho:topic` | Native +
  Stable | 0.2.0 | Component for communicating with MQTT message brokers using Eclipse Paho MQTT Client.
diff --git a/extensions-jvm/openstack/deployment/pom.xml b/extensions-jvm/openstack/deployment/pom.xml
new file mode 100644
index 0000000..7d3ff1d
--- /dev/null
+++ b/extensions-jvm/openstack/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-openstack-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-openstack-deployment</artifactId>
+    <name>Camel Quarkus :: OpenStack :: 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-openstack</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/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java b/extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.java
new file mode 100644
index 0000000..e9f57bc
--- /dev/null
+++ b/extensions-jvm/openstack/deployment/src/main/java/org/apache/camel/quarkus/component/openstack/deployment/OpenstackProcessor.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.openstack.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class OpenstackProcessor {
+
+    private static final String FEATURE = "camel-openstack";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+}
diff --git a/extensions-jvm/openstack/integration-test/pom.xml b/extensions-jvm/openstack/integration-test/pom.xml
new file mode 100644
index 0000000..3bf0725
--- /dev/null
+++ b/extensions-jvm/openstack/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-openstack-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-quarkus-openstack-integration-test</artifactId>
+    <name>Camel Quarkus :: OpenStack Cinder :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus OpenStack 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-openstack-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-openstack</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/openstack/integration-test/src/main/java/org/apache/camel/quarkus/component/openstack/it/OpenstackResource.java b/extensions-jvm/openstack/integration-test/src/main/java/org/apache/camel/quarkus/component/openstack/it/OpenstackResource.java
new file mode 100644
index 0000000..601c38d
--- /dev/null
+++ b/extensions-jvm/openstack/integration-test/src/main/java/org/apache/camel/quarkus/component/openstack/it/OpenstackResource.java
@@ -0,0 +1,116 @@
+/*
+ * 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.openstack.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("/openstack")
+@ApplicationScoped
+public class OpenstackResource {
+
+    private static final Logger LOG = Logger.getLogger(OpenstackResource.class);
+
+    private static final String COMPONENT_OPENSTACK_CINDER = "openstack-cinder";
+    private static final String COMPONENT_OPENSTACK_GLANCE = "openstack-glance";
+    private static final String COMPONENT_OPENSTACK_KEYSTONE = "openstack-keystone";
+    private static final String COMPONENT_OPENSTACK_NEUTRON = "openstack-neutron";
+    private static final String COMPONENT_OPENSTACK_NOVA = "openstack-nova";
+    private static final String COMPONENT_OPENSTACK_SWIFT = "openstack-swift";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/openstack-cinder")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentOpenstackCinder() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_OPENSTACK_CINDER) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_OPENSTACK_CINDER);
+        return Response.status(500, COMPONENT_OPENSTACK_CINDER + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/openstack-glance")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentOpenstackGlance() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_OPENSTACK_GLANCE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_OPENSTACK_GLANCE);
+        return Response.status(500, COMPONENT_OPENSTACK_GLANCE + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/openstack-keystone")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentOpenstackKeystone() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_OPENSTACK_KEYSTONE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_OPENSTACK_KEYSTONE);
+        return Response.status(500, COMPONENT_OPENSTACK_KEYSTONE + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/openstack-neutron")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentOpenstackNeutron() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_OPENSTACK_NEUTRON) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_OPENSTACK_NEUTRON);
+        return Response.status(500, COMPONENT_OPENSTACK_NEUTRON + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/openstack-nova")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentOpenstackNova() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_OPENSTACK_NOVA) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_OPENSTACK_NOVA);
+        return Response.status(500, COMPONENT_OPENSTACK_NOVA + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/openstack-swift")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentOpenstackSwift() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_OPENSTACK_SWIFT) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_OPENSTACK_SWIFT);
+        return Response.status(500, COMPONENT_OPENSTACK_SWIFT + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/openstack/integration-test/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackTest.java b/extensions-jvm/openstack/integration-test/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackTest.java
new file mode 100644
index 0000000..fa43017
--- /dev/null
+++ b/extensions-jvm/openstack/integration-test/src/test/java/org/apache/camel/quarkus/component/openstack/it/OpenstackTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.openstack.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class OpenstackTest {
+
+    @Test
+    public void loadComponentOpenstackCinder() {
+        /* A simple autogenerated test */
+        RestAssured.get("/openstack/load/component/openstack-cinder")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentOpenstackGlance() {
+        /* A simple autogenerated test */
+        RestAssured.get("/openstack/load/component/openstack-glance")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentOpenstackKeystone() {
+        /* A simple autogenerated test */
+        RestAssured.get("/openstack/load/component/openstack-keystone")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentOpenstackNeutron() {
+        /* A simple autogenerated test */
+        RestAssured.get("/openstack/load/component/openstack-neutron")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentOpenstackNova() {
+        /* A simple autogenerated test */
+        RestAssured.get("/openstack/load/component/openstack-nova")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentOpenstackSwift() {
+        /* A simple autogenerated test */
+        RestAssured.get("/openstack/load/component/openstack-swift")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/openstack/pom.xml
similarity index 51%
copy from extensions-jvm/pom.xml
copy to extensions-jvm/openstack/pom.xml
index da04d59..bbbf5d0 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/openstack/pom.xml
@@ -17,35 +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-openstack-parent</artifactId>
+    <name>Camel Quarkus :: OpenStack</name>
     <packaging>pom</packaging>
 
-    <name>Camel Quarkus :: Extensions JVM</name>
-    <description>Autogenerated extensions not yet tested in the native mode</description>
-
     <modules>
-        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
-        <module>cassandraql</module>
-        <module>couchbase</module>
-        <module>couchdb</module>
-        <module>debezium-mongodb</module>
-        <module>debezium-mysql</module>
-        <module>debezium-postgres</module>
-        <module>debezium-sqlserver</module>
-        <module>elasticsearch-rest</module>
-        <module>influxdb</module>
-        <module>kudu</module>
-        <module>mongodb-gridfs</module>
-        <module>nitrite</module>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
     </modules>
-
 </project>
diff --git a/extensions-jvm/openstack/runtime/pom.xml b/extensions-jvm/openstack/runtime/pom.xml
new file mode 100644
index 0000000..32e6072
--- /dev/null
+++ b/extensions-jvm/openstack/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-openstack-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-openstack</artifactId>
+    <name>Camel Quarkus :: OpenStack Cinder :: Runtime</name>
+    <description>The openstack component allows you to interact with OpenStack APIs.</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-openstack</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/openstack/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/openstack/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..539f2d7
--- /dev/null
+++ b/extensions-jvm/openstack/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: "OpenStack"
+description: "The openstack component allows you to interact with OpenStack APIs."
+metadata:
+  unlisted: true
+  keywords:
+  - "cloud"
+  - "paas"
+  guide: "https://camel.apache.org/components/latest/openstack-component.html"
+  categories:
+  - "integration"
+  status: "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index da04d59..ac19103 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -46,6 +46,7 @@
         <module>kudu</module>
         <module>mongodb-gridfs</module>
         <module>nitrite</module>
+        <module>openstack</module>
     </modules>
 
 </project>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 683cbc0..f481fe8 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -469,6 +469,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-openstack-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-opentracing-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 1b881fd..71f93a2 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -611,6 +611,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-openstack</artifactId>
+                <version>${camel.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>com.google.code.findbugs</groupId>
+                        <artifactId>jsr305</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-opentracing</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1214,6 +1225,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-openstack</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-opentracing</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>