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/08/25 04:34:32 UTC

[camel-quarkus] branch master updated (e534ef6 -> c5080ed)

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 e534ef6  Docs: mention camel-quarkus-main in the contributor guide
     new 2dfe686  Bonita JVM support
     new 3c887ba  Beanstalk JVM support
     new 0f6ef89  Caffeine JVM support
     new e6bcbf0  ChatScript JVM support
     new 40cfb0d  Chunk JVM support
     new c0692a6  Skip native tests if the pull request has 'JVM' label
     new c5080ed  Browse JVM support

The 7 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:
 .github/workflows/ci-build.yaml                    |  1 +
 catalog/pom.xml                                    |  6 ++
 docs/modules/ROOT/nav.adoc                         |  6 ++
 docs/modules/ROOT/pages/reference/components.adoc  | 21 +++++
 .../extensions/{atom.adoc => beanstalk.adoc}       | 12 +--
 .../extensions/{atom.adoc => bonita.adoc}          | 12 +--
 .../extensions/{atom.adoc => browse.adoc}          | 12 +--
 .../{aws2-kinesis.adoc => caffeine.adoc}           | 14 ++--
 .../extensions/{atom.adoc => chatscript.adoc}      | 12 +--
 .../reference/extensions/{atom.adoc => chunk.adoc} | 12 +--
 docs/modules/ROOT/pages/reference/index.adoc       | 18 ++++
 .../{apns => beanstalk}/deployment/pom.xml         |  8 +-
 .../beanstalk/deployment/BeanstalkProcessor.java}  |  9 +-
 .../integration-test/pom.xml                       | 10 +--
 .../component/beanstalk/it/BeanstalkResource.java} | 20 ++---
 .../component/beanstalk/it/BeanstalkTest.java}     |  8 +-
 extensions-jvm/{apns => beanstalk}/pom.xml         |  4 +-
 extensions-jvm/{apns => beanstalk}/runtime/pom.xml | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => bonita}/deployment/pom.xml |  8 +-
 .../bonita/deployment/BonitaProcessor.java}        |  8 +-
 .../{atomix => bonita}/integration-test/pom.xml    | 10 +--
 .../component/bonita/it/BonitaResource.java}       | 20 ++---
 .../quarkus/component/bonita/it/BonitaTest.java}   |  8 +-
 extensions-jvm/{apns => bonita}/pom.xml            |  4 +-
 extensions-jvm/{atomix => bonita}/runtime/pom.xml  | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => browse}/deployment/pom.xml |  8 +-
 .../browse/deployment/BrowseProcessor.java}        |  8 +-
 .../{atomix => browse}/integration-test/pom.xml    | 10 +--
 .../component/browse/it/BrowseResource.java}       | 20 ++---
 .../quarkus/component/browse/it/BrowseTest.java}   |  8 +-
 extensions-jvm/{apns => browse}/pom.xml            |  4 +-
 extensions-jvm/{atomix => browse}/runtime/pom.xml  | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 .../{apns => caffeine}/deployment/pom.xml          |  8 +-
 .../caffeine/deployment/CaffeineProcessor.java}    |  8 +-
 .../integration-test/pom.xml                       | 10 +--
 .../component/caffeine/it/CaffeineResource.java}   | 32 ++++----
 .../component/caffeine/it/CaffeineTest.java}       | 12 +--
 extensions-jvm/{apns => caffeine}/pom.xml          |  4 +-
 .../{atomix => caffeine}/runtime/pom.xml           | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 .../{apns => chatscript}/deployment/pom.xml        |  8 +-
 .../deployment/ChatscriptProcessor.java}           |  8 +-
 .../integration-test/pom.xml                       | 10 +--
 .../chatscript/it/ChatscriptResource.java}         | 20 ++---
 .../component/chatscript/it/ChatscriptTest.java}   |  8 +-
 extensions-jvm/{apns => chatscript}/pom.xml        |  4 +-
 .../{atomix => chatscript}/runtime/pom.xml         | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{jooq => chunk}/deployment/pom.xml  |  8 +-
 .../chunk/deployment/ChunkProcessor.java}          |  8 +-
 .../{atmos => chunk}/integration-test/pom.xml      | 10 +--
 .../quarkus/component/chunk/it/ChunkResource.java} | 20 ++---
 .../quarkus/component/chunk/it/ChunkTest.java}     |  8 +-
 extensions-jvm/{apns => chunk}/pom.xml             |  4 +-
 extensions-jvm/{atomix => chunk}/runtime/pom.xml   | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/pom.xml                             |  6 ++
 pom.xml                                            |  1 +
 poms/bom/pom.xml                                   | 95 ++++++++++++++++++++++
 62 files changed, 421 insertions(+), 268 deletions(-)
 copy docs/modules/ROOT/pages/reference/extensions/{atom.adoc => beanstalk.adoc} (67%)
 copy docs/modules/ROOT/pages/reference/extensions/{atom.adoc => bonita.adoc} (68%)
 copy docs/modules/ROOT/pages/reference/extensions/{atom.adoc => browse.adoc} (67%)
 copy docs/modules/ROOT/pages/reference/extensions/{aws2-kinesis.adoc => caffeine.adoc} (54%)
 copy docs/modules/ROOT/pages/reference/extensions/{atom.adoc => chatscript.adoc} (67%)
 copy docs/modules/ROOT/pages/reference/extensions/{atom.adoc => chunk.adoc} (69%)
 copy extensions-jvm/{apns => beanstalk}/deployment/pom.xml (90%)
 copy extensions-jvm/{couchbase/deployment/src/main/java/org/apache/camel/quarkus/component/couchbase/deployment/CouchbaseProcessor.java => beanstalk/deployment/src/main/java/org/apache/camel/quarkus/component/beanstalk/deployment/BeanstalkProcessor.java} (88%)
 copy extensions-jvm/{asterisk => beanstalk}/integration-test/pom.xml (89%)
 copy extensions-jvm/{couchbase/integration-test/src/main/java/org/apache/camel/quarkus/component/couchbase/it/CouchbaseResource.java => beanstalk/integration-test/src/main/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkResource.java} (74%)
 copy extensions-jvm/{apns/integration-test/src/test/java/org/apache/camel/quarkus/component/apns/it/ApnsTest.java => beanstalk/integration-test/src/test/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkTest.java} (85%)
 copy extensions-jvm/{apns => beanstalk}/pom.xml (93%)
 copy extensions-jvm/{apns => beanstalk}/runtime/pom.xml (91%)
 copy extensions-jvm/{asterisk => beanstalk}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)
 copy extensions-jvm/{apns => bonita}/deployment/pom.xml (90%)
 copy extensions-jvm/{atomix/deployment/src/main/java/org/apache/camel/quarkus/component/atomix/deployment/AtomixProcessor.java => bonita/deployment/src/main/java/org/apache/camel/quarkus/component/bonita/deployment/BonitaProcessor.java} (88%)
 copy extensions-jvm/{atomix => bonita}/integration-test/pom.xml (91%)
 copy extensions-jvm/{pubnub/integration-test/src/main/java/org/apache/camel/quarkus/component/pubnub/it/PubnubResource.java => bonita/integration-test/src/main/java/org/apache/camel/quarkus/component/bonita/it/BonitaResource.java} (75%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => bonita/integration-test/src/test/java/org/apache/camel/quarkus/component/bonita/it/BonitaTest.java} (86%)
 copy extensions-jvm/{apns => bonita}/pom.xml (94%)
 copy extensions-jvm/{atomix => bonita}/runtime/pom.xml (91%)
 copy extensions-jvm/{asterisk => bonita}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (90%)
 copy extensions-jvm/{apns => browse}/deployment/pom.xml (90%)
 copy extensions-jvm/{atomix/deployment/src/main/java/org/apache/camel/quarkus/component/atomix/deployment/AtomixProcessor.java => browse/deployment/src/main/java/org/apache/camel/quarkus/component/browse/deployment/BrowseProcessor.java} (88%)
 copy extensions-jvm/{atomix => browse}/integration-test/pom.xml (91%)
 copy extensions-jvm/{pubnub/integration-test/src/main/java/org/apache/camel/quarkus/component/pubnub/it/PubnubResource.java => browse/integration-test/src/main/java/org/apache/camel/quarkus/component/browse/it/BrowseResource.java} (75%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => browse/integration-test/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseTest.java} (86%)
 copy extensions-jvm/{apns => browse}/pom.xml (94%)
 copy extensions-jvm/{atomix => browse}/runtime/pom.xml (91%)
 copy extensions-jvm/{apns => browse}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (89%)
 copy extensions-jvm/{apns => caffeine}/deployment/pom.xml (90%)
 copy extensions-jvm/{protobuf/deployment/src/main/java/org/apache/camel/quarkus/component/protobuf/deployment/ProtobufProcessor.java => caffeine/deployment/src/main/java/org/apache/camel/quarkus/component/caffeine/deployment/CaffeineProcessor.java} (88%)
 copy extensions-jvm/{asterisk => caffeine}/integration-test/pom.xml (91%)
 copy extensions-jvm/{aws2-kinesis/integration-test/src/main/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisResource.java => caffeine/integration-test/src/main/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineResource.java} (60%)
 copy extensions-jvm/{aws2-kinesis/integration-test/src/test/java/org/apache/camel/quarkus/component/aws2/kinesis/it/Aws2KinesisTest.java => caffeine/integration-test/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineTest.java} (78%)
 copy extensions-jvm/{apns => caffeine}/pom.xml (93%)
 copy extensions-jvm/{atomix => caffeine}/runtime/pom.xml (91%)
 copy extensions-jvm/{apns => caffeine}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (90%)
 copy extensions-jvm/{apns => chatscript}/deployment/pom.xml (90%)
 copy extensions-jvm/{apns/deployment/src/main/java/org/apache/camel/quarkus/component/apns/deployment/ApnsProcessor.java => chatscript/deployment/src/main/java/org/apache/camel/quarkus/component/chatscript/deployment/ChatscriptProcessor.java} (87%)
 copy extensions-jvm/{atomix => chatscript}/integration-test/pom.xml (90%)
 copy extensions-jvm/{couchbase/integration-test/src/main/java/org/apache/camel/quarkus/component/couchbase/it/CouchbaseResource.java => chatscript/integration-test/src/main/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptResource.java} (70%)
 copy extensions-jvm/{atmos/integration-test/src/test/java/org/apache/camel/quarkus/component/atmos/it/AtmosTest.java => chatscript/integration-test/src/test/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptTest.java} (84%)
 copy extensions-jvm/{apns => chatscript}/pom.xml (93%)
 copy extensions-jvm/{atomix => chatscript}/runtime/pom.xml (92%)
 copy extensions-jvm/{apns => chatscript}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)
 copy extensions-jvm/{jooq => chunk}/deployment/pom.xml (90%)
 copy extensions-jvm/{atmos/deployment/src/main/java/org/apache/camel/quarkus/component/atmos/deployment/AtmosProcessor.java => chunk/deployment/src/main/java/org/apache/camel/quarkus/component/chunk/deployment/ChunkProcessor.java} (88%)
 copy extensions-jvm/{atmos => chunk}/integration-test/pom.xml (92%)
 copy extensions-jvm/{atmos/integration-test/src/main/java/org/apache/camel/quarkus/component/atmos/it/AtmosResource.java => chunk/integration-test/src/main/java/org/apache/camel/quarkus/component/chunk/it/ChunkResource.java} (75%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => chunk/integration-test/src/test/java/org/apache/camel/quarkus/component/chunk/it/ChunkTest.java} (86%)
 copy extensions-jvm/{apns => chunk}/pom.xml (94%)
 copy extensions-jvm/{atomix => chunk}/runtime/pom.xml (92%)
 copy extensions-jvm/{asterisk => chunk}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)


