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/09/08 15:23:52 UTC

[camel-quarkus] branch master updated (d608273 -> 41bbaae)

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 d608273  Fix lingering runing->running typo
     new 6af250c  JT400 JVM support
     new ccc2597  JSLT JVM support
     new c1e793f  Jing JVM support
     new a16cfca  JCR JVM support
     new 41bbaae  JClouds JVM support

The 5 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:
 catalog/pom.xml                                    | 65 +++++++++++++++++
 docs/modules/ROOT/nav.adoc                         |  5 ++
 docs/modules/ROOT/pages/reference/components.adoc  | 15 ++++
 .../extensions/{hipchat.adoc => jclouds.adoc}      | 12 ++--
 .../reference/extensions/{dns.adoc => jcr.adoc}    | 12 ++--
 .../reference/extensions/{atmos.adoc => jing.adoc} | 12 ++--
 .../reference/extensions/{dns.adoc => jslt.adoc}   | 12 ++--
 .../reference/extensions/{apns.adoc => jt400.adoc} | 12 ++--
 docs/modules/ROOT/pages/reference/index.adoc       | 15 ++++
 .../{bonita => jclouds}/deployment/pom.xml         |  8 +--
 .../jclouds/deployment/JcloudsProcessor.java}      |  8 +--
 .../{printer => jclouds}/integration-test/pom.xml  | 10 +--
 .../component/jclouds/it/JcloudsResource.java}     | 20 +++---
 .../quarkus/component/jclouds/it/JcloudsTest.java} |  8 +--
 extensions-jvm/{atom => jclouds}/pom.xml           |  4 +-
 extensions-jvm/{atmos => jclouds}/runtime/pom.xml  | 18 +++--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{irc => jcr}/deployment/pom.xml     |  8 +--
 .../component/jcr/deployment/JcrProcessor.java}    |  8 +--
 .../{nsq => jcr}/integration-test/pom.xml          | 10 +--
 .../quarkus/component/jcr/it/JcrResource.java}     | 20 +++---
 .../camel/quarkus/component/jcr/it/JcrTest.java}   |  8 +--
 extensions-jvm/{dns => jcr}/pom.xml                |  4 +-
 extensions-jvm/{atomix => jcr}/runtime/pom.xml     | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => jing}/deployment/pom.xml   |  8 +--
 .../component/jing/deployment/JingProcessor.java}  |  8 +--
 .../{ldap => jing}/integration-test/pom.xml        | 10 +--
 .../quarkus/component/jing/it/JingResource.java}   | 20 +++---
 .../camel/quarkus/component/jing/it/JingTest.java} |  8 +--
 extensions-jvm/{atom => jing}/pom.xml              |  4 +-
 extensions-jvm/{atomix => jing}/runtime/pom.xml    | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => jslt}/deployment/pom.xml   |  8 +--
 .../component/jslt/deployment/JsltProcessor.java}  |  8 +--
 .../{ldap => jslt}/integration-test/pom.xml        | 10 +--
 .../quarkus/component/jslt/it/JsltResource.java}   | 20 +++---
 .../camel/quarkus/component/jslt/it/JsltTest.java} |  8 +--
 extensions-jvm/{atom => jslt}/pom.xml              |  4 +-
 extensions-jvm/{irc => jslt}/runtime/pom.xml       | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => jt400}/deployment/pom.xml  |  8 +--
 .../jt400/deployment/Jt400Processor.java}          |  8 +--
 .../{saxon => jt400}/integration-test/pom.xml      | 10 +--
 .../quarkus/component/jt400/it/Jt400Resource.java} | 20 +++---
 .../quarkus/component/jt400/it/Jt400Test.java}     |  8 +--
 extensions-jvm/{atom => jt400}/pom.xml             |  4 +-
 extensions-jvm/{apns => jt400}/runtime/pom.xml     | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/pom.xml                             |  5 ++
 poms/bom/pom.xml                                   | 81 ++++++++++++++++++++++
 51 files changed, 408 insertions(+), 216 deletions(-)
 copy docs/modules/ROOT/pages/reference/extensions/{hipchat.adoc => jclouds.adoc} (67%)
 copy docs/modules/ROOT/pages/reference/extensions/{dns.adoc => jcr.adoc} (69%)
 copy docs/modules/ROOT/pages/reference/extensions/{atmos.adoc => jing.adoc} (66%)
 copy docs/modules/ROOT/pages/reference/extensions/{dns.adoc => jslt.adoc} (70%)
 copy docs/modules/ROOT/pages/reference/extensions/{apns.adoc => jt400.adoc} (60%)
 copy extensions-jvm/{bonita => jclouds}/deployment/pom.xml (90%)
 copy extensions-jvm/{ehcache/deployment/src/main/java/org/apache/camel/quarkus/component/ehcache/deployment/EhcacheProcessor.java => jclouds/deployment/src/main/java/org/apache/camel/quarkus/component/jclouds/deployment/JcloudsProcessor.java} (88%)
 copy extensions-jvm/{printer => jclouds}/integration-test/pom.xml (91%)
 copy extensions-jvm/{ehcache/integration-test/src/main/java/org/apache/camel/quarkus/component/ehcache/it/EhcacheResource.java => jclouds/integration-test/src/main/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsResource.java} (75%)
 copy extensions-jvm/{apns/integration-test/src/test/java/org/apache/camel/quarkus/component/apns/it/ApnsTest.java => jclouds/integration-test/src/test/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsTest.java} (85%)
 copy extensions-jvm/{atom => jclouds}/pom.xml (93%)
 copy extensions-jvm/{atmos => jclouds}/runtime/pom.xml (84%)
 copy extensions-jvm/{hipchat => jclouds}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (90%)
 copy extensions-jvm/{irc => jcr}/deployment/pom.xml (91%)
 copy extensions-jvm/{djl/deployment/src/main/java/org/apache/camel/quarkus/component/djl/deployment/DjlProcessor.java => jcr/deployment/src/main/java/org/apache/camel/quarkus/component/jcr/deployment/JcrProcessor.java} (89%)
 copy extensions-jvm/{nsq => jcr}/integration-test/pom.xml (92%)
 copy extensions-jvm/{irc/integration-test/src/main/java/org/apache/camel/quarkus/component/irc/it/IrcResource.java => jcr/integration-test/src/main/java/org/apache/camel/quarkus/component/jcr/it/JcrResource.java} (76%)
 copy extensions-jvm/{djl/integration-test/src/test/java/org/apache/camel/quarkus/component/djl/it/DjlTest.java => jcr/integration-test/src/test/java/org/apache/camel/quarkus/component/jcr/it/JcrTest.java} (87%)
 copy extensions-jvm/{dns => jcr}/pom.xml (94%)
 copy extensions-jvm/{atomix => jcr}/runtime/pom.xml (91%)
 copy extensions-jvm/{apns => jcr}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (90%)
 copy extensions-jvm/{apns => jing}/deployment/pom.xml (90%)
 copy extensions-jvm/{saxon/deployment/src/main/java/org/apache/camel/quarkus/component/saxon/deployment/SaxonProcessor.java => jing/deployment/src/main/java/org/apache/camel/quarkus/component/jing/deployment/JingProcessor.java} (89%)
 copy extensions-jvm/{ldap => jing}/integration-test/pom.xml (91%)
 copy extensions-jvm/{cmis/integration-test/src/main/java/org/apache/camel/quarkus/component/cmis/it/CmisResource.java => jing/integration-test/src/main/java/org/apache/camel/quarkus/component/jing/it/JingResource.java} (76%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => jing/integration-test/src/test/java/org/apache/camel/quarkus/component/jing/it/JingTest.java} (86%)
 copy extensions-jvm/{atom => jing}/pom.xml (94%)
 copy extensions-jvm/{atomix => jing}/runtime/pom.xml (91%)
 copy extensions-jvm/{apns => jing}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (88%)
 copy extensions-jvm/{apns => jslt}/deployment/pom.xml (90%)
 copy extensions-jvm/{cmis/deployment/src/main/java/org/apache/camel/quarkus/component/cmis/deployment/CmisProcessor.java => jslt/deployment/src/main/java/org/apache/camel/quarkus/component/jslt/deployment/JsltProcessor.java} (89%)
 copy extensions-jvm/{ldap => jslt}/integration-test/pom.xml (91%)
 copy extensions-jvm/{cmis/integration-test/src/main/java/org/apache/camel/quarkus/component/cmis/it/CmisResource.java => jslt/integration-test/src/main/java/org/apache/camel/quarkus/component/jslt/it/JsltResource.java} (76%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => jslt/integration-test/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltTest.java} (86%)
 copy extensions-jvm/{atom => jslt}/pom.xml (94%)
 copy extensions-jvm/{irc => jslt}/runtime/pom.xml (92%)
 copy extensions-jvm/{apns => jslt}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)
 copy extensions-jvm/{apns => jt400}/deployment/pom.xml (90%)
 copy extensions-jvm/{chunk/deployment/src/main/java/org/apache/camel/quarkus/component/chunk/deployment/ChunkProcessor.java => jt400/deployment/src/main/java/org/apache/camel/quarkus/component/jt400/deployment/Jt400Processor.java} (88%)
 copy extensions-jvm/{saxon => jt400}/integration-test/pom.xml (91%)
 copy extensions-jvm/{atmos/integration-test/src/main/java/org/apache/camel/quarkus/component/atmos/it/AtmosResource.java => jt400/integration-test/src/main/java/org/apache/camel/quarkus/component/jt400/it/Jt400Resource.java} (75%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => jt400/integration-test/src/test/java/org/apache/camel/quarkus/component/jt400/it/Jt400Test.java} (86%)
 copy extensions-jvm/{atom => jt400}/pom.xml (94%)
 copy extensions-jvm/{apns => jt400}/runtime/pom.xml (89%)
 copy extensions-jvm/{apns => jt400}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (84%)