[camel-quarkus] 02/07: Beanstalk JVM support

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

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

commit 3c887ba7d4946448c4cd50c20096621f85dd1975
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 19:43:36 2020 +0200

    Beanstalk JVM support
---
 catalog/pom.xml                                    |  1 +
 docs/modules/ROOT/nav.adoc                         |  1 +
 docs/modules/ROOT/pages/reference/components.adoc  |  3 +
 .../ROOT/pages/reference/extensions/beanstalk.adoc | 29 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  3 +
 extensions-jvm/beanstalk/deployment/pom.xml        | 63 ++++++++++++++
 .../beanstalk/deployment/BeanstalkProcessor.java   | 46 +++++++++++
 extensions-jvm/beanstalk/integration-test/pom.xml  | 95 ++++++++++++++++++++++
 .../component/beanstalk/it/BeanstalkResource.java  | 51 ++++++++++++
 .../component/beanstalk/it/BeanstalkTest.java      | 34 ++++++++
 extensions-jvm/beanstalk/pom.xml                   | 40 +++++++++
 extensions-jvm/beanstalk/runtime/pom.xml           | 94 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 32 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom/pom.xml                                   | 15 ++++
 15 files changed, 508 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index be0cc60..58e3630 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -86,6 +86,7 @@
             camel-quarkus-base64
             camel-quarkus-bean
             camel-quarkus-bean-validator
+            camel-quarkus-beanstalk
             camel-quarkus-bindy
             camel-quarkus-bonita
             camel-quarkus-box
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 53a2ed5..8999f69 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -63,6 +63,7 @@
 *** xref:reference/extensions/base64.adoc[Base64]
 *** xref:reference/extensions/bean.adoc[Bean]
 *** xref:reference/extensions/bean-validator.adoc[Bean Validator]
+*** xref:reference/extensions/beanstalk.adoc[Beanstalk]
 *** xref:reference/extensions/bindy.adoc[Bindy]
 *** xref:reference/extensions/bonita.adoc[Bonita]
 *** xref:reference/extensions/box.adoc[Box]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 76c6812..00860cc 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -172,6 +172,9 @@ Stable | 0.2.0 | Invoke methods of Java beans stored in Camel registry.
 | xref:reference/extensions/bean-validator.adoc[Bean Validator] | [.camel-element-artifact]##camel-quarkus-bean-validator## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Validate the message body using the Java Bean Validation API.
 
+| xref:reference/extensions/beanstalk.adoc[Beanstalk] | [.camel-element-artifact]##camel-quarkus-beanstalk## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Retrieve and post-process Beanstalk jobs.
+
 | xref:reference/extensions/bonita.adoc[Bonita] | [.camel-element-artifact]##camel-quarkus-bonita## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Communicate with a remote Bonita BPM process engine.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/beanstalk.adoc b/docs/modules/ROOT/pages/reference/extensions/beanstalk.adoc
new file mode 100644
index 0000000..b3232ce
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/beanstalk.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[beanstalk]]
+= Beanstalk
+:page-aliases: extensions/beanstalk.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Retrieve and post-process Beanstalk jobs.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/beanstalk-component.html[Beanstalk component], URI syntax: `beanstalk:connectionSettings`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-beanstalk</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index f83da7d..bb60193 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -167,6 +167,9 @@ Stable | 0.2.0 | Invoke methods of Java beans
 |  xref:reference/extensions/bean-validator.adoc[Bean Validator]  | camel-quarkus-bean-validator | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Validate the message body using the Java Bean Validation API.
 
+|  xref:reference/extensions/beanstalk.adoc[Beanstalk]  | camel-quarkus-beanstalk | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Retrieve and post-process Beanstalk jobs.
+
 |  xref:reference/extensions/bindy.adoc[Bindy]  | camel-quarkus-bindy | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Marshal and unmarshal Java beans from and to flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).
 