[camel-quarkus] 05/05: JClouds 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 41bbaae00c6e47017e18ea4545cc47931621bb0b
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Sep 8 13:53:28 2020 +0200

    JClouds JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/jclouds.adoc   |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/jclouds/deployment/pom.xml          |  63 +++++++++++++
 .../jclouds/deployment/JcloudsProcessor.java       |  46 +++++++++
 extensions-jvm/jclouds/integration-test/pom.xml    | 100 ++++++++++++++++++++
 .../component/jclouds/it/JcloudsResource.java      |  51 ++++++++++
 .../quarkus/component/jclouds/it/JcloudsTest.java  |  34 +++++++
 extensions-jvm/jclouds/pom.xml                     |  40 ++++++++
 extensions-jvm/jclouds/runtime/pom.xml             | 105 +++++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/pom.xml                             |   1 +
 poms/bom/pom.xml                                   |  21 +++++
 15 files changed, 542 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 512e683..4cd5d61 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1830,6 +1830,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jclouds</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-jcr</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index ce2a0e1..7d74778 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -150,6 +150,7 @@
 *** xref:reference/extensions/websocket-jsr356.adoc[Javax Websocket]
 *** xref:reference/extensions/jaxb.adoc[JAXB]
 *** xref:reference/extensions/jbpm.adoc[JBPM]
+*** xref:reference/extensions/jclouds.adoc[JClouds]
 *** xref:reference/extensions/jcr.adoc[JCR]
 *** xref:reference/extensions/jdbc.adoc[JDBC]
 *** xref:reference/extensions/jing.adoc[Jing]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index ce0bcd3..5caddac 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -472,6 +472,9 @@ Stable | 1.0.0 | Expose websocket endpoints using JSR356.
 | xref:reference/extensions/jbpm.adoc[JBPM] | [.camel-element-artifact]##camel-quarkus-jbpm## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with jBPM workflow engine over REST.
 
+| xref:reference/extensions/jclouds.adoc[JClouds] | [.camel-element-artifact]##camel-quarkus-jclouds## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Interact with jclouds compute & blobstore service.
+
 | xref:reference/extensions/jcr.adoc[JCR] | [.camel-element-artifact]##camel-quarkus-jcr## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Read and write nodes to/from a JCR compliant content repository.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/jclouds.adoc b/docs/modules/ROOT/pages/reference/extensions/jclouds.adoc
new file mode 100644
index 0000000..dcfe547
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/jclouds.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[jclouds]]
+= JClouds
+:page-aliases: extensions/jclouds.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Interact with jclouds compute & blobstore service.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/jclouds-component.html[JClouds component], URI syntax: `jclouds:command:providerId`
+
+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-jclouds</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 1b510ce..702647f 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -428,6 +428,9 @@ Stable | 1.0.0 | Unmarshal XML payloads to POJOs and back using JAXB2 XML marsha
 |  xref:reference/extensions/jbpm.adoc[JBPM]  | camel-quarkus-jbpm | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with jBPM workflow engine over REST.
 
+|  xref:reference/extensions/jclouds.adoc[JClouds]  | camel-quarkus-jclouds | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Interact with jclouds compute & blobstore service.
+
 |  xref:reference/extensions/jcr.adoc[JCR]  | camel-quarkus-jcr | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Read and write nodes to/from a JCR compliant content repository.
 