diff --git a/extensions-jvm/beanstalk/deployment/pom.xml b/extensions-jvm/beanstalk/deployment/pom.xml
new file mode 100644
index 0000000..1aea222
--- /dev/null
+++ b/extensions-jvm/beanstalk/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-beanstalk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-beanstalk-deployment</artifactId>
+    <name>Camel Quarkus :: Beanstalk :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-beanstalk</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/beanstalk/deployment/src/main/java/org/apache/camel/quarkus/component/beanstalk/deployment/BeanstalkProcessor.java b/extensions-jvm/beanstalk/deployment/src/main/java/org/apache/camel/quarkus/component/beanstalk/deployment/BeanstalkProcessor.java
new file mode 100644
index 0000000..d950e96
--- /dev/null
+++ b/extensions-jvm/beanstalk/deployment/src/main/java/org/apache/camel/quarkus/component/beanstalk/deployment/BeanstalkProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.beanstalk.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
+
+class BeanstalkProcessor {
+
+    private static final Logger LOG = Logger.getLogger(BeanstalkProcessor.class);
+    private static final String FEATURE = "camel-beanstalk";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+}
diff --git a/extensions-jvm/beanstalk/integration-test/pom.xml b/extensions-jvm/beanstalk/integration-test/pom.xml
new file mode 100644
index 0000000..4467365
--- /dev/null
+++ b/extensions-jvm/beanstalk/integration-test/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-beanstalk-integration-test</artifactId>
+    <name>Camel Quarkus :: Beanstalk :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Beanstalk extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/mvndaemon/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 the rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-beanstalk-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-beanstalk</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/beanstalk/integration-test/src/main/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkResource.java b/extensions-jvm/beanstalk/integration-test/src/main/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkResource.java
new file mode 100644
index 0000000..143ea2c
--- /dev/null
+++ b/extensions-jvm/beanstalk/integration-test/src/main/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkResource.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.beanstalk.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("/beanstalk")
+@ApplicationScoped
+public class BeanstalkResource {
+
+    private static final Logger LOG = Logger.getLogger(BeanstalkResource.class);
+
+    private static final String COMPONENT_BEANSTALK = "beanstalk";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/beanstalk")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentBeanstalk() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_BEANSTALK) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_BEANSTALK);
+        return Response.status(500, COMPONENT_BEANSTALK + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/beanstalk/integration-test/src/test/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkTest.java b/extensions-jvm/beanstalk/integration-test/src/test/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkTest.java
new file mode 100644
index 0000000..bdd455d
--- /dev/null
+++ b/extensions-jvm/beanstalk/integration-test/src/test/java/org/apache/camel/quarkus/component/beanstalk/it/BeanstalkTest.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.beanstalk.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class BeanstalkTest {
+
+    @Test
+    public void loadComponentBeanstalk() {
+        /* A simple autogenerated test */
+        RestAssured.get("/beanstalk/load/component/beanstalk")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/beanstalk/pom.xml b/extensions-jvm/beanstalk/pom.xml
new file mode 100644
index 0000000..62ace72
--- /dev/null
+++ b/extensions-jvm/beanstalk/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-beanstalk-parent</artifactId>
+    <name>Camel Quarkus :: Beanstalk</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/beanstalk/runtime/pom.xml b/extensions-jvm/beanstalk/runtime/pom.xml
new file mode 100644
index 0000000..7200c57
--- /dev/null
+++ b/extensions-jvm/beanstalk/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-beanstalk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-beanstalk</artifactId>
+    <name>Camel Quarkus :: Beanstalk :: Runtime</name>
+    <description>Retrieve and post-process Beanstalk jobs.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-beanstalk</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/beanstalk/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/beanstalk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..06f4d22
--- /dev/null
+++ b/extensions-jvm/beanstalk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel Beanstalk"
+description: "Retrieve and post-process Beanstalk jobs"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/beanstalk.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 675e071..b608e00 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -44,6 +44,7 @@
         <module>aws2-lambda</module>
         <module>azure-storage-blob</module>
         <module>azure-storage-queue</module>
+        <module>beanstalk</module>
         <module>bonita</module>
         <module>cassandraql</module>
         <module>couchbase</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 316a72a..54941a0 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -458,6 +458,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-beanstalk</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-bindy</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1803,6 +1808,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-beanstalk</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-beanstalk-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-bindy</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 03/07: Caffeine JVM support

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

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

commit 0f6ef89d400908cd8bd9d32fc5efdd13fdf53b0b
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 20:53:56 2020 +0200

    Caffeine JVM support
---
 catalog/pom.xml                                    |  1 +
 docs/modules/ROOT/nav.adoc                         |  1 +
 docs/modules/ROOT/pages/reference/components.adoc  |  6 ++
 .../ROOT/pages/reference/extensions/caffeine.adoc  | 30 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  3 +
 extensions-jvm/caffeine/deployment/pom.xml         | 63 ++++++++++++++
 .../caffeine/deployment/CaffeineProcessor.java     | 46 +++++++++++
 extensions-jvm/caffeine/integration-test/pom.xml   | 95 ++++++++++++++++++++++
 .../component/caffeine/it/CaffeineResource.java    | 64 +++++++++++++++
 .../component/caffeine/it/CaffeineTest.java        | 42 ++++++++++
 extensions-jvm/caffeine/pom.xml                    | 40 +++++++++
 extensions-jvm/caffeine/runtime/pom.xml            | 94 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 32 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom/pom.xml                                   | 15 ++++
 15 files changed, 533 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 58e3630..e341b40 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -91,6 +91,7 @@
             camel-quarkus-bonita
             camel-quarkus-box
             camel-quarkus-braintree
+            camel-quarkus-caffeine
             camel-quarkus-caffeine-lrucache
             camel-quarkus-cassandraql
             camel-quarkus-componentdsl
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 8999f69..14812ae 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -68,6 +68,7 @@
 *** xref:reference/extensions/bonita.adoc[Bonita]
 *** xref:reference/extensions/box.adoc[Box]
 *** xref:reference/extensions/braintree.adoc[Braintree]
+*** xref:reference/extensions/caffeine.adoc[Caffeine Cache]
 *** xref:reference/extensions/caffeine-lrucache.adoc[Caffeine LRUCache]
 *** xref:reference/extensions/cassandraql.adoc[Cassandra CQL]
 *** xref:reference/extensions/core-cloud.adoc[Cloud]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 00860cc..5de2d48 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -184,6 +184,12 @@ Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborati
 | xref:reference/extensions/braintree.adoc[Braintree] | [.camel-element-artifact]##camel-quarkus-braintree## | [.camel-element-Native]##Native## +
 Stable | 1.2.0 | Process payments using Braintree Payments.
 
+| xref:reference/extensions/caffeine.adoc[Caffeine Cache] | [.camel-element-artifact]##camel-quarkus-caffeine## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
+
+| xref:reference/extensions/caffeine.adoc[Caffeine LoadCache] | [.camel-element-artifact]##camel-quarkus-caffeine## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Perform caching operations using Caffeine Cache with an attached CacheLoader.
+
 | xref:reference/extensions/cassandraql.adoc[Cassandra CQL] | [.camel-element-artifact]##camel-quarkus-cassandraql## | [.camel-element-JVM]##JVM## +
 Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/caffeine.adoc b/docs/modules/ROOT/pages/reference/extensions/caffeine.adoc
new file mode 100644
index 0000000..a56c0a0
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/caffeine.adoc
@@ -0,0 +1,30 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[caffeine]]
+= Caffeine Cache
+:page-aliases: extensions/caffeine.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Perform caching operations using Caffeine Cache.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/caffeine-cache-component.html[Caffeine Cache component], URI syntax: `caffeine-cache:cacheName`
+* https://camel.apache.org/components/latest/caffeine-loadcache-component.html[Caffeine LoadCache component], URI syntax: `caffeine-loadcache:cacheName`
+
+Please refer to the above links for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-caffeine</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index bb60193..4b1e4f1 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -182,6 +182,9 @@ Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborati
 |  xref:reference/extensions/braintree.adoc[Braintree]  | camel-quarkus-braintree | [.camel-element-Native]##Native## +
 Stable | 1.2.0 | Process payments using Braintree Payments.
 
+|  xref:reference/extensions/caffeine.adoc[Caffeine Cache]  | camel-quarkus-caffeine | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
+
 |  xref:reference/extensions/caffeine-lrucache.adoc[Caffeine LRUCache]  | camel-quarkus-caffeine-lrucache | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | An LRUCacheFactory implementation based on Caffeine
 
diff --git a/extensions-jvm/caffeine/deployment/pom.xml b/extensions-jvm/caffeine/deployment/pom.xml
new file mode 100644
index 0000000..75e8944
--- /dev/null
+++ b/extensions-jvm/caffeine/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-caffeine-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-caffeine-deployment</artifactId>
+    <name>Camel Quarkus :: Caffeine Cache :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-caffeine</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/caffeine/deployment/src/main/java/org/apache/camel/quarkus/component/caffeine/deployment/CaffeineProcessor.java b/extensions-jvm/caffeine/deployment/src/main/java/org/apache/camel/quarkus/component/caffeine/deployment/CaffeineProcessor.java
new file mode 100644
index 0000000..d2e25fc
--- /dev/null
+++ b/extensions-jvm/caffeine/deployment/src/main/java/org/apache/camel/quarkus/component/caffeine/deployment/CaffeineProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.caffeine.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
+
+class CaffeineProcessor {
+
+    private static final Logger LOG = Logger.getLogger(CaffeineProcessor.class);
+    private static final String FEATURE = "camel-caffeine";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+}
diff --git a/extensions-jvm/caffeine/integration-test/pom.xml b/extensions-jvm/caffeine/integration-test/pom.xml
new file mode 100644
index 0000000..5afcb1f
--- /dev/null
+++ b/extensions-jvm/caffeine/integration-test/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-caffeine-integration-test</artifactId>
+    <name>Camel Quarkus :: Caffeine Cache :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Caffeine Cache extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/mvndaemon/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 the rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-caffeine-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-caffeine</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/caffeine/integration-test/src/main/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineResource.java b/extensions-jvm/caffeine/integration-test/src/main/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineResource.java
new file mode 100644
index 0000000..17ff6a5
--- /dev/null
+++ b/extensions-jvm/caffeine/integration-test/src/main/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineResource.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.caffeine.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("/caffeine")
+@ApplicationScoped
+public class CaffeineResource {
+
+    private static final Logger LOG = Logger.getLogger(CaffeineResource.class);
+
+    private static final String COMPONENT_CAFFEINE_CACHE = "caffeine-cache";
+    private static final String COMPONENT_CAFFEINE_LOADCACHE = "caffeine-loadcache";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/caffeine-cache")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentCaffeineCache() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_CAFFEINE_CACHE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_CAFFEINE_CACHE);
+        return Response.status(500, COMPONENT_CAFFEINE_CACHE + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/caffeine-loadcache")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentCaffeineLoadcache() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_CAFFEINE_LOADCACHE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_CAFFEINE_LOADCACHE);
+        return Response.status(500, COMPONENT_CAFFEINE_LOADCACHE + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/caffeine/integration-test/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineTest.java b/extensions-jvm/caffeine/integration-test/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineTest.java
new file mode 100644
index 0000000..ec8eaca
--- /dev/null
+++ b/extensions-jvm/caffeine/integration-test/src/test/java/org/apache/camel/quarkus/component/caffeine/it/CaffeineTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.caffeine.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class CaffeineTest {
+
+    @Test
+    public void loadComponentCaffeineCache() {
+        /* A simple autogenerated test */
+        RestAssured.get("/caffeine/load/component/caffeine-cache")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentCaffeineLoadcache() {
+        /* A simple autogenerated test */
+        RestAssured.get("/caffeine/load/component/caffeine-loadcache")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/caffeine/pom.xml b/extensions-jvm/caffeine/pom.xml
new file mode 100644
index 0000000..e602555
--- /dev/null
+++ b/extensions-jvm/caffeine/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-caffeine-parent</artifactId>
+    <name>Camel Quarkus :: Caffeine Cache</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/caffeine/runtime/pom.xml b/extensions-jvm/caffeine/runtime/pom.xml
new file mode 100644
index 0000000..257b94b
--- /dev/null
+++ b/extensions-jvm/caffeine/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-caffeine-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-caffeine</artifactId>
+    <name>Camel Quarkus :: Caffeine Cache :: Runtime</name>
+    <description>Perform caching operations using Caffeine Cache.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-caffeine</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/caffeine/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/caffeine/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..d73b1ad
--- /dev/null
+++ b/extensions-jvm/caffeine/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel Caffeine Cache"
+description: "Perform caching operations using Caffeine Cache"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/caffeine.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index b608e00..be940ec 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -46,6 +46,7 @@
         <module>azure-storage-queue</module>
         <module>beanstalk</module>
         <module>bonita</module>
+        <module>caffeine</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>debezium-mongodb</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 54941a0..b525369 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -483,6 +483,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-caffeine</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-caffeine-lrucache</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1858,6 +1863,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-caffeine</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-caffeine-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-caffeine-lrucache</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/07: Bonita JVM support

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

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

commit 2dfe6863921e9a66d08bad704e40a83dfef76962
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 19:30:43 2020 +0200

    Bonita JVM support
---
 catalog/pom.xml                                    |  1 +
 docs/modules/ROOT/nav.adoc                         |  1 +
 docs/modules/ROOT/pages/reference/components.adoc  |  3 +
 .../ROOT/pages/reference/extensions/bonita.adoc    | 29 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  3 +
 extensions-jvm/bonita/deployment/pom.xml           | 63 ++++++++++++++
 .../bonita/deployment/BonitaProcessor.java         | 46 +++++++++++
 extensions-jvm/bonita/integration-test/pom.xml     | 95 ++++++++++++++++++++++
 .../component/bonita/it/BonitaResource.java        | 51 ++++++++++++
 .../quarkus/component/bonita/it/BonitaTest.java    | 34 ++++++++
 extensions-jvm/bonita/pom.xml                      | 40 +++++++++
 extensions-jvm/bonita/runtime/pom.xml              | 94 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 32 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 pom.xml                                            |  1 +
 poms/bom/pom.xml                                   | 20 +++++
 16 files changed, 514 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 1374ce6..be0cc60 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -87,6 +87,7 @@
             camel-quarkus-bean
             camel-quarkus-bean-validator
             camel-quarkus-bindy
+            camel-quarkus-bonita
             camel-quarkus-box
             camel-quarkus-braintree
             camel-quarkus-caffeine-lrucache
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 60fe25a..53a2ed5 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -64,6 +64,7 @@
 *** xref:reference/extensions/bean.adoc[Bean]
 *** xref:reference/extensions/bean-validator.adoc[Bean Validator]
 *** xref:reference/extensions/bindy.adoc[Bindy]
+*** xref:reference/extensions/bonita.adoc[Bonita]
 *** xref:reference/extensions/box.adoc[Box]
 *** xref:reference/extensions/braintree.adoc[Braintree]
 *** xref:reference/extensions/caffeine-lrucache.adoc[Caffeine LRUCache]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 4abca74..76c6812 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -172,6 +172,9 @@ Stable | 0.2.0 | Invoke methods of Java beans stored in Camel registry.
 | xref:reference/extensions/bean-validator.adoc[Bean Validator] | [.camel-element-artifact]##camel-quarkus-bean-validator## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Validate the message body using the Java Bean Validation API.
 
+| xref:reference/extensions/bonita.adoc[Bonita] | [.camel-element-artifact]##camel-quarkus-bonita## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Communicate with a remote Bonita BPM process engine.
+
 | xref:reference/extensions/box.adoc[Box] | [.camel-element-artifact]##camel-quarkus-box## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborations, etc. on box.com.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/bonita.adoc b/docs/modules/ROOT/pages/reference/extensions/bonita.adoc
new file mode 100644
index 0000000..1b9c96a
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/bonita.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[bonita]]
+= Bonita
+:page-aliases: extensions/bonita.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Communicate with a remote Bonita BPM process engine.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/bonita-component.html[Bonita component], URI syntax: `bonita:operation`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-bonita</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 6404720..f83da7d 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -170,6 +170,9 @@ Stable | 1.0.0 | Validate the message body using the Java Bean Validation API.
 |  xref:reference/extensions/bindy.adoc[Bindy]  | camel-quarkus-bindy | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Marshal and unmarshal Java beans from and to flat payloads (such as CSV, delimited, fixed length formats, or FIX messages).
 
+|  xref:reference/extensions/bonita.adoc[Bonita]  | camel-quarkus-bonita | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Communicate with a remote Bonita BPM process engine.
+
 |  xref:reference/extensions/box.adoc[Box]  | camel-quarkus-box | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborations, etc. on box.com.
 
diff --git a/extensions-jvm/bonita/deployment/pom.xml b/extensions-jvm/bonita/deployment/pom.xml
new file mode 100644
index 0000000..74cb566
--- /dev/null
+++ b/extensions-jvm/bonita/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-bonita-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-bonita-deployment</artifactId>
+    <name>Camel Quarkus :: Bonita :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-bonita</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/bonita/deployment/src/main/java/org/apache/camel/quarkus/component/bonita/deployment/BonitaProcessor.java b/extensions-jvm/bonita/deployment/src/main/java/org/apache/camel/quarkus/component/bonita/deployment/BonitaProcessor.java
new file mode 100644
index 0000000..943a54c
--- /dev/null
+++ b/extensions-jvm/bonita/deployment/src/main/java/org/apache/camel/quarkus/component/bonita/deployment/BonitaProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.bonita.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
+
+class BonitaProcessor {
+
+    private static final Logger LOG = Logger.getLogger(BonitaProcessor.class);
+    private static final String FEATURE = "camel-bonita";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+}
diff --git a/extensions-jvm/bonita/integration-test/pom.xml b/extensions-jvm/bonita/integration-test/pom.xml
new file mode 100644
index 0000000..0faaeaa
--- /dev/null
+++ b/extensions-jvm/bonita/integration-test/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-bonita-integration-test</artifactId>
+    <name>Camel Quarkus :: Bonita :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Bonita extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/mvndaemon/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 the rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-bonita-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-bonita</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/bonita/integration-test/src/main/java/org/apache/camel/quarkus/component/bonita/it/BonitaResource.java b/extensions-jvm/bonita/integration-test/src/main/java/org/apache/camel/quarkus/component/bonita/it/BonitaResource.java
new file mode 100644
index 0000000..9aa7d7d
--- /dev/null
+++ b/extensions-jvm/bonita/integration-test/src/main/java/org/apache/camel/quarkus/component/bonita/it/BonitaResource.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.bonita.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("/bonita")
+@ApplicationScoped
+public class BonitaResource {
+
+    private static final Logger LOG = Logger.getLogger(BonitaResource.class);
+
+    private static final String COMPONENT_BONITA = "bonita";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/bonita")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentBonita() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_BONITA) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_BONITA);
+        return Response.status(500, COMPONENT_BONITA + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/bonita/integration-test/src/test/java/org/apache/camel/quarkus/component/bonita/it/BonitaTest.java b/extensions-jvm/bonita/integration-test/src/test/java/org/apache/camel/quarkus/component/bonita/it/BonitaTest.java
new file mode 100644
index 0000000..eb764b3
--- /dev/null
+++ b/extensions-jvm/bonita/integration-test/src/test/java/org/apache/camel/quarkus/component/bonita/it/BonitaTest.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.bonita.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class BonitaTest {
+
+    @Test
+    public void loadComponentBonita() {
+        /* A simple autogenerated test */
+        RestAssured.get("/bonita/load/component/bonita")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/bonita/pom.xml b/extensions-jvm/bonita/pom.xml
new file mode 100644
index 0000000..da3696c
--- /dev/null
+++ b/extensions-jvm/bonita/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-bonita-parent</artifactId>
+    <name>Camel Quarkus :: Bonita</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/bonita/runtime/pom.xml b/extensions-jvm/bonita/runtime/pom.xml
new file mode 100644
index 0000000..569fca4
--- /dev/null
+++ b/extensions-jvm/bonita/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-bonita-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-bonita</artifactId>
+    <name>Camel Quarkus :: Bonita :: Runtime</name>
+    <description>Communicate with a remote Bonita BPM process engine.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-bonita</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/bonita/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/bonita/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..289855b
--- /dev/null
+++ b/extensions-jvm/bonita/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel Bonita"
+description: "Communicate with a remote Bonita BPM process engine"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/bonita.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 1398c91..675e071 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -44,6 +44,7 @@
         <module>aws2-lambda</module>
         <module>azure-storage-blob</module>
         <module>azure-storage-queue</module>
+        <module>bonita</module>
         <module>cassandraql</module>
         <module>couchbase</module>
         <module>debezium-mongodb</module>
diff --git a/pom.xml b/pom.xml
index abcd05c..8fe0259 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,6 +72,7 @@
         <protobuf.version>3.11.1</protobuf.version>
         <retrofit.version>2.5.0</retrofit.version>
         <smallrye.reactive.messaging.camel.version>2.2.1</smallrye.reactive.messaging.camel.version>
+        <soap-api.version>1.4.0</soap-api.version><!-- keep in sync with Camel -->
         <!-- Keep spring.version aligned with the version used by Camel -->
         <spring.version>5.2.7.RELEASE</spring.version>
         <snakeyaml.version>1.26</snakeyaml.version>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 30b760d..316a72a 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -463,6 +463,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-bonita</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-box</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1808,6 +1813,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bonita</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bonita-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-box</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -3457,6 +3472,11 @@
                 <version>${smallrye.reactive.messaging.camel.version}</version>
             </dependency>
             <dependency>
+                <groupId>javax.xml.soap</groupId>
+                <artifactId>javax.xml.soap-api</artifactId>
+                <version>${soap-api.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>javax.xml.ws</groupId>
                 <artifactId>jaxws-api</artifactId>
                 <version>${java.xml.ws.version}</version>


[camel-quarkus] 04/07: ChatScript JVM support

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

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

commit e6bcbf0922a5e2a34f27cd27b7224655565cf217
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 21:00:42 2020 +0200

    ChatScript JVM support
---
 catalog/pom.xml                                    |  1 +
 docs/modules/ROOT/nav.adoc                         |  1 +
 docs/modules/ROOT/pages/reference/components.adoc  |  3 +
 .../pages/reference/extensions/chatscript.adoc     | 29 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  3 +
 extensions-jvm/chatscript/deployment/pom.xml       | 63 ++++++++++++++
 .../chatscript/deployment/ChatscriptProcessor.java | 46 +++++++++++
 extensions-jvm/chatscript/integration-test/pom.xml | 95 ++++++++++++++++++++++
 .../chatscript/it/ChatscriptResource.java          | 51 ++++++++++++
 .../component/chatscript/it/ChatscriptTest.java    | 34 ++++++++
 extensions-jvm/chatscript/pom.xml                  | 40 +++++++++
 extensions-jvm/chatscript/runtime/pom.xml          | 94 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 32 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom/pom.xml                                   | 15 ++++
 15 files changed, 508 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index e341b40..e58c0c1 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -94,6 +94,7 @@
             camel-quarkus-caffeine
             camel-quarkus-caffeine-lrucache
             camel-quarkus-cassandraql
+            camel-quarkus-chatscript
             camel-quarkus-componentdsl
             camel-quarkus-consul
             camel-quarkus-controlbus
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 14812ae..b794fc9 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -71,6 +71,7 @@
 *** xref:reference/extensions/caffeine.adoc[Caffeine Cache]
 *** xref:reference/extensions/caffeine-lrucache.adoc[Caffeine LRUCache]
 *** xref:reference/extensions/cassandraql.adoc[Cassandra CQL]
+*** xref:reference/extensions/chatscript.adoc[ChatScript]
 *** xref:reference/extensions/core-cloud.adoc[Cloud]
 *** xref:reference/extensions/componentdsl.adoc[Component DSL]
 *** xref:reference/extensions/consul.adoc[Consul]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 5de2d48..1bf8330 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -193,6 +193,9 @@ Preview | 1.1.0 | Perform caching operations using Caffeine Cache with an attach
 | xref:reference/extensions/cassandraql.adoc[Cassandra CQL] | [.camel-element-artifact]##camel-quarkus-cassandraql## | [.camel-element-JVM]##JVM## +
 Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
 
+| xref:reference/extensions/chatscript.adoc[ChatScript] | [.camel-element-artifact]##camel-quarkus-chatscript## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Chat with a ChatScript Server.
+
 | xref:reference/extensions/bean.adoc[Class] | [.camel-element-artifact]##camel-quarkus-bean## | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Invoke methods of Java beans specified by class name.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/chatscript.adoc b/docs/modules/ROOT/pages/reference/extensions/chatscript.adoc
new file mode 100644
index 0000000..f496a72
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/chatscript.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[chatscript]]
+= ChatScript
+:page-aliases: extensions/chatscript.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Chat with a ChatScript Server.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/chatscript-component.html[ChatScript component], URI syntax: `chatscript:host:port/botName`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-chatscript</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 4b1e4f1..b86757d 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -191,6 +191,9 @@ Stable | 1.0.0 | An LRUCacheFactory implementation based on Caffeine
 |  xref:reference/extensions/cassandraql.adoc[Cassandra CQL]  | camel-quarkus-cassandraql | [.camel-element-JVM]##JVM## +
 Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrift API).
 
+|  xref:reference/extensions/chatscript.adoc[ChatScript]  | camel-quarkus-chatscript | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Chat with a ChatScript Server.
+
 |  xref:reference/extensions/core-cloud.adoc[Cloud]  | camel-quarkus-core-cloud | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | The Camel Quarkus core cloud module
 
diff --git a/extensions-jvm/chatscript/deployment/pom.xml b/extensions-jvm/chatscript/deployment/pom.xml
new file mode 100644
index 0000000..7def3af
--- /dev/null
+++ b/extensions-jvm/chatscript/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-chatscript-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chatscript-deployment</artifactId>
+    <name>Camel Quarkus :: ChatScript :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-chatscript</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/chatscript/deployment/src/main/java/org/apache/camel/quarkus/component/chatscript/deployment/ChatscriptProcessor.java b/extensions-jvm/chatscript/deployment/src/main/java/org/apache/camel/quarkus/component/chatscript/deployment/ChatscriptProcessor.java
new file mode 100644
index 0000000..e2133a0
--- /dev/null
+++ b/extensions-jvm/chatscript/deployment/src/main/java/org/apache/camel/quarkus/component/chatscript/deployment/ChatscriptProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.chatscript.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
+
+class ChatscriptProcessor {
+
+    private static final Logger LOG = Logger.getLogger(ChatscriptProcessor.class);
+    private static final String FEATURE = "camel-chatscript";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+}
diff --git a/extensions-jvm/chatscript/integration-test/pom.xml b/extensions-jvm/chatscript/integration-test/pom.xml
new file mode 100644
index 0000000..b7c8b85
--- /dev/null
+++ b/extensions-jvm/chatscript/integration-test/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chatscript-integration-test</artifactId>
+    <name>Camel Quarkus :: ChatScript :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus ChatScript extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/mvndaemon/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 the rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-chatscript-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-chatscript</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/chatscript/integration-test/src/main/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptResource.java b/extensions-jvm/chatscript/integration-test/src/main/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptResource.java
new file mode 100644
index 0000000..fa1e476
--- /dev/null
+++ b/extensions-jvm/chatscript/integration-test/src/main/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptResource.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.chatscript.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("/chatscript")
+@ApplicationScoped
+public class ChatscriptResource {
+
+    private static final Logger LOG = Logger.getLogger(ChatscriptResource.class);
+
+    private static final String COMPONENT_CHATSCRIPT = "chatscript";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/chatscript")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentChatscript() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_CHATSCRIPT) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_CHATSCRIPT);
+        return Response.status(500, COMPONENT_CHATSCRIPT + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/chatscript/integration-test/src/test/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptTest.java b/extensions-jvm/chatscript/integration-test/src/test/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptTest.java
new file mode 100644
index 0000000..73fab81
--- /dev/null
+++ b/extensions-jvm/chatscript/integration-test/src/test/java/org/apache/camel/quarkus/component/chatscript/it/ChatscriptTest.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.chatscript.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class ChatscriptTest {
+
+    @Test
+    public void loadComponentChatscript() {
+        /* A simple autogenerated test */
+        RestAssured.get("/chatscript/load/component/chatscript")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/chatscript/pom.xml b/extensions-jvm/chatscript/pom.xml
new file mode 100644
index 0000000..d5ddcab
--- /dev/null
+++ b/extensions-jvm/chatscript/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chatscript-parent</artifactId>
+    <name>Camel Quarkus :: ChatScript</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/chatscript/runtime/pom.xml b/extensions-jvm/chatscript/runtime/pom.xml
new file mode 100644
index 0000000..45a476a
--- /dev/null
+++ b/extensions-jvm/chatscript/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-chatscript-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chatscript</artifactId>
+    <name>Camel Quarkus :: ChatScript :: Runtime</name>
+    <description>Chat with a ChatScript Server.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-chatscript</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/chatscript/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/chatscript/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..99fb0ca
--- /dev/null
+++ b/extensions-jvm/chatscript/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel ChatScript"
+description: "Chat with a ChatScript Server"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/chatscript.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index be940ec..2733fd7 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -48,6 +48,7 @@
         <module>bonita</module>
         <module>caffeine</module>
         <module>cassandraql</module>
+        <module>chatscript</module>
         <module>couchbase</module>
         <module>debezium-mongodb</module>
         <module>dropbox</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index b525369..db098e1 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -503,6 +503,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-chatscript</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-cloud</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1893,6 +1898,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-chatscript</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-chatscript-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-componentdsl</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 06/07: Skip native tests if the pull request has 'JVM' label

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 c0692a650f08dff40a1b2854453035f092c2f461
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 21:17:34 2020 +0200

    Skip native tests if the pull request has 'JVM' label
---
 .github/workflows/ci-build.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index 4bf0533..1e2f170 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -164,6 +164,7 @@ jobs:
     name: Native Tests - ${{matrix.category}}
     needs: build
     runs-on: ubuntu-latest
+    if: github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'JVM')
     strategy:
       fail-fast: false
       matrix: ${{ fromJson(needs.build.outputs.matrix) }}


[camel-quarkus] 05/07: Chunk JVM support

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

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

commit 40cfb0d104b13d04c2063025a2c3e44e97130755
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 21:02:47 2020 +0200

    Chunk JVM support
---
 catalog/pom.xml                                    |  1 +
 docs/modules/ROOT/nav.adoc                         |  1 +
 docs/modules/ROOT/pages/reference/components.adoc  |  3 +
 .../ROOT/pages/reference/extensions/chunk.adoc     | 29 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  3 +
 extensions-jvm/chunk/deployment/pom.xml            | 63 ++++++++++++++
 .../component/chunk/deployment/ChunkProcessor.java | 46 +++++++++++
 extensions-jvm/chunk/integration-test/pom.xml      | 95 ++++++++++++++++++++++
 .../quarkus/component/chunk/it/ChunkResource.java  | 51 ++++++++++++
 .../quarkus/component/chunk/it/ChunkTest.java      | 34 ++++++++
 extensions-jvm/chunk/pom.xml                       | 40 +++++++++
 extensions-jvm/chunk/runtime/pom.xml               | 94 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 32 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom/pom.xml                                   | 15 ++++
 15 files changed, 508 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index e58c0c1..855dc89 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -95,6 +95,7 @@
             camel-quarkus-caffeine-lrucache
             camel-quarkus-cassandraql
             camel-quarkus-chatscript
+            camel-quarkus-chunk
             camel-quarkus-componentdsl
             camel-quarkus-consul
             camel-quarkus-controlbus
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index b794fc9..f4bf7d5 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -72,6 +72,7 @@
 *** xref:reference/extensions/caffeine-lrucache.adoc[Caffeine LRUCache]
 *** xref:reference/extensions/cassandraql.adoc[Cassandra CQL]
 *** xref:reference/extensions/chatscript.adoc[ChatScript]
+*** xref:reference/extensions/chunk.adoc[Chunk]
 *** xref:reference/extensions/core-cloud.adoc[Cloud]
 *** xref:reference/extensions/componentdsl.adoc[Component DSL]
 *** xref:reference/extensions/consul.adoc[Consul]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 1bf8330..9250b53 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -196,6 +196,9 @@ Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrif
 | xref:reference/extensions/chatscript.adoc[ChatScript] | [.camel-element-artifact]##camel-quarkus-chatscript## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Chat with a ChatScript Server.
 
+| xref:reference/extensions/chunk.adoc[Chunk] | [.camel-element-artifact]##camel-quarkus-chunk## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Transform messages using Chunk templating engine.
+
 | xref:reference/extensions/bean.adoc[Class] | [.camel-element-artifact]##camel-quarkus-bean## | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Invoke methods of Java beans specified by class name.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/chunk.adoc b/docs/modules/ROOT/pages/reference/extensions/chunk.adoc
new file mode 100644
index 0000000..62737e4
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/chunk.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[chunk]]
+= Chunk
+:page-aliases: extensions/chunk.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Transform messages using Chunk templating engine.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/chunk-component.html[Chunk component], URI syntax: `chunk:resourceUri`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-chunk</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index b86757d..56ee5e5 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -194,6 +194,9 @@ Preview | 1.0.0 | Integrate with Cassandra 2.0 using the CQL3 API (not the Thrif
 |  xref:reference/extensions/chatscript.adoc[ChatScript]  | camel-quarkus-chatscript | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Chat with a ChatScript Server.
 
+|  xref:reference/extensions/chunk.adoc[Chunk]  | camel-quarkus-chunk | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Transform messages using Chunk templating engine.
+
 |  xref:reference/extensions/core-cloud.adoc[Cloud]  | camel-quarkus-core-cloud | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | The Camel Quarkus core cloud module
 
diff --git a/extensions-jvm/chunk/deployment/pom.xml b/extensions-jvm/chunk/deployment/pom.xml
new file mode 100644
index 0000000..b66663b
--- /dev/null
+++ b/extensions-jvm/chunk/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-chunk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chunk-deployment</artifactId>
+    <name>Camel Quarkus :: Chunk :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-chunk</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/chunk/deployment/src/main/java/org/apache/camel/quarkus/component/chunk/deployment/ChunkProcessor.java b/extensions-jvm/chunk/deployment/src/main/java/org/apache/camel/quarkus/component/chunk/deployment/ChunkProcessor.java
new file mode 100644
index 0000000..2b9fe5f
--- /dev/null
+++ b/extensions-jvm/chunk/deployment/src/main/java/org/apache/camel/quarkus/component/chunk/deployment/ChunkProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.chunk.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
+
+class ChunkProcessor {
+
+    private static final Logger LOG = Logger.getLogger(ChunkProcessor.class);
+    private static final String FEATURE = "camel-chunk";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+}
diff --git a/extensions-jvm/chunk/integration-test/pom.xml b/extensions-jvm/chunk/integration-test/pom.xml
new file mode 100644
index 0000000..09319c9
--- /dev/null
+++ b/extensions-jvm/chunk/integration-test/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chunk-integration-test</artifactId>
+    <name>Camel Quarkus :: Chunk :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Chunk extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/mvndaemon/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 the rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-chunk-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-chunk</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/chunk/integration-test/src/main/java/org/apache/camel/quarkus/component/chunk/it/ChunkResource.java b/extensions-jvm/chunk/integration-test/src/main/java/org/apache/camel/quarkus/component/chunk/it/ChunkResource.java
new file mode 100644
index 0000000..ed0c1b3
--- /dev/null
+++ b/extensions-jvm/chunk/integration-test/src/main/java/org/apache/camel/quarkus/component/chunk/it/ChunkResource.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.chunk.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("/chunk")
+@ApplicationScoped
+public class ChunkResource {
+
+    private static final Logger LOG = Logger.getLogger(ChunkResource.class);
+
+    private static final String COMPONENT_CHUNK = "chunk";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/chunk")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentChunk() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_CHUNK) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_CHUNK);
+        return Response.status(500, COMPONENT_CHUNK + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/chunk/integration-test/src/test/java/org/apache/camel/quarkus/component/chunk/it/ChunkTest.java b/extensions-jvm/chunk/integration-test/src/test/java/org/apache/camel/quarkus/component/chunk/it/ChunkTest.java
new file mode 100644
index 0000000..03ef4c9
--- /dev/null
+++ b/extensions-jvm/chunk/integration-test/src/test/java/org/apache/camel/quarkus/component/chunk/it/ChunkTest.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.chunk.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class ChunkTest {
+
+    @Test
+    public void loadComponentChunk() {
+        /* A simple autogenerated test */
+        RestAssured.get("/chunk/load/component/chunk")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/chunk/pom.xml b/extensions-jvm/chunk/pom.xml
new file mode 100644
index 0000000..94ef91f
--- /dev/null
+++ b/extensions-jvm/chunk/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chunk-parent</artifactId>
+    <name>Camel Quarkus :: Chunk</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/chunk/runtime/pom.xml b/extensions-jvm/chunk/runtime/pom.xml
new file mode 100644
index 0000000..4e9c1bf
--- /dev/null
+++ b/extensions-jvm/chunk/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-chunk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-chunk</artifactId>
+    <name>Camel Quarkus :: Chunk :: Runtime</name>
+    <description>Transform messages using Chunk templating engine.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-chunk</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/chunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/chunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..a499b67
--- /dev/null
+++ b/extensions-jvm/chunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel Chunk"
+description: "Transform messages using Chunk templating engine"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/chunk.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 2733fd7..30389a1 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -49,6 +49,7 @@
         <module>caffeine</module>
         <module>cassandraql</module>
         <module>chatscript</module>
+        <module>chunk</module>
         <module>couchbase</module>
         <module>debezium-mongodb</module>
         <module>dropbox</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index db098e1..db66228 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -508,6 +508,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-chunk</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-cloud</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1908,6 +1913,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-chunk</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-chunk-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-componentdsl</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 07/07: Browse JVM support

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

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

commit c5080ed077a73705529a40dd9fe139f8cf9bbe02
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Aug 24 21:22:48 2020 +0200

    Browse JVM support
---
 catalog/pom.xml                                    |  1 +
 docs/modules/ROOT/nav.adoc                         |  1 +
 docs/modules/ROOT/pages/reference/components.adoc  |  3 +
 .../ROOT/pages/reference/extensions/browse.adoc    | 29 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  3 +
 extensions-jvm/browse/deployment/pom.xml           | 63 ++++++++++++++
 .../browse/deployment/BrowseProcessor.java         | 46 +++++++++++
 extensions-jvm/browse/integration-test/pom.xml     | 95 ++++++++++++++++++++++
 .../component/browse/it/BrowseResource.java        | 51 ++++++++++++
 .../quarkus/component/browse/it/BrowseTest.java    | 34 ++++++++
 extensions-jvm/browse/pom.xml                      | 40 +++++++++
 extensions-jvm/browse/runtime/pom.xml              | 94 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml | 32 ++++++++
 extensions-jvm/pom.xml                             |  1 +
 poms/bom/pom.xml                                   | 15 ++++
 15 files changed, 508 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 855dc89..31c8ca2 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -91,6 +91,7 @@
             camel-quarkus-bonita
             camel-quarkus-box
             camel-quarkus-braintree
+            camel-quarkus-browse
             camel-quarkus-caffeine
             camel-quarkus-caffeine-lrucache
             camel-quarkus-cassandraql
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index f4bf7d5..97a3527 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -68,6 +68,7 @@
 *** xref:reference/extensions/bonita.adoc[Bonita]
 *** xref:reference/extensions/box.adoc[Box]
 *** xref:reference/extensions/braintree.adoc[Braintree]
+*** xref:reference/extensions/browse.adoc[Browse]
 *** xref:reference/extensions/caffeine.adoc[Caffeine Cache]
 *** xref:reference/extensions/caffeine-lrucache.adoc[Caffeine LRUCache]
 *** xref:reference/extensions/cassandraql.adoc[Cassandra CQL]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 9250b53..6f3d805 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -184,6 +184,9 @@ Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborati
 | xref:reference/extensions/braintree.adoc[Braintree] | [.camel-element-artifact]##camel-quarkus-braintree## | [.camel-element-Native]##Native## +
 Stable | 1.2.0 | Process payments using Braintree Payments.
 
+| xref:reference/extensions/browse.adoc[Browse] | [.camel-element-artifact]##camel-quarkus-browse## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Inspect the messages received on endpoints supporting BrowsableEndpoint.
+
 | xref:reference/extensions/caffeine.adoc[Caffeine Cache] | [.camel-element-artifact]##camel-quarkus-caffeine## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/browse.adoc b/docs/modules/ROOT/pages/reference/extensions/browse.adoc
new file mode 100644
index 0000000..bbadf43
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/browse.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[browse]]
+= Browse
+:page-aliases: extensions/browse.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Inspect the messages received on endpoints supporting BrowsableEndpoint.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/browse-component.html[Browse component], URI syntax: `browse:name`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-browse</artifactId>
+</dependency>
+----
+
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc
index 56ee5e5..ea1b295 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -182,6 +182,9 @@ Stable | 1.0.0 | Upload, download and manage files, folders, groups, collaborati
 |  xref:reference/extensions/braintree.adoc[Braintree]  | camel-quarkus-braintree | [.camel-element-Native]##Native## +
 Stable | 1.2.0 | Process payments using Braintree Payments.
 
+|  xref:reference/extensions/browse.adoc[Browse]  | camel-quarkus-browse | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Inspect the messages received on endpoints supporting BrowsableEndpoint.
+
 |  xref:reference/extensions/caffeine.adoc[Caffeine Cache]  | camel-quarkus-caffeine | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Perform caching operations using Caffeine Cache.
 
diff --git a/extensions-jvm/browse/deployment/pom.xml b/extensions-jvm/browse/deployment/pom.xml
new file mode 100644
index 0000000..3163145
--- /dev/null
+++ b/extensions-jvm/browse/deployment/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-browse-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-browse-deployment</artifactId>
+    <name>Camel Quarkus :: Browse :: Deployment</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-browse</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/browse/deployment/src/main/java/org/apache/camel/quarkus/component/browse/deployment/BrowseProcessor.java b/extensions-jvm/browse/deployment/src/main/java/org/apache/camel/quarkus/component/browse/deployment/BrowseProcessor.java
new file mode 100644
index 0000000..dabf2d8
--- /dev/null
+++ b/extensions-jvm/browse/deployment/src/main/java/org/apache/camel/quarkus/component/browse/deployment/BrowseProcessor.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.browse.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.jboss.logging.Logger;
+
+class BrowseProcessor {
+
+    private static final Logger LOG = Logger.getLogger(BrowseProcessor.class);
+    private static final String FEATURE = "camel-browse";
+
+    @BuildStep
+    FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+
+    /**
+     * Remove this once this extension starts supporting the native mode.
+     */
+    @BuildStep(onlyIf = NativeBuild.class)
+    @Record(value = ExecutionTime.RUNTIME_INIT)
+    void warnJvmInNative(JvmOnlyRecorder recorder) {
+        JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
+        recorder.warnJvmInNative(FEATURE); // warn at runtime
+    }
+}
diff --git a/extensions-jvm/browse/integration-test/pom.xml b/extensions-jvm/browse/integration-test/pom.xml
new file mode 100644
index 0000000..3ded449
--- /dev/null
+++ b/extensions-jvm/browse/integration-test/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-browse-integration-test</artifactId>
+    <name>Camel Quarkus :: Browse :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Browse extension</description>
+
+    <properties>
+        <!-- mvnd, a.k.a. Maven Daemon: https://github.com/mvndaemon/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 the rule whenever you change the dependencies of this module by running -->
+        <!--     mvn process-resources -Pformat    from the root directory -->
+        <mvnd.builder.rule>camel-quarkus-browse-deployment,camel-quarkus-support-policy-deployment</mvnd.builder.rule>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom-test</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-browse</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/browse/integration-test/src/main/java/org/apache/camel/quarkus/component/browse/it/BrowseResource.java b/extensions-jvm/browse/integration-test/src/main/java/org/apache/camel/quarkus/component/browse/it/BrowseResource.java
new file mode 100644
index 0000000..a6296a5
--- /dev/null
+++ b/extensions-jvm/browse/integration-test/src/main/java/org/apache/camel/quarkus/component/browse/it/BrowseResource.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.browse.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("/browse")
+@ApplicationScoped
+public class BrowseResource {
+
+    private static final Logger LOG = Logger.getLogger(BrowseResource.class);
+
+    private static final String COMPONENT_BROWSE = "browse";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/browse")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentBrowse() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_BROWSE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_BROWSE);
+        return Response.status(500, COMPONENT_BROWSE + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/browse/integration-test/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseTest.java b/extensions-jvm/browse/integration-test/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseTest.java
new file mode 100644
index 0000000..3de1e04
--- /dev/null
+++ b/extensions-jvm/browse/integration-test/src/test/java/org/apache/camel/quarkus/component/browse/it/BrowseTest.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.browse.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class BrowseTest {
+
+    @Test
+    public void loadComponentBrowse() {
+        /* A simple autogenerated test */
+        RestAssured.get("/browse/load/component/browse")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/browse/pom.xml b/extensions-jvm/browse/pom.xml
new file mode 100644
index 0000000..011839e
--- /dev/null
+++ b/extensions-jvm/browse/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../../poms/build-parent/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-browse-parent</artifactId>
+    <name>Camel Quarkus :: Browse</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/browse/runtime/pom.xml b/extensions-jvm/browse/runtime/pom.xml
new file mode 100644
index 0000000..6fd7ede
--- /dev/null
+++ b/extensions-jvm/browse/runtime/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-browse-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-browse</artifactId>
+    <name>Camel Quarkus :: Browse :: Runtime</name>
+    <description>Inspect the messages received on endpoints supporting BrowsableEndpoint.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-browse</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>update-extension-doc-page</id>
+                        <goals><goal>update-extension-doc-page</goal></goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            <artifactId>quarkus-extension-processor</artifactId>
+                            <version>${quarkus.version}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/extensions-jvm/browse/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/browse/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..a92b325
--- /dev/null
+++ b/extensions-jvm/browse/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This is a generated file. Do not edit directly!
+# To re-generate, run the following command from the top level directory:
+#
+#   mvn -N cq:update-quarkus-metadata
+#
+---
+name: "Camel Browse"
+description: "Inspect the messages received on endpoints supporting BrowsableEndpoint"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/browse.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 30389a1..96cdfdb 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -46,6 +46,7 @@
         <module>azure-storage-queue</module>
         <module>beanstalk</module>
         <module>bonita</module>
+        <module>browse</module>
         <module>caffeine</module>
         <module>cassandraql</module>
         <module>chatscript</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index db66228..39d9b17 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -483,6 +483,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-browse</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-caffeine</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -1873,6 +1878,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-browse</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-browse-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-caffeine</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>