diff --git a/extensions-jvm/jclouds/deployment/pom.xml b/extensions-jvm/jclouds/deployment/pom.xml
new file mode 100644
index 0000000..a2608a3
--- /dev/null
+++ b/extensions-jvm/jclouds/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-jclouds-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jclouds-deployment</artifactId>
+    <name>Camel Quarkus :: JClouds :: 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-jclouds</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/jclouds/deployment/src/main/java/org/apache/camel/quarkus/component/jclouds/deployment/JcloudsProcessor.java b/extensions-jvm/jclouds/deployment/src/main/java/org/apache/camel/quarkus/component/jclouds/deployment/JcloudsProcessor.java
new file mode 100644
index 0000000..26317fd
--- /dev/null
+++ b/extensions-jvm/jclouds/deployment/src/main/java/org/apache/camel/quarkus/component/jclouds/deployment/JcloudsProcessor.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.jclouds.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 JcloudsProcessor {
+
+    private static final Logger LOG = Logger.getLogger(JcloudsProcessor.class);
+    private static final String FEATURE = "camel-jclouds";
+
+    @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/jclouds/integration-test/pom.xml b/extensions-jvm/jclouds/integration-test/pom.xml
new file mode 100644
index 0000000..ece637a
--- /dev/null
+++ b/extensions-jvm/jclouds/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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-jclouds-integration-test</artifactId>
+    <name>Camel Quarkus :: JClouds :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus JClouds extension</description>
+
+    <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-jclouds</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>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jclouds-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </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/jclouds/integration-test/src/main/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsResource.java b/extensions-jvm/jclouds/integration-test/src/main/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsResource.java
new file mode 100644
index 0000000..6f855b4
--- /dev/null
+++ b/extensions-jvm/jclouds/integration-test/src/main/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsResource.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.jclouds.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("/jclouds")
+@ApplicationScoped
+public class JcloudsResource {
+
+    private static final Logger LOG = Logger.getLogger(JcloudsResource.class);
+
+    private static final String COMPONENT_JCLOUDS = "jclouds";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/jclouds")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentJclouds() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_JCLOUDS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_JCLOUDS);
+        return Response.status(500, COMPONENT_JCLOUDS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/jclouds/integration-test/src/test/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsTest.java b/extensions-jvm/jclouds/integration-test/src/test/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsTest.java
new file mode 100644
index 0000000..10ab88b
--- /dev/null
+++ b/extensions-jvm/jclouds/integration-test/src/test/java/org/apache/camel/quarkus/component/jclouds/it/JcloudsTest.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.jclouds.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class JcloudsTest {
+
+    @Test
+    public void loadComponentJclouds() {
+        /* A simple autogenerated test */
+        RestAssured.get("/jclouds/load/component/jclouds")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/jclouds/pom.xml b/extensions-jvm/jclouds/pom.xml
new file mode 100644
index 0000000..5acd64e
--- /dev/null
+++ b/extensions-jvm/jclouds/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-jclouds-parent</artifactId>
+    <name>Camel Quarkus :: JClouds</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/jclouds/runtime/pom.xml b/extensions-jvm/jclouds/runtime/pom.xml
new file mode 100644
index 0000000..88f8ce8
--- /dev/null
+++ b/extensions-jvm/jclouds/runtime/pom.xml
@@ -0,0 +1,105 @@
+<?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-jclouds-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jclouds</artifactId>
+    <name>Camel Quarkus :: JClouds :: Runtime</name>
+    <description>Interact with jclouds compute &amp; blobstore service.</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-jclouds</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.inject</groupId>
+                    <artifactId>guice</artifactId><!-- Should always be available via Quarkus tooling -->
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <!-- Replacement for javax.ws.rs:javax.ws.rs-api pulled by camel-jclouds -->
+            <groupId>org.jboss.spec.javax.ws.rs</groupId>
+            <artifactId>jboss-jaxrs-api_2.1_spec</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/jclouds/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/jclouds/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..55b8c5b
--- /dev/null
+++ b/extensions-jvm/jclouds/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 JClouds"
+description: "Interact with jclouds compute & blobstore service"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/jclouds.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index b2c95d2..bd47c73 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -85,6 +85,7 @@
         <module>ipfs</module>
         <module>irc</module>
         <module>jbpm</module>
+        <module>jclouds</module>
         <module>jcr</module>
         <module>jing</module>
         <module>jooq</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index a77f305..b79b9fc 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1014,6 +1014,17 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jclouds</artifactId>
+                <version>${camel.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.ws.rs</groupId>
+                        <artifactId>javax.ws.rs-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jcr</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3211,6 +3222,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jclouds</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jclouds-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jcr</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/05: JT400 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 6af250c17272a72d3457343e0a291941fc191057
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Sep 8 13:38:11 2020 +0200

    JT400 JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/jt400.adoc     |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/jt400/deployment/pom.xml            |  63 +++++++++++++
 .../component/jt400/deployment/Jt400Processor.java |  46 ++++++++++
 extensions-jvm/jt400/integration-test/pom.xml      | 100 +++++++++++++++++++++
 .../quarkus/component/jt400/it/Jt400Resource.java  |  51 +++++++++++
 .../quarkus/component/jt400/it/Jt400Test.java      |  34 +++++++
 extensions-jvm/jt400/pom.xml                       |  40 +++++++++
 extensions-jvm/jt400/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, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 0c685c8..9458c09 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1960,6 +1960,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jt400</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-jta</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 6516dfb..4719dc0 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -161,6 +161,7 @@
 *** xref:reference/extensions/johnzon.adoc[JSON Johnzon]
 *** xref:reference/extensions/json-validator.adoc[JSON Schema Validator]
 *** xref:reference/extensions/jsonpath.adoc[JsonPath]
+*** xref:reference/extensions/jt400.adoc[JT400]
 *** xref:reference/extensions/jta.adoc[JTA]
 *** xref:reference/extensions/kafka.adoc[Kafka]
 *** xref:reference/extensions/kotlin.adoc[Kotlin]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 281d2a0..0bd2d2b 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -493,6 +493,9 @@ Stable | 1.0.0 | Store and retrieve Java objects from databases using Java Persi
 | xref:reference/extensions/json-validator.adoc[JSON Schema Validator] | [.camel-element-artifact]##camel-quarkus-json-validator## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Validate JSON payloads using NetworkNT JSON Schema.
 
+| xref:reference/extensions/jt400.adoc[JT400] | [.camel-element-artifact]##camel-quarkus-jt400## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers.
+
 | xref:reference/extensions/kafka.adoc[Kafka] | [.camel-element-artifact]##camel-quarkus-kafka## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Sent and receive messages to/from an Apache Kafka broker.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/jt400.adoc b/docs/modules/ROOT/pages/reference/extensions/jt400.adoc
new file mode 100644
index 0000000..ac82c89
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/jt400.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[jt400]]
+= JT400
+:page-aliases: extensions/jt400.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/jt400-component.html[JT400 component], URI syntax: `jt400:userID:password/systemName/objectPath.type`
+
+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-jt400</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 e800b02..61f0ce2 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -461,6 +461,9 @@ Stable | 1.0.0 | Validate JSON payloads using NetworkNT JSON Schema.
 |  xref:reference/extensions/jsonpath.adoc[JsonPath]  | camel-quarkus-jsonpath | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Evaluate a JsonPath expression against a JSON message body.
 
+|  xref:reference/extensions/jt400.adoc[JT400]  | camel-quarkus-jt400 | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers.
+
 |  xref:reference/extensions/jta.adoc[JTA]  | camel-quarkus-jta | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Using Camel With JTA Transaction Manager
 
diff --git a/extensions-jvm/jt400/deployment/pom.xml b/extensions-jvm/jt400/deployment/pom.xml
new file mode 100644
index 0000000..0dd6f02
--- /dev/null
+++ b/extensions-jvm/jt400/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-jt400-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jt400-deployment</artifactId>
+    <name>Camel Quarkus :: JT400 :: 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-jt400</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/jt400/deployment/src/main/java/org/apache/camel/quarkus/component/jt400/deployment/Jt400Processor.java b/extensions-jvm/jt400/deployment/src/main/java/org/apache/camel/quarkus/component/jt400/deployment/Jt400Processor.java
new file mode 100644
index 0000000..5c49d44
--- /dev/null
+++ b/extensions-jvm/jt400/deployment/src/main/java/org/apache/camel/quarkus/component/jt400/deployment/Jt400Processor.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.jt400.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 Jt400Processor {
+
+    private static final Logger LOG = Logger.getLogger(Jt400Processor.class);
+    private static final String FEATURE = "camel-jt400";
+
+    @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/jt400/integration-test/pom.xml b/extensions-jvm/jt400/integration-test/pom.xml
new file mode 100644
index 0000000..f210054
--- /dev/null
+++ b/extensions-jvm/jt400/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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-jt400-integration-test</artifactId>
+    <name>Camel Quarkus :: JT400 :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus JT400 extension</description>
+
+    <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-jt400</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>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jt400-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </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/jt400/integration-test/src/main/java/org/apache/camel/quarkus/component/jt400/it/Jt400Resource.java b/extensions-jvm/jt400/integration-test/src/main/java/org/apache/camel/quarkus/component/jt400/it/Jt400Resource.java
new file mode 100644
index 0000000..ea43227
--- /dev/null
+++ b/extensions-jvm/jt400/integration-test/src/main/java/org/apache/camel/quarkus/component/jt400/it/Jt400Resource.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.jt400.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("/jt400")
+@ApplicationScoped
+public class Jt400Resource {
+
+    private static final Logger LOG = Logger.getLogger(Jt400Resource.class);
+
+    private static final String COMPONENT_JT400 = "jt400";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/jt400")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentJt400() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_JT400) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_JT400);
+        return Response.status(500, COMPONENT_JT400 + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/jt400/integration-test/src/test/java/org/apache/camel/quarkus/component/jt400/it/Jt400Test.java b/extensions-jvm/jt400/integration-test/src/test/java/org/apache/camel/quarkus/component/jt400/it/Jt400Test.java
new file mode 100644
index 0000000..9d3d93b
--- /dev/null
+++ b/extensions-jvm/jt400/integration-test/src/test/java/org/apache/camel/quarkus/component/jt400/it/Jt400Test.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.jt400.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class Jt400Test {
+
+    @Test
+    public void loadComponentJt400() {
+        /* A simple autogenerated test */
+        RestAssured.get("/jt400/load/component/jt400")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/jt400/pom.xml b/extensions-jvm/jt400/pom.xml
new file mode 100644
index 0000000..7e645c4
--- /dev/null
+++ b/extensions-jvm/jt400/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-jt400-parent</artifactId>
+    <name>Camel Quarkus :: JT400</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/jt400/runtime/pom.xml b/extensions-jvm/jt400/runtime/pom.xml
new file mode 100644
index 0000000..6813b84
--- /dev/null
+++ b/extensions-jvm/jt400/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-jt400-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jt400</artifactId>
+    <name>Camel Quarkus :: JT400 :: Runtime</name>
+    <description>Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers.</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-jt400</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/jt400/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/jt400/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..0c75331
--- /dev/null
+++ b/extensions-jvm/jt400/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 JT400"
+description: "Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/jt400.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 26e81cb..e2dfa4b 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -87,6 +87,7 @@
         <module>jbpm</module>
         <module>jooq</module>
         <module>jsch</module>
+        <module>jt400</module>
         <module>language</module>
         <module>ldap</module>
         <module>ldif</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 6904964..7c2453a 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1098,6 +1098,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jt400</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jta</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3286,6 +3291,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jt400</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jt400-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jta</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 03/05: Jing 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 c1e793fc72513b3d2dd441eff71cd70f17b756a7
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Sep 8 13:45:33 2020 +0200

    Jing JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/jing.adoc      |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/jing/deployment/pom.xml             |  63 +++++++++++++
 .../component/jing/deployment/JingProcessor.java   |  46 ++++++++++
 extensions-jvm/jing/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/jing/it/JingResource.java    |  51 +++++++++++
 .../camel/quarkus/component/jing/it/JingTest.java  |  34 +++++++
 extensions-jvm/jing/pom.xml                        |  40 +++++++++
 extensions-jvm/jing/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, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 0760482..8f7d8e0 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1843,6 +1843,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jing</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-jira</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 781f6a9..a452299 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -151,6 +151,7 @@
 *** xref:reference/extensions/jaxb.adoc[JAXB]
 *** xref:reference/extensions/jbpm.adoc[JBPM]
 *** xref:reference/extensions/jdbc.adoc[JDBC]
+*** xref:reference/extensions/jing.adoc[Jing]
 *** xref:reference/extensions/jira.adoc[Jira]
 *** xref:reference/extensions/jms.adoc[JMS]
 *** xref:reference/extensions/jolt.adoc[JOLT]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 2630d08..f6b9d15 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -475,6 +475,9 @@ Preview | 1.1.0 | Interact with jBPM workflow engine over REST.
 | xref:reference/extensions/jdbc.adoc[JDBC] | [.camel-element-artifact]##camel-quarkus-jdbc## | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Access databases through SQL and JDBC.
 
+| xref:reference/extensions/jing.adoc[Jing] | [.camel-element-artifact]##camel-quarkus-jing## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.
+
 | xref:reference/extensions/jira.adoc[Jira] | [.camel-element-artifact]##camel-quarkus-jira## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Interact with JIRA issue tracker.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/jing.adoc b/docs/modules/ROOT/pages/reference/extensions/jing.adoc
new file mode 100644
index 0000000..df9cd4e
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/jing.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[jing]]
+= Jing
+:page-aliases: extensions/jing.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/jing-component.html[Jing component], URI syntax: `jing: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-jing</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 d5f44a5..ce8b73a 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -431,6 +431,9 @@ Preview | 1.1.0 | Interact with jBPM workflow engine over REST.
 |  xref:reference/extensions/jdbc.adoc[JDBC]  | camel-quarkus-jdbc | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Access databases through SQL and JDBC.
 
+|  xref:reference/extensions/jing.adoc[Jing]  | camel-quarkus-jing | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.
+
 |  xref:reference/extensions/jira.adoc[Jira]  | camel-quarkus-jira | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Interact with JIRA issue tracker.
 
diff --git a/extensions-jvm/jing/deployment/pom.xml b/extensions-jvm/jing/deployment/pom.xml
new file mode 100644
index 0000000..862cda7
--- /dev/null
+++ b/extensions-jvm/jing/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-jing-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jing-deployment</artifactId>
+    <name>Camel Quarkus :: Jing :: 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-jing</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/jing/deployment/src/main/java/org/apache/camel/quarkus/component/jing/deployment/JingProcessor.java b/extensions-jvm/jing/deployment/src/main/java/org/apache/camel/quarkus/component/jing/deployment/JingProcessor.java
new file mode 100644
index 0000000..6a68bbe
--- /dev/null
+++ b/extensions-jvm/jing/deployment/src/main/java/org/apache/camel/quarkus/component/jing/deployment/JingProcessor.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.jing.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 JingProcessor {
+
+    private static final Logger LOG = Logger.getLogger(JingProcessor.class);
+    private static final String FEATURE = "camel-jing";
+
+    @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/jing/integration-test/pom.xml b/extensions-jvm/jing/integration-test/pom.xml
new file mode 100644
index 0000000..37d599e
--- /dev/null
+++ b/extensions-jvm/jing/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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-jing-integration-test</artifactId>
+    <name>Camel Quarkus :: Jing :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Jing extension</description>
+
+    <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-jing</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>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jing-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </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/jing/integration-test/src/main/java/org/apache/camel/quarkus/component/jing/it/JingResource.java b/extensions-jvm/jing/integration-test/src/main/java/org/apache/camel/quarkus/component/jing/it/JingResource.java
new file mode 100644
index 0000000..e0c0ce5
--- /dev/null
+++ b/extensions-jvm/jing/integration-test/src/main/java/org/apache/camel/quarkus/component/jing/it/JingResource.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.jing.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("/jing")
+@ApplicationScoped
+public class JingResource {
+
+    private static final Logger LOG = Logger.getLogger(JingResource.class);
+
+    private static final String COMPONENT_JING = "jing";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/jing")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentJing() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_JING) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_JING);
+        return Response.status(500, COMPONENT_JING + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/jing/integration-test/src/test/java/org/apache/camel/quarkus/component/jing/it/JingTest.java b/extensions-jvm/jing/integration-test/src/test/java/org/apache/camel/quarkus/component/jing/it/JingTest.java
new file mode 100644
index 0000000..35b7969
--- /dev/null
+++ b/extensions-jvm/jing/integration-test/src/test/java/org/apache/camel/quarkus/component/jing/it/JingTest.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.jing.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class JingTest {
+
+    @Test
+    public void loadComponentJing() {
+        /* A simple autogenerated test */
+        RestAssured.get("/jing/load/component/jing")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/jing/pom.xml b/extensions-jvm/jing/pom.xml
new file mode 100644
index 0000000..9657215
--- /dev/null
+++ b/extensions-jvm/jing/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-jing-parent</artifactId>
+    <name>Camel Quarkus :: Jing</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/jing/runtime/pom.xml b/extensions-jvm/jing/runtime/pom.xml
new file mode 100644
index 0000000..8af586e
--- /dev/null
+++ b/extensions-jvm/jing/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-jing-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jing</artifactId>
+    <name>Camel Quarkus :: Jing :: Runtime</name>
+    <description>Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.</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-jing</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/jing/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/jing/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..910602e
--- /dev/null
+++ b/extensions-jvm/jing/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 Jing"
+description: "Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/jing.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 5e2142e..04896e6 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -85,6 +85,7 @@
         <module>ipfs</module>
         <module>irc</module>
         <module>jbpm</module>
+        <module>jing</module>
         <module>jooq</module>
         <module>jsch</module>
         <module>jslt</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 20772b0..ae6caf4 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1019,6 +1019,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jing</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jira</artifactId>
                 <version>${camel.version}</version>
                 <exclusions>
@@ -3211,6 +3216,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jing</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jing-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jira</artifactId>
                 <version>${project.version}</version>
             </dependency>


[camel-quarkus] 04/05: JCR 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 a16cfca38285e85fd532069cb4c8e053a6c19d56
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Sep 8 13:52:30 2020 +0200

    JCR JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/jcr.adoc       |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/jcr/deployment/pom.xml              |  63 +++++++++++++
 .../component/jcr/deployment/JcrProcessor.java     |  46 ++++++++++
 extensions-jvm/jcr/integration-test/pom.xml        | 100 +++++++++++++++++++++
 .../quarkus/component/jcr/it/JcrResource.java      |  51 +++++++++++
 .../camel/quarkus/component/jcr/it/JcrTest.java    |  34 +++++++
 extensions-jvm/jcr/pom.xml                         |  40 +++++++++
 extensions-jvm/jcr/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, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 8f7d8e0..512e683 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1830,6 +1830,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jcr</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-jdbc</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index a452299..ce2a0e1 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -150,6 +150,7 @@
 *** xref:reference/extensions/websocket-jsr356.adoc[Javax Websocket]
 *** xref:reference/extensions/jaxb.adoc[JAXB]
 *** xref:reference/extensions/jbpm.adoc[JBPM]
+*** xref:reference/extensions/jcr.adoc[JCR]
 *** xref:reference/extensions/jdbc.adoc[JDBC]
 *** xref:reference/extensions/jing.adoc[Jing]
 *** xref:reference/extensions/jira.adoc[Jira]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index f6b9d15..ce0bcd3 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -472,6 +472,9 @@ Stable | 1.0.0 | Expose websocket endpoints using JSR356.
 | xref:reference/extensions/jbpm.adoc[JBPM] | [.camel-element-artifact]##camel-quarkus-jbpm## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with jBPM workflow engine over REST.
 
+| xref:reference/extensions/jcr.adoc[JCR] | [.camel-element-artifact]##camel-quarkus-jcr## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Read and write nodes to/from a JCR compliant content repository.
+
 | xref:reference/extensions/jdbc.adoc[JDBC] | [.camel-element-artifact]##camel-quarkus-jdbc## | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Access databases through SQL and JDBC.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/jcr.adoc b/docs/modules/ROOT/pages/reference/extensions/jcr.adoc
new file mode 100644
index 0000000..36db4e1
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/jcr.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[jcr]]
+= JCR
+:page-aliases: extensions/jcr.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Read and write nodes to/from a JCR compliant content repository.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/jcr-component.html[JCR component], URI syntax: `jcr:host/base`
+
+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-jcr</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 ce8b73a..1b510ce 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -428,6 +428,9 @@ Stable | 1.0.0 | Unmarshal XML payloads to POJOs and back using JAXB2 XML marsha
 |  xref:reference/extensions/jbpm.adoc[JBPM]  | camel-quarkus-jbpm | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Interact with jBPM workflow engine over REST.
 
+|  xref:reference/extensions/jcr.adoc[JCR]  | camel-quarkus-jcr | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Read and write nodes to/from a JCR compliant content repository.
+
 |  xref:reference/extensions/jdbc.adoc[JDBC]  | camel-quarkus-jdbc | [.camel-element-Native]##Native## +
 Stable | 0.2.0 | Access databases through SQL and JDBC.
 
diff --git a/extensions-jvm/jcr/deployment/pom.xml b/extensions-jvm/jcr/deployment/pom.xml
new file mode 100644
index 0000000..9b88042
--- /dev/null
+++ b/extensions-jvm/jcr/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-jcr-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jcr-deployment</artifactId>
+    <name>Camel Quarkus :: JCR :: 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-jcr</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/jcr/deployment/src/main/java/org/apache/camel/quarkus/component/jcr/deployment/JcrProcessor.java b/extensions-jvm/jcr/deployment/src/main/java/org/apache/camel/quarkus/component/jcr/deployment/JcrProcessor.java
new file mode 100644
index 0000000..321a1fb
--- /dev/null
+++ b/extensions-jvm/jcr/deployment/src/main/java/org/apache/camel/quarkus/component/jcr/deployment/JcrProcessor.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.jcr.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 JcrProcessor {
+
+    private static final Logger LOG = Logger.getLogger(JcrProcessor.class);
+    private static final String FEATURE = "camel-jcr";
+
+    @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/jcr/integration-test/pom.xml b/extensions-jvm/jcr/integration-test/pom.xml
new file mode 100644
index 0000000..aec9db2
--- /dev/null
+++ b/extensions-jvm/jcr/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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-jcr-integration-test</artifactId>
+    <name>Camel Quarkus :: JCR :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus JCR extension</description>
+
+    <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-jcr</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>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jcr-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </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/jcr/integration-test/src/main/java/org/apache/camel/quarkus/component/jcr/it/JcrResource.java b/extensions-jvm/jcr/integration-test/src/main/java/org/apache/camel/quarkus/component/jcr/it/JcrResource.java
new file mode 100644
index 0000000..4fd9ba4
--- /dev/null
+++ b/extensions-jvm/jcr/integration-test/src/main/java/org/apache/camel/quarkus/component/jcr/it/JcrResource.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.jcr.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("/jcr")
+@ApplicationScoped
+public class JcrResource {
+
+    private static final Logger LOG = Logger.getLogger(JcrResource.class);
+
+    private static final String COMPONENT_JCR = "jcr";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/jcr")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentJcr() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_JCR) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_JCR);
+        return Response.status(500, COMPONENT_JCR + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/jcr/integration-test/src/test/java/org/apache/camel/quarkus/component/jcr/it/JcrTest.java b/extensions-jvm/jcr/integration-test/src/test/java/org/apache/camel/quarkus/component/jcr/it/JcrTest.java
new file mode 100644
index 0000000..1564576
--- /dev/null
+++ b/extensions-jvm/jcr/integration-test/src/test/java/org/apache/camel/quarkus/component/jcr/it/JcrTest.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.jcr.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class JcrTest {
+
+    @Test
+    public void loadComponentJcr() {
+        /* A simple autogenerated test */
+        RestAssured.get("/jcr/load/component/jcr")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/jcr/pom.xml b/extensions-jvm/jcr/pom.xml
new file mode 100644
index 0000000..4fce145
--- /dev/null
+++ b/extensions-jvm/jcr/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-jcr-parent</artifactId>
+    <name>Camel Quarkus :: JCR</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/jcr/runtime/pom.xml b/extensions-jvm/jcr/runtime/pom.xml
new file mode 100644
index 0000000..4d17601
--- /dev/null
+++ b/extensions-jvm/jcr/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-jcr-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jcr</artifactId>
+    <name>Camel Quarkus :: JCR :: Runtime</name>
+    <description>Read and write nodes to/from a JCR compliant content repository.</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-jcr</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/jcr/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/jcr/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..e5f84ec
--- /dev/null
+++ b/extensions-jvm/jcr/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 JCR"
+description: "Read and write nodes to/from a JCR compliant content repository"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/jcr.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 04896e6..b2c95d2 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -85,6 +85,7 @@
         <module>ipfs</module>
         <module>irc</module>
         <module>jbpm</module>
+        <module>jcr</module>
         <module>jing</module>
         <module>jooq</module>
         <module>jsch</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index ae6caf4..a77f305 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1014,6 +1014,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jcr</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-jdbc</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3206,6 +3211,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jcr</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jcr-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-jdbc</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/05: JSLT 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 ccc2597563a57a53463001b9476362447f743ed7
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Sep 8 13:40:34 2020 +0200

    JSLT JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/jslt.adoc      |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/jslt/deployment/pom.xml             |  63 +++++++++++++
 .../component/jslt/deployment/JsltProcessor.java   |  46 ++++++++++
 extensions-jvm/jslt/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/jslt/it/JsltResource.java    |  51 +++++++++++
 .../camel/quarkus/component/jslt/it/JsltTest.java  |  34 +++++++
 extensions-jvm/jslt/pom.xml                        |  40 +++++++++
 extensions-jvm/jslt/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, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 9458c09..0760482 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -1934,6 +1934,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jslt</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-json-validator</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 4719dc0..781f6a9 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -156,6 +156,7 @@
 *** xref:reference/extensions/jolt.adoc[JOLT]
 *** xref:reference/extensions/jooq.adoc[JOOQ]
 *** xref:reference/extensions/jpa.adoc[JPA]
+*** xref:reference/extensions/jslt.adoc[JSLT]
 *** xref:reference/extensions/gson.adoc[JSON Gson]
 *** xref:reference/extensions/jackson.adoc[JSON Jackson]
 *** xref:reference/extensions/johnzon.adoc[JSON Johnzon]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 0bd2d2b..2630d08 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -490,6 +490,9 @@ Preview | 1.1.0 | Store and retrieve Java objects from an SQL database using JOO
 | xref:reference/extensions/jpa.adoc[JPA] | [.camel-element-artifact]##camel-quarkus-jpa## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Store and retrieve Java objects from databases using Java Persistence API (JPA).
 
+| xref:reference/extensions/jslt.adoc[JSLT] | [.camel-element-artifact]##camel-quarkus-jslt## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Query or transform JSON payloads using an JSLT.
+
 | xref:reference/extensions/json-validator.adoc[JSON Schema Validator] | [.camel-element-artifact]##camel-quarkus-json-validator## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Validate JSON payloads using NetworkNT JSON Schema.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/jslt.adoc b/docs/modules/ROOT/pages/reference/extensions/jslt.adoc
new file mode 100644
index 0000000..d258b4b
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/jslt.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[jslt]]
+= JSLT
+:page-aliases: extensions/jslt.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Query or transform JSON payloads using an JSLT.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/jslt-component.html[JSLT component], URI syntax: `jslt: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-jslt</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 61f0ce2..d5f44a5 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -446,6 +446,9 @@ Preview | 1.1.0 | Store and retrieve Java objects from an SQL database using JOO
 |  xref:reference/extensions/jpa.adoc[JPA]  | camel-quarkus-jpa | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Store and retrieve Java objects from databases using Java Persistence API (JPA).
 
+|  xref:reference/extensions/jslt.adoc[JSLT]  | camel-quarkus-jslt | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Query or transform JSON payloads using an JSLT.
+
 |  xref:reference/extensions/gson.adoc[JSON Gson]  | camel-quarkus-gson | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Marshal POJOs to JSON and back.
 
diff --git a/extensions-jvm/jslt/deployment/pom.xml b/extensions-jvm/jslt/deployment/pom.xml
new file mode 100644
index 0000000..2108ea8
--- /dev/null
+++ b/extensions-jvm/jslt/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-jslt-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jslt-deployment</artifactId>
+    <name>Camel Quarkus :: JSLT :: 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-jslt</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/jslt/deployment/src/main/java/org/apache/camel/quarkus/component/jslt/deployment/JsltProcessor.java b/extensions-jvm/jslt/deployment/src/main/java/org/apache/camel/quarkus/component/jslt/deployment/JsltProcessor.java
new file mode 100644
index 0000000..d25bb60
--- /dev/null
+++ b/extensions-jvm/jslt/deployment/src/main/java/org/apache/camel/quarkus/component/jslt/deployment/JsltProcessor.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.jslt.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 JsltProcessor {
+
+    private static final Logger LOG = Logger.getLogger(JsltProcessor.class);
+    private static final String FEATURE = "camel-jslt";
+
+    @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/jslt/integration-test/pom.xml b/extensions-jvm/jslt/integration-test/pom.xml
new file mode 100644
index 0000000..9fe96ec
--- /dev/null
+++ b/extensions-jvm/jslt/integration-test/pom.xml
@@ -0,0 +1,100 @@
+<?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-jslt-integration-test</artifactId>
+    <name>Camel Quarkus :: JSLT :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus JSLT extension</description>
+
+    <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-jslt</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>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-jslt-deployment</artifactId>
+            <version>${project.version}</version>
+            <type>pom</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </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/jslt/integration-test/src/main/java/org/apache/camel/quarkus/component/jslt/it/JsltResource.java b/extensions-jvm/jslt/integration-test/src/main/java/org/apache/camel/quarkus/component/jslt/it/JsltResource.java
new file mode 100644
index 0000000..bfdb4d9
--- /dev/null
+++ b/extensions-jvm/jslt/integration-test/src/main/java/org/apache/camel/quarkus/component/jslt/it/JsltResource.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.jslt.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("/jslt")
+@ApplicationScoped
+public class JsltResource {
+
+    private static final Logger LOG = Logger.getLogger(JsltResource.class);
+
+    private static final String COMPONENT_JSLT = "jslt";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/jslt")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentJslt() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_JSLT) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_JSLT);
+        return Response.status(500, COMPONENT_JSLT + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/jslt/integration-test/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltTest.java b/extensions-jvm/jslt/integration-test/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltTest.java
new file mode 100644
index 0000000..2c7cdff
--- /dev/null
+++ b/extensions-jvm/jslt/integration-test/src/test/java/org/apache/camel/quarkus/component/jslt/it/JsltTest.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.jslt.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class JsltTest {
+
+    @Test
+    public void loadComponentJslt() {
+        /* A simple autogenerated test */
+        RestAssured.get("/jslt/load/component/jslt")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/jslt/pom.xml b/extensions-jvm/jslt/pom.xml
new file mode 100644
index 0000000..a6e7716
--- /dev/null
+++ b/extensions-jvm/jslt/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-jslt-parent</artifactId>
+    <name>Camel Quarkus :: JSLT</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/jslt/runtime/pom.xml b/extensions-jvm/jslt/runtime/pom.xml
new file mode 100644
index 0000000..5351408
--- /dev/null
+++ b/extensions-jvm/jslt/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-jslt-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-jslt</artifactId>
+    <name>Camel Quarkus :: JSLT :: Runtime</name>
+    <description>Query or transform JSON payloads using an JSLT.</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-jslt</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/jslt/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/jslt/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..b453bf6
--- /dev/null
+++ b/extensions-jvm/jslt/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 JSLT"
+description: "Query or transform JSON payloads using an JSLT"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/jslt.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index e2dfa4b..5e2142e 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -87,6 +87,7 @@
         <module>jbpm</module>
         <module>jooq</module>
         <module>jsch</module>
+        <module>jslt</module>
         <module>jt400</module>
         <module>language</module>
         <module>ldap</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 7c2453a..20772b0 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1088,6 +1088,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-jslt</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-json-validator</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3271,6 +3276,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jslt</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-jslt-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-json-validator</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>